欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文科生的SQL初体验之模糊查询

程序员文章站 2022-04-05 17:11:51
...

模糊查询

  1. %:0-多个任意字符,_表示一个字符[]^表示一个字符
  2. %与_写在[]中表示本身的含义

select* from UserInfo
where sname like '%三%'
--姓张的学生
select* from UserInfo
where sname like '张%'
--查询名字为2个字姓黄的学生
select* from UserInfo
where sname like '黄_'
--查询使用电话为13段的学生信息
select*from sphone like '13%'
--取使用qq邮箱的学生
select* from UserInfo
where semail like '%@qq%'





文科生的SQL初体验之模糊查询
由图我们可以看到,1[^5-9]表示1后面除了5-9的数字

更改


update Studentinfo set sphone =null
where sid in(5,6)

--电话为Null的学生信息
select*from studentinfo
where sphone is null


优先级:小括号,not,比较运算符,逻辑运算符

连接查询


select*from studentinfo
inner join classinfo on studentinfo.cid= classinfo.cid

文科生的SQL初体验之模糊查询
如果只想要几个列


select si.same,ci.ctitle
from studentinfo as si
inner join classinfo as ci on si.cid= ci.cid


文科生的SQL初体验之模糊查询
扩展


select si.same,ci.ctitle
from studentinfo as si
inner join classinfo as ci on si.cid= ci.cid
--查询青龙班所有学生的姓名
where ci.title='青龙'

文科生的SQL初体验之模糊查询

外键的连接

连接:join表名on关联条件
内连接:inner join 结果显示两表中完全匹配的数据
左外连接:left outer join,显示两表中完全匹配的数据,左表中特有的数据
右外连接:right outer join,两表中完全匹配的数据,右表中特有的数据
完全外连接:full outer jion,两表中完全匹配的数据,左表中特有的数据
其中join左边的表是左表右边的表是右表


select*
from classinfo as ci
left join studentinfo as si on ci.cid=si.cid


文科生的SQL初体验之模糊查询

可以看到以左表为准
当我们调换顺序


select*
from studentinfo as ci
right join classinfo si on ci.cid=si.cid


文科生的SQL初体验之模糊查询

多表连接,vlookup函数的SQL的做法


select stu.sname,sub.stitle,score,scorevlaue
from scoreinfo as score
inner join studentinfo as stu on score.studid=stu.sid
inner join subjectinfo as sub on score.subid=sub.sid

文科生的SQL初体验之模糊查询
当我们值查询几列时文科生的SQL初体验之模糊查询
注意外键连接,只要连接成通路就好

相关标签: SQL 数据库 sql