DML语句使用
source 路径 :把SQL脚本导入到数据库中
查询语句类型:【简单查询|多表查询|子查询】
投影:select 字段名,字段名 from 表名 where 条件 :作对比
选择:select * from 表名 where 条件 :选择显示莫一行
单表查询
在一个表中,某个字段中相同的数值只显示一次!
select distinct 字段名 from 表名;
from子句 :表,多个表,其他查询语句(select)
where子句:布尔关系表达式,操作符(<,>,>=,<=,=)
组合条件查询
符号: %:任意长度任意字符
_:任意单个字符
rlike/regexp:使用正则表达式
in :离散取值
order by 字段 (asc升序/desc降序):给查询出来的数据排序,(默认为升序)
and :和
or :或
not :非
between。。。and。。。:。。。与。。。。之间
select cid from xuehao where not cid >2;
关键字
select cid from xuehao where cid between 2 and 6;
关键字 cid在2与6之间(between:。。。与。。。之间)
select keming from kehao where keming like 'y%'
关键字 字段名 个字符
select keming from kehao where keming like '%k%';
字符中包含了k的字符串
select keming from kehao where keming rlike '^[ky].*$' ;
使用正则表达式 开头是k或y
select cid from kehao where cid in (1,2,5);
筛选出一个表中id的值为1,2,5
select * from xuehao order by cid
排序 根据cid
别名:select a.Name , b.Cname from students as a,courses as b where a.CID1=b.CID;
字段别名为a 字段别名为b 表别名为a 表别名是b 条件 表a的CID1=表b的CID
多表查询
连接方式
交叉连接:笛卡尔乘积
自然连接:将两张表上相同字段当中的的那个值逐一作比较,只将等值关系将它保留下来
外连接:
左外连接:左表 left join 右表 on 条件
右外连接:左表 right join 右表 on 条件
select s.Name,c.Cname from students as s lef t join courses as c on s.CID1=c.CID;
左表 别名 s 左外连接 右表 别名 c 连接条件
select s.Name,c.Cname from students as s right join courses as c on s.CID1=c.CID;
左表 别名 s 右外连接 右表 别名 c 连接条件
子连接:
比较操作中使用子查询,子查询只能返回单个值
in ():使用子查询
联合查询
union
(select Name,Age from students) union (select Tname,Age from tutors);