一、单表操作
1、带IN 关键字的查询
语法:
select *|字段名1,字段名2,…… from 表名 where 字段名 [NOT] IN (元素1,元素2,元素3,……);
举例:select * from test_yyp_0012 where ID1 IN('1234','231111');
2、空值查询
在数据表中,某列的值可能为空值(NULL),空值不同于0,也不同于空字符串。在mysql中,使用IS NULL 关键字来判断字段的值是否为空值
语法:
select *|字段名1,字段名2,…… from 表名 where 字段名 IS [NOT] NULL;
3、distinck 关键字作用于多个字段
只有distinct 关键字后指定的多个字段值都相同,才会被认作是重复的记录
语法:
select distinct 字段名1,字段名2,…… from 表名;
4、带like 关键字的查询
匹配字符串 可以是一个普通字符串,也可以是包含百分号和下划线的通配字符串。
(1)百分号(%)通配符
在通配字符串中可以出现多个百分号通配符。
语法:
select *|字段名1,字段名2,…… from 表名 where 字段名 [NOT] LIKE ‘匹配字符串’;
举例:select * from test_yyp_0012 where ID2 like '0' ; //ID2=0
select * from test_yyp_0012 where ID2 like '%0' ; //ID2 以0结尾的记录
select * from test_yyp_0012 where ID2 like '%0%' ; //ID2 中包含0 的记录
select * from test_yyp_0012 where ID2 like '1%0' ; //ID2 中以0开头以1结尾的记录
(2)下划线 (_)通配符
下划线通配符只匹配单个字符,如果要匹配多个字符,需要使用多个下划线通配符
举例:select * from test_yyp_002 where ID2 like '___8' ; //ID2中4个字符,以8结尾的记录
(3)使用百分号和下划线通配符进行查询操作
如果要匹配字符串中的% 和_ 需要在通配字符串中使用右斜线 (“\”)对百分号和下划线进行转义。
例如:“\%” 匹配百分号字面值, “\_”匹配下划线字面值
select * from test_yyp_0012 where ID2 like '%\%%' ; //第一个和第三个% 是匹配任意个数的字符串
二、多表操作
1、外键:指引用另外一张表中的一列或多列,被引用的列应该具有主键约束或唯一性约束。
为表添加外键约束的语法:
alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);
三、连接查询
1、内连接
内连接使用比较运算符对两个表中的数据进行比较,并列出与连接条件匹配的数据行,组合成新的记录。
在内连接查询中,只有满足条件的记录才能出现在查询结果中。
语法格式:
select 查询字段 from 表1 inner join 表2 ON 表1.关系字段= 表2.关系字段;
如果在一个连接查询中,涉及的两个表是同一个表,这种查询称为自连接,在物理上为同一个表,但逻辑上分为2个表。
2、外连接
左连接:返回包括左表中的所有记录和右表中符合连接条件的记录。如果左表中的某条记录在右表中不存在,则在右表中显示为空。
右连接:返回右表中的队友记录和左表中符合连接条件的记录。
四:子查询
1、带EXISTS 关键字的子查询
EXISTS 关键字后面的参数可以是任意一个子查询,这个子查询的作用相当于测试,他不产生任何数据,只返回TRUE 或者FLASE ,当返回值为TRUE时,外层查询才会执行。