写在开头
真的真的不想复习了😅总结一下语句直接上战场~😅
常用关键字
- CREATE(创建)
- SHOW(查看数据库里的表,或者说广义范围查看)
- SELECT(查看数据)
- DESC(查看表信息)
- DROP(删除)
- DELETE(删除数据)
- TRUNCATE(清空数据)
- ALTER(修改)
- UPOATE(修改数据)
- INSERT(插入)
- WHERE(条件)
- HAVING(范围条件)
第一章
下载安装配置MySQL
MySQL下载地址 -> https://dev.mysql.com/downloads/installer/
第二章
关键字:
- CREATE (创建数据库,数据表)
- SHOW (查看)
- USE (选择数据库)
- DROP (删除数据库,数据表)
- DESC (查看表信息)
- ALTER TABLE (修改表)
- INSERT INTO (插入数据)
- SELECT (查询数据)
- UPDATE (修改数据)
- DELETE (删除数据)
语句:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| CREATE DATABASE + 数据库名;
SHOW DATABASE;
SHOW CREATE DATABASE + 数据库名;
USE + 数据库名;
DROP + 数据库名;
DROP DATABASE IF EXISTS + 数据库名;
CREATE TABLE IF NOT EXISTS + 表名;
|
- (创表)实例:
1 2 3 4 5 6 7 8
| CREATE TABLE IF NOT EXISTS S ( sid INT UNSIGNED COMMENT '学号'PRIMARY KEY, sname VARCHAR(10) NOT NULL COMMENT'姓名', sex ENUM('男','女') NOT NULL DEFAULT '男' COMMENT'性别', birthday DATE NOT NULL COMMENT'出生日期', department SET('计算机系','网络工程系','大数据系') DEFAULT '网络工程系' NOT NULL COMMENT '系别', phoneno VARCHAR(11) COMMENT '手机号' );
|
语句:
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
| SHOW TABLES;
SHOW TABLE STATUS FROM 数据库名 LIKE '%相关表信息%';
ALTER TABLE 旧表名 TO 新表名;
ALTER TABLE 表名 表选项 = 值;
DESC 表名(字段名);
SHOW CREATE TABLE 表名;
ALTER TABLE 数据库表名 CHANGE 旧字段名 新字段名 字段类型(字段属性);
ALTER TABLE 表名 MODIFY 字段名 新类型(字段属性);
ALTER TABLE 表名 MODIFY 字段名 数据类型(字段属性) 【FIRST或者AFTER】字段名;
ALTER TABLE 表名 ADD 新增字段名 数据类型 【FIRST或者AFTER】字段名;
ALTER TABLE 表名 DROP 字段名;
DROP TABLE IF EXISTS 表名;
INSERT INTO 表名 VALUES(值1,值2,值3….. )(如果数据有空值,可以在对应位置加NULL或者另起一行INSERT INTO 表名+字段名 VALUES(值1,值2…..)) ;
SELECT * FROM 表名;
SELECT (字段名1,字段名2…….) FROM 表名;
SELECT(字段名1,字段名2…) FROM 表名 WHERE 字段名 = 值;
UPDATE 表名 SET 字段名1=值 WHERE 字段名 = 值;
DELETE FROM 表名 WHERE 字段名 = 值;
|
第三章(数据类型和约束)
约束类型关键词:
- DEFAULT (默认值) (设置默认值) 默认约束
- NOT NULL (为该项添加数据时不允许为空) 非空约束
- UNIQUE (建立唯一性,为该项添加数据时无法重复) 唯一约束
- PRIMARY KEY (非空约束和唯一约束集合,且每个表只有一个主键约束) 主键约束
- AUTO_INCREMENT (针对主键,插入数据时若该项无数据则自动加1)(了解即可) 自动增长
- CHECK (可给字段插入的数据设置范围) 检查约束
- FOREIGN KEY (建立外键,用于关联两个表) 外键约束
语句:
1 2 3 4 5 6 7 8 9 10
| CREATE TABLE 表名(字段名 数据类型 约束类型(默认约束或非空约束或唯一约束或主键约束) COMNENT'字段属性';
ALTER TABLE 表名 MODIFY 字段名 数据类型 约束类型;
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK;
|
第五章(单表操作)
单表操作关键词:
- DISTINCT (查询时去除重复记录)
- ORDER BY (字段名 (ASC | DESC) (ASC升序,DESC降序) (排序))
- LIMIT 记录数 (限量)
- GROUP BY (分组)(防止查询几组数据后数据发生混乱)
- HAVING (统计筛选)
聚合函数:
- COUNT (统计数量)
- SUM (求和)
- AVG (求平均值)
- MAX (求最大值)
- MIN (求最小值)
语句:
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
| CREATE TABLE 表名 LIKE 旧表名;
INSERT INTO 表名 SELECT * FROM 被复制数据的表名;
REPLACE INTO 表名(字段名)VALUES | VALUE(插入的数据);
TPUNCATE TABLE 表名 ;
SELECT DISTINCT 字段名 FROM 表名
SELECT 字段名 FROM 表名 ORDER BY(ASC | DESC);
SELECT 字段名 FROM 表名 ORDER BY 字段名1(ASC | DESC) , 字段名2(ASC | DESC)… ;
SELECT 字段名 FROM 表名 …… LIMIT 记录数;
SELECT 字段名,聚合函数 FROM 表名 GROUP BY 字段名;
SELECT 字段名 FROM 表名……GROUP BY ……HAVING ;
SELECT … 聚合函数 FROM 表名 ……;
|
第六章(多表操作)
- 多表操作与单表操作区别就是,多表操作把几个表联合在一起再对其进行查询,其他与单表操作无异。
语句:
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
| SELECT 字段名 FROM 表1 JOIN 表2 ON 连接条件……;
SELECT 字段名 FROM 表1 JOIN 表2 ON 连接条件……;
SELECT 字段名 FROM 表1 JOIN 表2 ON 连接条件 JOIN 表3 ON 连接条件 ……;
SELECT 字段名 FROM 表1 JOIN LEFT(RIGHT) JOIN 表2 ON 连接条件 ;
CREATE TABLE 表名(……………CONSTRAINT 外键名称 FOREIGN KEY(所需添加外键的字段名) REFERENCES 需参照的主表的字段名 ON DELETE 外键约束 ON UPDATE 外键约束);
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(所需添加外键的字段名) REFERENCES 需参照的主表的字段名 ON DELETE 外键约束 ON UPDATE 外键约束;
ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
SELECT 字段名称 FROM 表名 WHERE 字段名(子查询) = (SELECT语句);
SELECT 字段名称 FROM 表名 WHERE 字段名(子查询) IN (SELECT DISTINCT 字段名 FROM 表名);
SELECT 字段名称 FROM 表名 WHERE (字段名,子查询) 运算符 (SELECT语句);
SELECT 字段名称 FROM (SELECT语句);
SELECT 字段名称 FROM 表名 WHERE EXISTS(子查询语句);
SELECT 字段名称 FROM 表名 WHERE 字段名 比较运算符 ANY(子查询语句);
SELECT 字段名称 FROM 表名 WHERE 表达式 比较运算符 ALL(子查询语句);
|
第七章(用户与权限)
用户语句:
1 2 3 4 5 6 7 8
| CREATE UESR '用户名';
CREATE USER '用户名' @ 'localhost' IDENTIFIED BY '密码';
CREATE USER '用户名' @ 'localhost' IDENTIFIED BY '密码' 用户密码管理选项;
|
用户密码管理选项
- PASSWORD EXPIRE (将密码标记为过期)
- PASSWORD EXPIRE DEFAULT; (根据系统变量的指定设置密码的有效性)
- PASSWORD EXPIRE NEVER; (密码永不过期)
- PASSWORD EXPIRE INTERVAL n DAY; (将密码设置为n天后过期)
权限语句:
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
| CREATE USER '用户名' @ 'localhost' IDENTIFIED BY '密码' ACCOUNT LOCK;
ALTER USER '用户名' @ 'localhost' ACCOUNT UNLOCK;
ALTER USER '用户名' @ 'localhost' IDENTIFIED BY '新密码';
RENAME USER '旧用户名' @ 'localhost' TO '新用户名' @ 'localhost';
DROP USER 用户名;
GRANT 所需要授予的权限 ON 授权的级别(数据库 * 或者表) TO 用户名;
SELECT * FROM mysql.db;
REVOKE 所需回收的权限 ON 授权的级别(数据库 * 或者表) FROM 用户名;
FLUSH PRIVILEGES;
SELECT * FROM mysql.user;
|
第八章(视图)
- 视图可以理解为给已经有的表再定义一个虚表,视图SQL语句构造方法就是在创建视图的语句后面加上SELECT语句即可。
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE OR REPLACE VIEW 视图名 AS 对应所需要求的SELECT语句;
CREATE VIEW 视图名 AS 对应所需要求的SELECT语句 WITH(LOCAL) CHECK OPTION;
DESC VIEW 视图名;
ALTER 用户权限 VIEW 视图名 所需要有修改信息的SELECT语句;
|
写在最后
睡觉力😴