MySQL&JavaWebの驴

1.基本语法

屏幕截图 2023-03-06 203314

SQL分类

DDL:针对数据库和表的增删改

DML:对单个表的数据进行增删改

DQL:查询表中数据

DCL:对数据库进行权限控制

创建

1
2
3
4
5
CREATE TABLE db1(##创建表
id int,##注意名在前,变量类型在后
name varchar(10),
age int,
birth DATE);

查询

1
2
SELECT * FROM db1;
##SELECT `name` FROM db1;也可以单独查询一列

删除

1
2
3
DROP TABLE db1;
##因为无法确定要删除的表是否存在,所以有更规范的写法:
DROP TABLE if EXISTS db1;

表,列操作

1
2
3
4
ALTER TABLE db1 RENAME TO stu;##表重命名
ALTER TABLE stu ADD gender char(1);##添加列
ALTER TABLE stu CHANGE gender sex char(1);##改列名
ALTER TABLE stu DROP sex;##删除列

查询所有

1
SELECT * FROM stu;

添加数据

1
2
INSERT into stu VALUES(1,'林峰',20,'2002-12-17');##全添加不用标
INSERT INTO stu(id,name,age) VALUES (1,'小明',20);##指明添加位置

修改数据

1
UPDATE stu set birth = '1999-10-15' WHERE name = '小明';

删除数据

1
delete from db1 where name = '小明';

2.查询

基础查询

1
2
--基础查询
SELECT name FROM stu;

去重

1
2
--去重
SELECT DISTINCT name FROM stu;

屏幕截图 2023-03-07 195316

输出结果时起别名

1
2
--别名,as可省略
SELECT id,name,age as 年龄,birth 生日 FROM stu;

条件查询

条件:

屏幕截图 2023-03-07 200024-1678190500305

例子:

1
2
--输出年龄大于等于20的人
SELECT name FROM stu where age >= 20;

==模糊查询==

1
2
3
4
--模糊查询
--_:代表任意一个字符
--%:代表任意多个字符
SELECT * FROM stu WHERE name like '%小%';

排序查找

1
2
--排序查找
SELECT * FROM stu ORDER BY age ASC;

屏幕截图 2023-03-07 201909

聚合函数和查找

聚合函数:

屏幕截图 2023-03-07 203958

1
2
3
4
5
6
7
8
9
10
--统计数量,最好是用 *
SELECT count(*) FROM stu;
--最大值
SELECT max(age) FROM stu;
--最小值
SELECT min(age) FROM stu;
--平均值
SELECT avg(age) FROM stu;
--总和
SELECT sum(age) FROM stu;

分组查询

屏幕截图 2023-03-07 205749

分页查询

格式:select 字段列表 from 表名 LIMIT 起始索引 ,查询条目数

计算公式:起始索引 = (当前页码-1)* 每页条目数

1
SELECT * FROM stu LIMIT 3,3;

约束

69337116782767212.png

1
2
3
4
5
6
7
##建表时:
create table db1(
id int 约束名称
...
)
##建表后
alter table db1 modify

外键

1
2
3
4
##创建表时
constraint 键名 foreign key(作为从键的列)
##创建表后
alter table emp add constraint 键名 foreign key(作为从键的列) referances 主键

内外链接

隐式:

1
select 要查询的东西 from 表1,表2... where 条件

显式:

1
select 要查询的东西 from  表1 join 表2 on 条件

内连接相当于几个表的交集

外连接

1
2
左/右:
select 字段 from 表1 left/right join 表2 on 条件

外连接相当于表1或表2全部加交集

事务

9A1C63D3EC824C450120034C619A175A

屏幕截图 2023-03-09 175024