1.在数据库语言中,可以采用模糊查询的方式来从表中选取想要的数据集合
模糊查询主要是用于处理字符串类型的值,其中运算符包括:like %_[] ^。
like表示查询方式为模糊查询
%表示在查询的字符串前面或者后面有n个任意的字符,例如 查找学生表中含有姓张的 同学名单时,可以采用下列语句
select*from studentinfo
where Name like '张%'
%可以设置在字符串后面 也可以设置在前面,亦或二者均有,表示含有中间字段的数据集合。
下划线_代表一个模糊的字符,即若查询名单中名字为两个字的张姓同学,可用下列语句
select*from studentinfo
where Name like '张_'
而[]则代表一个区段,例如查询电话号码为13开头或者15开头的学生信息可以用
select*from studentinfo
where phonenumber like '1[3-5]%' --注意添加%
而^表示非的意思 即
select*from studentinfo
where phonenumber like '1[^3-5]%' --表示查询手机号非13 15开头的学生信息
2,关于查询中对于含空值(null)数据操作
对于null的操作,使用is null或者is not null,与其他计算时返回null
举例:
select*from studentinfo
where phonenumber is null--查询未填手机电话号的学生名单信息
select*from studentinfo
where phonenumber is not null--查询所有已填手机电话号的学生名单信息
对于某些字符运算的优先级顺序:按照小括号,not,比较运算符,逻辑运算符的顺序来排
3.连接查询:当查询所需结果来自多张表时,需要采用连接查询的方式
查询学生姓名以及所在班级名称,这两个信息来自两个表
学生表:studentinfo和班级表classinfo
两个表的关系:学生表中一列cid是引用的班级表中的cid,故采用连接查询的关键是找准那些表,这些表的关系
示例如下:
结果
若只想要筛选出学生姓名和班级名称的信息,则可以这么写:
结果
在上述使用中出现了,inner join的语句,这叫内连接这表示用来匹配两个表的关系
同样存在LEFT JOIN 左连接,LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
RIGHT JOIN右连接 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
FULL JION 全连接 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
4.多表连接
考虑查询学生姓名,考试科目,以及分数,这三个信息来自三张不同的表
假设这三张表分别叫A,B,C只需要找到 其中A和B之间的关系以及B和C的关系即达到目的
语句如下:
select*from scoreinfo as score
inner join studentinfo as stu on score.stuid=stu.sid
inner join sbujectinfo as sub on score.stuid=sub.sid
这样三个表的连接关系确立