- 插入insert
- 更新update
- 删除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 筛选条件;
修改多表记录(级联更新)
//将连接后的表当作整体进行更新 update 表1 别名 inner|left|right join 表2 别名 on 连接条件 set 列=值 WHERE 筛选条件
删除-delete
- 只能删除全部字段
- 删除只能删除整个单行或者多行
单表删除
讯享网#方式一 #自增id从断点开始,就是1,2,3=>删除后,是从4开始 delete from 表名 where 筛选条件 #方式二 #truncate 删除后,1,2,3=>删除后,还是从1开始 truncate table 表名
多表删除
//sql92 DELECT 表1的别名,表2的别名 FROM 表1的别名,表2的别名 WHERE 筛选条件 AND 筛选条件 //sql99 DELECT 表1的别名,表2的别名 FROM 表1 别名 inner|left|right join 表2 别名 on 连接条件 where 筛选条件
创建表
讯享网# INT 长度只是显示长度,不会影响存储的值范围 CREATE TABLE 表名 ( 列名1 类型【(长度) 约束】, 列名2 类型【(长度) 约束】, name varchar(20)//最后无逗号 )
修改列
增
ALTER TABLE 列名 CHANGE COLUM
数据类型
数值型:
整型 INT
小数:
定点数
浮点数 float(数字位数,小数位数),double(5,2)=> 5代表整数+小数位数
约束
- NOT NULL 非空
- DEFAULT 默认,用于保证该字段值有默认值
- PRIMARY KEY 主键:有且只有唯一
- UNIQUE 唯一,可为空
- check 检查约束(mysql不支持)
列级约束/表级约束
讯享网#列级约束 create table 表名( 字段名 数据类型(长度)列级约束, 字段名 数据类型, 表级约束 ) #表级约束 create table 表名( name char(10), age int, constraint myName UNIQUE|primary key(唯一) constraint 约束名 约束类型(字段名) )
主键/唯一键
| 唯一 | 可否为空 | 一个表是否允许有多个 | 允许组合 | |
|---|---|---|---|---|
| 主键 | √ | × | 只能1个 | √(不推荐) |
| 唯一键 | √ | √ | 可以多个 | √(不推荐) |
外键约束
- 主从表,从表设置外键
- 从表外键和主表列兼容(数据类型一致或者兼容)
- 主表关联列必须是个key(一般为主键或者唯一键)
- 插入数据时,必须先插入主表再从表
- 删除时,必须先删除从表再删除主表
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

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