目录
1.SQL概述
1.1.SQL是什么
SQL(Structured Query Language)是具有数据操纵和数据定义等多种功能的数据库语言。常用的标准有SQL92和SQL99,就是语法格式标准不同。
1.2.功能
- 增加、删除、修改和查询数据
- 创建数据库、表、存储过程和视图等
- 设置表、存储过程和视图的权限
1.3.分类
- DQL(Data Query Language):数据查询语言
- DML(Data Manipulation Language):数据操纵语言
- DDL(Data Definition Language):数据定义语言
- TCL(Transaction Control Language):事务控制语言
2.DDL
2.1.CREATE创建
1.创建数据库:
CREATE DATABASE learn_mysql;
# 查询所有数据库
SHOW DATABASES;
# 使用哪一个数据库
USE learn_mysql;
执行结果:
2.创建表:
CREATE TABLE `t_employee` (
`id` int(11) NOT NULL COMMENT '员工id',
`name` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT '员工姓名',
`department_id` int(11) NOT NULL COMMENT '部门id',
`salary` decimal(10, 2) NOT NULL COMMENT '月薪',
PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8mb4;
t_employee是表名,id、name、department_id和salary是列名,其后是字段类型,PRIMARY KEY是主键,ENGINE = InnoDB是选择InnoDB为存储引擎,CHARACTER SET = utf8mb4设置字符编码为utf8mb4。
2.2.ALTER更新
ALTER TABLE t_employee ADD COLUMN phone_number varchar(11) COMMENT '员工手机号码';
# 格式
ALTER TABLE 表名 [ADD][DROP][MODIFY][CHANGE] COLUMN 列名 [类型] [约束]
2.3.DROP删除
# 删除数据库
DROP DATABASE learn_mysql;
# 删除表
DROP TABLE t_employee;
2.4.常见约束
- NOT NULL:不能存储NULL
- UNIQUE:每行的值必须唯一
- PRIMARY KEY:NOT NULL和UNIQUE结合体,主键唯一标识
- FOREIGN KEY:外键,保证该字段匹配另一个表中的值
- DEFAULT:设置默认值
3.DML
3.1.INSERT插入数据
# 语法1
INSERT INTO 表名 (字段1, 字段2, ...) VALUES(值1, 值2, ...)
INSERT INTO t_employee(`id`, `name`, `department_id`, `salary`, `phone_number`) VALUES(1, 'zhangsan', 1, 5000, 15833333333);
INSERT INTO t_employee(`id`, `name`, `department_id`, `salary`, `phone_number`) VALUES(2, 'lisi', 1, 6000, 15844444444);
# 语法2 如果不指定字段,VALUES需要写出所有字段值
INSERT INTO t_employee VALUES(3, 'wanger', 2, 7000, 15855555555);
执行结果:
3.2.UPDATE更新数据
# 语法
UPDATE 表名 SET 列名=值, 列名=值, ... [WHERE子句]
UPDATE t_employee SET salary = 7777 WHERE id = 3;
执行结果:
3.3.DELETE删除数据和TRUNCATE清空表
# DELETE语法
DELETE FROM 表名 [WHERE子句]
DELETE FROM t_employee WHERE id = 3;
执行结果:
# TRUNCATE语法
TRUNCATE 表名;
TRUNCATE t_employee;
执行结果: