SQL的使用总结
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | select * from emp select * from dept select * from job select * from salarygrade -- 1.查询所有员工信息。查询员工编号,员工姓名,工资,职务名称,职务描述 SELECT t1.mgr, t1.ename, t1.salary, t2.jname, t2.description FROM emp AS t1, job AS t2 WHERE t1.job_id = t2.id -- 2.查询员工编号,员工姓名,工资,职务名称,职务描述,部门名称,部门位置 SELECT t1.ename, t1.salary, t2.jname, t2.description, t3.dname, t3.loc FROM emp AS t1, job AS t2, dept AS t3 WHERE t1.job_id = t2.id and t1.dept_id = t3.id -- 3.查询员工姓名,工资,工资等级 SELECT t1.ename, t1.salary, t2.grade FROM emp AS t1, salarygrade as t2 where t1.salary BETWEEN t2.losalary and hisalary -- 4.查询员工姓名,工资,职务名称,职务描述,部门名称,部门位置,工资等级 SELECT t1.ename, t1.salary, t2.jname, t2.description, t3.dname, t3.loc, t4.grade FROM emp AS t1, job AS t2, dept AS t3, salarygrade as t4 WHERE t1.job_id = t2.id and t1.dept_id = t3.id and t1.salary BETWEEN t4.losalary and t4.hisalary -- 5.查询出部门编号、部门名称、部门位置、部门人数 SELECT t1.*, COUNT (t2.id) 部门人数 FROM dept AS t1, emp AS t2 WHERE t2.dept_id = t1.id GROUP BY t2.dept_id SELECT dept.*,t1.num from dept,( select dept_id, COUNT (*) num from emp GROUP BY dept_id) t1 where t1.dept_id = dept.id |
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192SQL总结:
********************************************************************************
1.ddl语句: 操作数据库或表
//创建数据库
create
Database
if
not
数据库名称;
//删除数据库
drop
database
if exists 数据库名称
//使用数据库
use 数据库名称
//查看数据库
show
database
//查看当前使用的数据库
select
database
()
---------------------------------------------------------------------
//查询该数据库下的所有表
select
tables
//查询表结构
desc
表的名称
//创建表
create
table
表的名称(字段1名称 数据类型 约束 ,
字段2名称 数据类型 约束,
字段3名称 数据类型 约束
)
//删除表
drop
table
if exists 表的名称
//修改表的名称
alter
table
表的名称 rename
to
新的表名
//添加列
alter
table
表的名称
add
列名 数据类型;
//修改列的数据类型
alter
table
表的名称
modify
列名 新的数据类型;
//修改列的名称以及数据类型
alter
table
表的名称 change 列名 新列名 新数据类型
//删除列
alter
table
表的名称
drop
列名 ;
********************************************************************************
2.dml语句:对数据进行操作
//添加数据【指定列添加】
insert
into
表的名称 (字段名1,字段名2,字段名3,……)
values
(字段名1值,字段名2值,字段名3值,……)
//添加数据【给全部列添加数据】
insert
into
表的名称
values
(字段名1值,字段名2值,字段名3值,……)
//添加数据【给全部列添加数据,多条数据同时添加】
insert
into
表的名称
values
(字段名1值,字段名2值,字段名3值,……),
(字段名1值,字段名2值,字段名3值,……),
(字段名1值,字段名2值,字段名3值,……);
//修改数据【指定列修改】
update
表的名称
set
列名1=值1,列名2=值2,列名3=值3,……
where
条件【不指定条件就会将所有行的数据全部更改】
//删除数据
delete
from
表的名称
where
条件【不指定条件就会将所有行的数据删除】
********************************************************************************
3.dql语句:数据库查询语言
①
select
from
查询
②
distinct
去重
③
as
别名
④条件{
> 大于
>= 大于或等于
!= / <> 不等
< 小于
<= 小于或等于
between
……
and
…… 在……范围内
in
() 多选一
like
模糊查询【_代表单个任意字符 %代表多个任意字符】
is
null
/
is
not
null
不为空
and
/&& 和
or
/|| 或
not
/! 非
}
⑤排序
order
by
【
ASC
升序
DESC
降序】
⑥聚合函数{
count
() 统计数量【不统计为
null
的列】
max
() 最大值
min
() 最小值
sum
() 求和
avg
() 平均值
}
⑦分组
group
by
⑧分组后限定条件
having
⑨分组前的限定条件
where
⑩分页查询 limit 起始索引 , 查询条目数;
********************************************************************************
4.dcl:数据控制语言
grant
授权
set
设置
@@autocommit 自动提交事务
begin
开启事务
commit
提交事务
rollback
回滚事务
事务的四大特征:AICO 原子性【要么同时成功,要么都失败】
一致性【数据总量不变】
隔离性【开启多个事务查询数据】
持久性【通过
commit
提交或
rollback
回滚实现数据更新】
默认自动提加事务【要手动提交事务方法
--》set @@autocommit =0 默认是1】
一旦设置为手动提交事务则必须自主提交,不然数据无法更新
<br><br><br>//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
多表查询:
1.内连接
inner
join
on
【
inner
可以不写】
2.外连接
left
join
【左连接:查询左表的全部数据以及与右表交集部分数据】
right
join
【右连接:查询右表的全部数据以及与右表交集部分数据】
3.子查询 =(子查询语句【子查询语句输出的是单列单行数据时使用=】)
in
(子查询语句【子查询语句输出的是单列多行数据时使用
in
】)
约束:
1.非空约束
not
null
2.唯一约束[自动添加]
unique
[auto_increment]
3.主键约束
primary
key
4.默认约束
default
5.外键约束
constraint
外键名称
foreign
key
(外键字段名)
references
主表名(主表列名)
数据库设计:
1.一对一
【例如:用户 和 用户详情
一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,
不经常使用的字段放另一张表,用于提升查询性能】
实现方式:
在任意一方加入外键,关联另一方主键,并且设置外键为唯一(
UNIQUE
)
2.一对多
【例如:部门 和 员工
一个部门对应多个员工,一个员工对应一个部门】
实现方式:
在多的一方建立外键,指向一的一方的主键
3.多对多
【例如:商品 和 订单
一个商品对应多个订单,一个订单包含多个商品】
实现方式:
建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律