数据库-各种查询看着一篇就够了

发布时间:2024年01月17日

管理表记录? 对表里已经存储的数据做管理

增--删--改--查

查看数据? 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? 不去重

拼接查询出来的结果

内连接查询命令的完整格式

  1. Select 表头命令 from 表名 as 别名 inner join 表名 as 别名 on 连接条件 [ where 筛选条件 | group by 表头名 | having 过滤条件 | order by 表头名 [desc|asc] | limit 数字 ] ;

左连接查询命令的完整格式

  1. Select 表头命令 from 表名 as 别名 left join 表名 as 别名 on 连接条件 [ where 筛选条件 | group by 表头名 | having 过滤条件 | order by 表头名 [desc|asc] | limit 数字 ] ;

右连接查询命令的完整格式

  1. Select 表头命令 from 表名 as 别名 right join 表名 as 别名 on 连接条件 [ where 筛选条件 | group by 表头名 | having 过滤条件 |

嵌套查询:select 查询命令里 包含 select 查询命令 包含的select 查询命令 要放在()里,包含的select 查询命令 可以出现的位置:

where? 命令之后

select? 表头名 from 库.表 where? 表头名 判断符号 (select 查询命令) ;

可以嵌套多个select,随意嵌套

having 命令之后

 
  • select dept_id , count(name) as total from employees group by dept_id
  • having total < (
  • select count(name) from employees where dept_id=(
  • select dept_id from departments where dept_name='开发部')

from? 命令之后

 
  • select dept_id, dept_name, employee_id, name, email from (
  • select d.dept_name, e.* from departments as d inner join employees as e
  • on d.dept_id=e.dept_id ) as tmp_table where dept_id=3;

select 命令之后

把查询命令当表头使用

文章来源:https://blog.csdn.net/2301_81865838/article/details/135518257
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。