复习DQL-DML-DDL+约束
/*复习
union DQL 查询语句,将多条查询语句的结果合并成一个结果
合并查询 union 【all】
将一条比较复制的查询语句拆分多条语句
适用于查询多表,查询列基本一致
要求多条查询语句的查询列数必须一致
要求多条查询语句,查询的各列类型顺序最好一致
union 去重,union all 包含重复项 表中 ‘李磊’,1
DQL
select 查询列表 7
from 1
inner left righut join 2
on 连接条件 3
where 筛选 4
group by 分组列表 5
having 筛选 6
order by 排序列表 8
limit 起始条目索引,条目数 9
DML 数据操作语言
一 insert into
insert into 表名 values
inser into 表名 set 不可以插入多行,不可使用查询语句
可以为null
不写字段 和值
写字段 值写null
一次性插入多行
insert into 表名 values 多值
insert into 表名 select 值 select 值
二 update set
修改单表
update 表名 set 字段=值,字段=值 where
修改多表,inner left right
update 表名 inner left right join 表名2 on 连接条件
set 字段=值,字段=值 where
三 delect truncate
delete
删除单表记录
delete from where
补充 可以添加 limit 限制删除条目数
删除多表记录
delete from 表名1 inner left right join 表名2 on 连接条件 where
truncate table 表名 清除表
自增长列 开始 断点-delete 从1 truncate
truncate 不能加筛选条件
truncate 不可以回滚
truncate 效率高
DDL 数据定义语言
创建 修改 删除 库表
create
create database 【if not exists】 名字 character set 字符集
create table 【if not exists】 名字 (字段名 字段类型 约束,
字段名 字段类型 约束)
alter
alter database 不常用 ,可以删,修改容易出错
alter table 表名
add column 列名 字段类型 【位置first、after 字段名】 添加列
mdify column 列名 新字段类型【约束条件】 修改列类型或约束条件
drop column 列名 删除列
列名 rename to 新列名
change column 列名 新列名 修改列名
复制表
create table 表名 like 某个存在的表 复制表结构
create table 表名 select *或要复制的列&数据 from某个存在的表 复制全部信息,或者某几列信息
create table 表名 select *或要复制的列&数据 from某个存在的表
where 1=0/0 复制某几类表结构
drop
drop database if exists 库名
drop table if exists 表名
数据类型
数值型
整数 int
无符号 有符号 默认有符号 通过unsigned 设置无符号
长度可以不指定,默认有个长度,长度代表最大宽度,如果不够用0填充 zerofill
小数
M,D dec默认 (10,0) M总长度,D小数点后几位
浮点值 float
double
定点值 dec 精度要求高,类似货币
字符型
短文本
var 固定长度字符 m 字符长度 M可以省略默认1
varchart 可变长度字符 M不可省略
binary varbinary 二进制
enum 枚举
set 枚举集合
长文本
text
blob
日期型
timestamp 日期+时间 4 受时区影响
datetime 日期+时间 8
date
year
time
*/
DELETE FROM `copy5` LIMIT 1;
#常见约束
/*
一种限制,用于限制表中的数据,为了保证表中的数据准确 可靠
分类:六大约束
not null
非空,用于保证该字段的值不能为空
比如姓名 学号等
default
默认 用于保证该字段有默认值
比如性别
primary key
主键 用于保证该字段的值具有唯一性 并且非空
比如学号 员工编号
unique
唯一 用于保证该字段的值具有唯一值,可以为空
座位号
check
检查约束 【mysql 不支持】 sex 检查必须为男或者女
age 检查 在18-60之间
foreign ket
外键 用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值
两个表数据对称
stu专业编号来自major表
在stu表添加 foreign key
在从表添加主表的值,引用字段
添加约束条件的时机
创建表时
修改表时
约束添加的分类
列级约束
六大约束语法上都支持,但外键约束没有效果
表级约束
除了非空及默认,都支持
create table 表名(字段名 字段类型 列级约束,
字段名 字段类型 列级约束,
字段名 字段类型 列级约束,
表级约束)
*/