管理表记录? 对表里已经存储的数据做管理
增--删--改--查
查看数据? selet
添加数据?? insert?? into
???? 添加一行,仅给指定的表头赋值
insert into 库.表(表头名)? values(表头值)
???? 添加多行,仅给指定的表头赋值
insert into 库.表(表头名) values (表头值1)()
?? 添加一行,给所有的表头赋值
insert into 库名.表名 values(多少表头名,则需要添加多少行的内容)
??? 添加一行,给所有的表头赋值
insert into 库名.表名 values(多少表头名,则需要添加多少行的内容),(多少表头名,则需要添加多少行的内容)??? 切记:字符需要带引号,数字不需要带引号,不然会报错
insert into 库名.表名 values(多少表头名,则需要添加多少行的内容),(多少表头名,则需要添加多少行的内容),(多少表头名,则需要添加多少行的内容),(多少表头名,则需要添加多少行的内容),(多少表头名,则需要添加多少行的内容);````````````
修改数据
update user set homedir="/" where homedir is null;
update user set 表头名="? "? where 可以写条件
批量修改: update 库.表 set 表头名=值,表头名=值;
update user set passwd="z"
删除数据? (删除表里的行) delete from 库.表 where 筛选条件;
delete from user where homedir = "/"
delete from user where id = 10;
仅删除与条件匹配的行,批量删除:
delete from 库.表 ;? 慎用
连接查询:把多张表,临时组成一张表,然后在组成的表里查找符合条件的数据
内连接查询?? 交集
select 表头名 from 表名a? inner join 表名b ;? 迪卡尔积:
??????????????????????????????? 5?????????? * ? ? ? ? ? ? 5 ? ? ? ?? 25
select 表头名 from 表名a? inner join 表名b? on 连接条件 ;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 符合连接条件
select * from
on 连接条件 使用的 相等判断 叫等值连接 反之称为非等值连接
select 表头名列表 from 表1 as 别名 on 连接条件
select employees.* , dept_name from employees inner join departments on employees.dept_id=departments.dept_id;
select 表头名 from 表名a inner join 表名b on 连接条件? where? |group by | having | order by | limit ;
非等值连接,一个表里是一个范围,用另一个表里确切的值与之对应,如果该值在这个范围内,那么匹配连接,如果不在这个范围内,则不能匹配.
左连接查询
select 表头名? from 表名a? left join 表名b on 连接条件? where | group by | having | order by | limit ;
左连接:左表中表头会全部输出,右表只显示与连接条件有关的.
右连接查询
select 表头名? from 表名a? right? join 表名b on 连接条件? where | group by | having | order by | limit ;
同理理解右连接
全连接查询??? 并集
一起输出多个select命令的查询结果,多个select 命令查询的表头个数要相同
select union
union? 去重
union? all? 不去重
拼接查询出来的结果
内连接查询命令的完整格式
左连接查询命令的完整格式
右连接查询命令的完整格式
嵌套查询:select 查询命令里 包含 select 查询命令 包含的select 查询命令 要放在()里,包含的select 查询命令 可以出现的位置:
where? 命令之后
select? 表头名 from 库.表 where? 表头名 判断符号 (select 查询命令) ;
可以嵌套多个select,随意嵌套
having 命令之后
from? 命令之后
select 命令之后
把查询命令当表头使用