DDL(数据库操作)
数据库操作的相关语法:
1. 数据库操作
1. 1 查询:
查询所有数据库:
SHOW DATABASES;
查询当前数据库:
SELECT DATABASE();
1.2 创建
CREATE DATABASE [ if not exists ] 数据库名 [ default charset 字符集] [ COLLECT 排序规则 ];(如果不存在就建立)
1.3 删除
DROP DATABASE [ IF EXISTS ] 数据库名;(如果存在就删除)
1.4 使用
USE 数据库名;
2. 表操作
2.1 查询当前数据库所有表
SHOW TABLES;
2.2 查询表结构
DESC 表名;
2.3 查询指定表的建表语句
SHOW CREATE TABLE 表名;
2.4 创建
CREATE TABLE 表名( 字段1 字段1类型 [属性] [索引] [ COMMENT 字段1 注释],
字段2 字段2 类型[ COMMENT 字段2 注释])
[ COMMENT 表注释];
注意:[ ]为可选参数。
2.4.2 数据类型
char(固定长度,性能好)和 varchar(可变长度,性能差,时间换空间)
date 日期类型年月日
datetime 日期类型,年月日时分秒
2.5 修改表
添加字段:
ALTER TABLE 表名 ADD 字段名 类型(长度)[comment 注释] [ 约束];
修改字段和字段类型:
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[comment 注释] [ 约束];
ALTER TABLE 表名 MODIFY 列名 新数据类型 – 用来修改字段类型。
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名:
ALTER TABLE 表名 RENAME TO 新表名;
删除表:
DROP TABLE [ IF EXISTS ] 表名;
删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
删除表:
DROP TABLE [ IF EXISTS ] 表名;
删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
DML数据操作
DML主要用于对数据库表中数据进行增删改等操作
查看表:
select* from 表名;
SHOW CREATE DATABASE 查看创建数据库的语句
SHOW CREATETABLE 查看创建表的语句
1.给指定的列添加数据
INSERT INTO 表名(列名 ) VALUES (值1,值2,…);
2.给全部的列添加数据
INSET INTO 表名 VALUES(值1 ,值2,…);
– 也可以在表名后面把所有列名写上。
3.批量添加数据
INSERT INTO 表名 (列名1,列名2,…)VALUES(值1,值2,…),(值1,值2,…);
INSERT INTO 表名 VALUES(值1, 值2,…),(值1,值2,…);
date数据要加‘ ’ 算字符型
4.修改数据
UPDATE 表名 SET 列名1=值1,列名2=值2,…[where 条件];
注意:修改语句中如果不加条件,则所有数据都将被修改。
5.删除数据
DELETE FROM 表名[where 条件];
注意:修改语句中如果不加条件,则所有数据都将被删除。
DQL单表查询
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMINT
*:全部信息
基础查询:
SELECT * FROM 表名; --查询表全部信息
SELECT 列名1 AS(也可以空格) 别名1 ,列名2 AS 别名2 FROM 表名;–查询固定表 某列的信息
SELECT DISTINCT 列名 from 表名;–去除重复记录
条件查询:
SELECT 字段列表(*) FROM 表名 WHERE 条件列表;
条件 >,<,>=,<=,=,!=,between and, is null,is not null ,&&,|| ,!,In
注意:null值的比较要用 is null 和 is not null
模糊查询
下划线_ 单个字符 百分号% 任意个字符
SELECT * FROM 表名 WHERE 字段名 LIKE ’ _ & ';
排序查询:
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式] ,排序字段名2 [排序方式]…;
排序方式:ASC(升序排列)(默认) DESC (降序排列)
多个排序条件,优先前面的条件。
分组查询:
SELECT 字段列表 FROM 表 [WHERE 分组前条件限定] GROUP BY 分组字段名 [ HAVING 分组后条件过滤 ];
where 和 having 的区别:where是分组前进行限定,having是分组后进行限定。
可判断的条件不一样, where不能对聚合函数进行判断,having可以
执行顺序 where》 聚合函数》having
分组之后的字段为聚合函数或者分组字段,字段列表写其他没有意义。
聚合函数
SELECT 聚合函数名(列名) FROM 表;
五种聚合函数:
- count()统计数量–一般不选用null的列 ,若有空不统计 count(*) 有一个数据就能统计上
- max()求最大
- min() 求最小
- sum() 求和
- avg() 平均值
注意:null值不参与所有聚合函数运算
分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
起始索引:从0开始
计算式:起始索引=(当前页码-1)*每页显示的条目数; (不用加1 因为第一条数据是起始是0)
注意 :
分页查询是mysql的方言
Oracle分页查询使用rownumber
SQL Server 分页查询是用的是tops