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

mysql 操作语句(增删改)表约束列约束插入 insert 更新 update 删除 delete 新增 插入 insert 插入单行 插入多行 单行 多行皆可 部分字段 全部字段 支持插入多行 INSERT INTO 表名 字段 1 字段 2 VALUES val1 val2 插入多行 INSERT INTO 表名 字段 1 字段 2 VALUES

大家好,我是讯享网,很高兴认识大家。
  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 
小讯
上一篇 2025-03-07 16:38
下一篇 2025-01-18 11:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/118020.html