mysql 操作语句(增删改)表约束列约束

  1. 插入insert
  2. 更新update
  3. 删除delete

新增-插入(insert)-

  • 插入单行
  • 插入多行
  • 单行/多行皆可/部分字段/全部字段
//支持插入多行
INSERT INTO 表名(字段1,字段2)  VALUES(val1,val2);
//插入多行
INSERT INTO 表名(字段1,字段2)  
VALUES(row1-1,row1-2),(row2-1,row2-2);
//支持子查询-将查询的结果集当作值插入
INSERT INTO 表名(字段1,字段2)
SELECT 字段va1,字段va2 FROM ;
//不支持多行插入
INSERT INTO 表名 SET 列名1=1,列名2=2 

修改-更新(update)

  • 修改单表
  • 修改多表
  • 单行/多行皆可/部分字段/全部字段

同时筛选条件筛出的行数

update 表名 set 列名1=1,列名2=2 where 筛选条件;

修改多表记录(级联更新)

//将连接后的表当作整体进行更新
update1 别名
inner|left|right join2 别名
on 连接条件
set=WHERE 筛选条件

删除-delete

  • 只能删除全部字段
  • 删除只能删除整个单行或者多行
    单表删除
#方式一
#自增id从断点开始,就是1,2,3=>删除后,是从4开始
delete from 表名 where 筛选条件
#方式二
#truncate 删除后,1,2,3=>删除后,还是从1开始
truncate table 表名

多表删除

//sql92
DELECT 表1的别名,表2的别名
FROM1的别名,2的别名
WHERE 筛选条件
AND 筛选条件
//sql99
DELECT 表1的别名,表2的别名
FROM1 别名
inner|left|right join2 别名 
on 连接条件
where 筛选条件

创建表

# INT 长度只是显示长度,不会影响存储的值范围
CREATE TABLE 表名
(	
	列名1 类型【(长度) 约束】,
	列名2 类型【(长度) 约束】,
	name varchar(20)//最后无逗号
)

修改列

ALTER TABLE 列名 CHANGE COLUM

数据类型

数值型:
整型 INT
小数:
定点数
浮点数 float(数字位数,小数位数),double(5,2)=> 5代表整数+小数位数

约束

  1. NOT NULL 非空
  2. DEFAULT 默认,用于保证该字段值有默认值
  3. PRIMARY KEY 主键:有且只有唯一
  4. UNIQUE 唯一,可为空
  5. check 检查约束(mysql不支持)

列级约束/表级约束

#列级约束
create table 表名(
	字段名 数据类型(长度)列级约束,
	字段名 数据类型,
	表级约束
)
#表级约束
create table 表名(
	name char(10),
	age int,
	constraint myName UNIQUE|primary key(唯一)
	constraint 约束名 约束类型(字段名)
)

主键/唯一键

唯一可否为空一个表是否允许有多个允许组合
主键×只能1个√(不推荐)
唯一键可以多个√(不推荐)

外键约束

  1. 主从表,从表设置外键
  2. 从表外键和主表列兼容(数据类型一致或者兼容)
  3. 主表关联列必须是个key(一般为主键或者唯一键)
  4. 插入数据时,必须先插入主表再从表
  5. 删除时,必须先删除从表再删除主表
DROP TABLE IF EXISTS stuinfo;
DROP TABLE IF EXISTS major;
#主表
CREATE TABLE IF NOT EXISTS major(
	myid INT PRIMARY KEY,
	marjorName VARCHAR(16)
);
#从表
CREATE TABLE IF NOT EXISTS stuinfo(
	id int ,
	stuName VARCHAR(20),
	gender CHAR(1) CHECK(gender ="男" OR gender="女"),
	age INT DEFAULT 18,
	age2 INT DEFAULT(0),
	setnum CHAR(10) UNIQUE,
	#外键
	FOREIGN KEY(id) REFERENCES major(myid)
);
  • 增加表约束
  • 删除表约束
  • 修改表约束
ALTER TABLE 表名 ADD/MODIFY UNIQUE(列名)

MYSQL添加约束

//创建
create table table_name(
列名1  数据类型 (int) primary key auto_increment,
列名2 数据类型  not null,
列名3 数据类型   unique,
列名4 数据类型  default '值',
constraint  索引名 foreign key(外键列)  references 主键表(主键列)
on delete cascade | on delete set null
)
//修改
1.主键约束
添加:alter table  table_name add primary key (字段)
删除:alter table table_name drop primary key
2.非空约束
添加:alter  table table_name modify 列名 数据类型  not null 
删除:alter table table_name modify 列名 数据类型 null
3.唯一约束
添加:alter table table_name add unique 约束名(字段)
删除:alter table table_name drop key 约束名
4.自动增长
添加:alter table table_name  modify 列名 int  auto_increment
删除:alter table table_name modify 列名 int  
5.外键约束
添加:alter table table_name add constraint 约束名 foreign key(外键列) 
references 主键表(主键列)
删除:
第一步:删除外键
alter table table_name drop foreign key 约束名
第二步:删除索引
alter  table table_name drop  index 索引名
[^1]: 
约束名和索引名一样
6.默认值
添加:alter table table_name alter 列名  set default '值'
删除:alter table table_name alter 列名  drop default
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值