MySQL
SQL分类:
DDL: 操作数据库、表
DML:数据的增、删、改
DQL:数据的查询
DCL :数据库用户、权限
====================================================================
DDL(操作数据库、表)
数据库:
创建数据库 :create database [ if not exists ] 数据库名;
查询数据库 :show databases;
切换数据库 :use 数据库名 ;
删除数据库 :drop database [ if exists ] 数据库名 ;
表结构:
创建表:
create table 表名(
字段1 字段1类型 [约束] [comment 字段1注释 ],
字段2 字段2类型 [约束] [comment 字段2注释 ],
字段3 字段3类型 [约束] [comment 字段3注释 ],
......
字段n 字段n类型 [约束] [comment 字段n注释 ]
) [ comment 表注释 ] ;
数据类型: 数字类型: tinyint , int , bigint 字符串类型: char , varchar 日期时间类型: date , datetime 约束: 主键:primary key ------------> auto_increment 非空: NOT NULL 唯一: UNIQUE 默认: DEFAULT
创建表流程
-
阅读页面原型及需求文档
-
确定原型中的表结构所包含的字段,以及字段的类型、长度限制
-
再增加一张表所需要的业务基础字段
======================================================================
DML(数据的增、删、改 )
增加(insert)
1). 给指定字段添加数据
insert into 表名 (字段名1, 字段名2, …) values (值1, 值2, …);
2). 给全部字段添加数据
INSERT INTO 表名 VALUES (值1, 值2, …);
3). 批量添加数据
insert into 表名 (字段名1, 字段名2, …) values (值1, 值2, …), (值1, 值2, …), (值1, 值2, …) ;
insert into 表名 values (值1, 值2, …), (值1, 值2, …), (值1, 值2, …) ;
修改(update)
语法:
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , … [ where 条件 ] ;
删除(delete)
语法:
delete from 表名 [ where 条件 ] ;
==============================================================
DQL(数据查询语言)
介绍:数据查询语言 。用来查询数据库中表的记录
语法:(完整格式)
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
执行顺序:
-
处理 FROM 子句,确定要查询的数据表。
-
处理 WHERE 子句,确定筛选条件。只有符合条件的记录会被查询。
-
处理 GROUP BY 子句,按照指定的分组字段对数据进行分组。
-
处理 HAVING 子句,筛选分组后符合条件的记录。
-
处理 SELECT 子句,选择需要查询的字段。
-
处理 ORDER BY 子句,按照指定的排序字段对结果进行排序。
-
处理 LIMIT 子句,分页返回结果集。
最终返回符合条件的数据,按照指定的顺序进行排序并分页返回。
1.基本查询
1). 查询多个字段
select 字段1, 字段2, 字段3 … from 表名 ;
select * from 表名 ;
2). 字段设置别名
select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] … from 表名;
select 字段1 [ 别名1 ] , 字段2 [ 别名2 ] … from 表名;
3). 去除重复记录
select distinct 字段列表 from 表名;
2.条件查询(where)
select 字段列表 from 表名 where 条件列表 ;
3.排序查询(order by)
select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;
- 排序方式
- ASC 升序(默认)
- DESC 降序
- 多字段排序
- order by 字段1 asc , 字段2 desc ;
4. 分页查询(limit)
select 字段列表 from 表名 limit 起始索引, 查询记录数 ;
- 参数 :起始索引 , 每页记录数
- 公式 :起始索引 = (页码-1)* 每页记录数
5.聚合函数
6. 分组查询(group by)
1.语法:
select 字段列表 from 表名 [ where 条件 ] group by 分组字段名 [ having 分组后过滤条件 ];
- where与having区别
● 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
● 判断条件不同:where不能对聚合函数进行判断,而having可以。