DDL
--操作数据库
1.查询
SHOW DATABASES;
2.创建
CREATE DATABASE 数据库名称 CHARACTER SET utf8;
如果不存在创建
CREATE DATABASE IF NOT EXISTS 数据库名称;
3.删除
DROP DATABASE 数据库名称;
如果存在删除
DROP DATABASE IF EXISTS 数据库名称;
4.使用数据库
查看当前数据库
SELECT DATABASE();
使用数据库
USE 数据库名称;
--操作表
1.查询表
SHOW TABLES;
2.查询表结构
DESC 表名称;
3.创建表
CREATE TABLE 表名(
字段名1 数据类型1,
字段名2 数据类型2,
……
字段名n 数据类型 --不能加逗号
);
4.删除表
DROP TABLE 表名;
判断是否存在
DROP TABLE IF EXISTS 表名;
5.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
6.添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
7.修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
8.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
9.删除列
ALTER TABLE 表名 DROP 列名;
DML
--数据操作
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,……),……;
4.修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,…… [WHERE 条件];
不加条件,所有数据修改
5.删除数据
DELETE FROM 表名 [WHERE 条件];
不加条件,所有数据修改
DQL
--查询语法
1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据
2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
3.起别名
AS 也可以不写,用空格隔开
select name,math 数学成绩,english as 英语成绩 from stu;
4.条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
select * from stu where age BETWEEN 20 and 30;
select * from stu where age =18 or age=20 or age=55;
select * from stu where age in (18,20,55);
select * from stu where english is NULL;
select * from stu where name like '马%' -- 姓马的
select * from stu where name like '_化%' -- 第二个字是化的
select * from stu where name like '%德%' -- 名字里有德的
5.排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1[排序方式1],排序字段名2[排序方式2]……;
排序方式:
ASC:升序排列(默认值)
DESC:降序排列
多个排序条件,当前边条件值一样时,才会根据第二条件进行排序
6.聚合函数
count(列名) 统计数量列不能为空 NULL max min sum avg
SELECT 聚合函数(列名) FROM 表;
一般用select(*)可以自动查找非空的列
NULL值不参与所有聚合函数的运算
7.分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
查询男同学和女同学的数学平均分并统计各自人数。要求:分数低于70的不参与分组,分组之后人数大于2.
select sex,avg(math),count(*) from stu where math>70 group by sex HAVING count(*)>2;
where不能对聚合函数进行判断
执行顺序 where>聚合函数>having --先执行的where不能使用后执行的聚合函数进行判断
8.分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
起始索引:从0开始,等于 (当前页码-1)*查询条目数
--约束语句
非空约束 NOT NULL -- 列中不能有null值
唯一约束 UNIQUE -- 列中所有数据不同
主键约束 PRIMARY KEY -- 列中非空且唯一
默认约束 DEFAULT -- 未指定值用默认值
外键约束 FOREIGN KEY -- 让两个表数据之间建立连接
自动增长 auto_increment
id INT PRIMARY KEY auto_increment id,主键且自增
添加约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
ALTER TABLE 表名 MODIFY 字段名 数据类型;
删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;
2.外键约束
[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id)
建表完成后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名称) REFERENCES主表名称(主表列名称)
删除约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
标签:--,列名,Mysql,数据类型,笔记,语法,表名,TABLE,where
From: https://www.cnblogs.com/HanXuxian/p/18051832