**1. `create`语句创建数据表**
```sql
-- 学生表
drop table if exists student; -- 如果student数据表早存在,则删除
create table student -- 创建数据库
(
sID char(8) primary key not null, -- 学号
sName varchar(50) not null, -- 姓名
sEmail varchar(50), -- 邮箱
sInDate date not null -- 出生日期
)engine=innodb default charset=utf8;
-- 课程表
drop table if exists course;
create table course
(
cCode char(3) primary key not null, -- 课程代号
cName varchar(50) not null, -- 课程名称
cType char(2) not null default '必须' -- 课程类型(选修、必修)
)engine=innodb default charset=utf8;
-- 成绩表
drop table if exists score;
create table score
(
sID char(8) not null, -- 学号
sCode char(3) not null, -- 课程代号
sScore double not null, -- 成绩
foreign key (sID) references student(sID), -- 外键,将表score与表student建立了联系
foreign key (sCode) references course(cCode) -- 外键,将表score与表course建立了联系
)engine=innodb default charset=utf8;
```
**2. `insert`语句插入数据**
```sql
语法1:给指定的列,插入指定的值
insert into table01(column1, column2, ...) values(v1, v2, ...);
语法2:给所有列都插入值
insert into table01 values(v1, v2, ...);
-- 即使是auto_increment(自增),也可插入指定的值,甚至可以是null;
-- 有default关键字的列,可以就写default,采用默认值。
语法3:一条insert语句,插入多行记录
insert into table01 values
(v1, v2, ...),
(v1, v2, ...),
... -- 最后一行不要添加 , 符号
语法4:将一个旧表的一些记录插入到新表
insert into newTable select column1, column2, ... from oldTable where 条件;
语法5:将多个表的记录插入到一个表中,这个语法称为子查询
insert into table01 values(
(select column01 from table02 where 条件), -- 子查询1
(select column02 from table03 where 条件), -- 子查询2
);
```
**3. `update`语句更新数据表的记录**
```sql
语法1:
update table01 set column1=v1, column2=v2, ... where 条件;
-- where 是条件语句,后面常跟 and 、or、between、in、like等关键字
语法2:采用子查询
update table01 set column1=v1 where column2 in
(select column2 from table02 where column3 like v1);
-- in ,like 都是用于判断的关键字
-- 注意,如果对table01进行增、删,改,则不要同时对table01进行查询
```
**4. `delete `语句删除数据表的若干行**
```sql
语法1:如果存在自增的列,删除后,也不再使用
delete from table01 where 条件;
语法2:如果涉及到两个表以上的删除可以采用子查询
delete from table01 where column1 in
(select column2 from table02 where 条件), -- 子查询
-- 在实际项目中,一般不允许使用delete语句。可以使用update语句,
-- 或者insert插入到备份表,再delete。
```
**5. `truncate` 语句清空整个数据表**
```sql
truncate table table01;
```
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注