mysql数据库常规操作2
对列表的增删改# 添加表列 alter table 表名 add 新列名 类型长度[约束]; #修改表列 alter table 表名 change 旧列名 新列名 类型长度[约束]; #修改表删除列 alter table 表名 drop 列名; #重命名表名 rename table 库名.表名 to 库名.新表名; #增加表内数据 #一次增加一条 insert into 表名字段1,字段2,字段3... valus(字段1,字段2,字段3...); #一次增加多条 insert into 表名字段1,字段2,字段3... valus(字段1,字段2,字段3...); valus(字段1,字段2,字段3...); valus(字段1,字段2,字段3...); .... /* 添加字段必须和表内类型一样数据大小必须在表内的字段范围内 插入空值可以不写 */ #修改表内数据 #更新所有数据的指定字段 update 表名 set 需要修改的字段名1修改后的值1, 需要修改的字段名2修改后的值2, ...; #更新符合条件的指定字段 update 表名 set 需要修改的字段名1修改后的值1, 需要修改的字段名2修改后的值2, ... where 条件; #删数据 drop from 表名 [约束条件] #底层机制是一条条删除表内数据 truncate table 表名 #底层机制是把整个表删除后重新建表对比delete 和 truncate的区别对比维度DELETE FROM xxxxtableTRUNCATE TABLE xxxxtable所属 SQL 分类属于DML数据操作语言数据增删改语句属于DDL数据定义语言库表结构增删改语句执行机制逐条删除表中的数据记录逐行执行删除操作先删除整张表再重新创建一张结构相同的空表执行效率更高自增列处理不会清空自增列的增长标记后续插入数据会继续从之前的计数开始增长重置自增列的值为默认初始值如从 1 重新开始事务支持支持事务管理可以通过ROLLBACK回滚删除操作不支持事务管理执行后无法回滚操作不可逆执行效率大数据量场景下执行较慢逐行扫描 删除执行速度极快直接重建表结构触发机制会触发表上的DELETE类型触发器不会触发任何触发器权限要求需要表的DELETE权限需要表的ALTER或更高权限如DROP反引号可以强制关键字作为变量名进行运行约束关键字约束名称关键字核心含义典型使用场景非空约束NOT NULL字段值不能为 NULL插入或更新时必须赋值用户名、手机号、商品名称唯一约束UNIQUE字段值在整张表中唯一可多个 NULL不能重复邮箱、身份证号、订单编号主键约束PRIMARY KEY非空 唯一一张表只能有一个主键用于唯一标识一行数据自增 idid INT PRIMARY KEY AUTO_INCREMENT外键约束FOREIGN KEY关联另一张表的主键保证数据的引用完整性子表值必须在主表中存在订单表的user_id关联用户表id默认值约束DEFAULT插入数据时未指定该字段值自动填充默认值订单状态DEFAULT 0、创建时间DEFAULT CURRENT_TIMESTAMP检查约束CHECK限制字段值的范围 / 规则MySQL8.0 正式支持年龄CHECK (age0 AND age150)、金额CHECK (amount0)自增约束AUTO_INCREMENT仅用于整数主键插入数据时自动生成唯一递增数值从 1 开始主键 idid INT AUTO_INCREMENTcomment的作用是否有双引号主键约束#设置主键方式1 create table 表名( 字段1 类型 primary key, 字段2 类型, .... ); # 设置主键方式2 create table 表名( 字段1 类型 , 字段2 类型, .... primary key(字段1) ); # 设置联合主键 create table 表名( 字段1 类型 , 字段2 类型, .... primary key(字段1,字段2...) ); # 删除主键约束 alter table 表名 drop primary key; /* 删除联合主键时需注意删除后,字段会保留非空属性 */ #删除联合主键假设字段1和字段2为联合主键现在改为字段1为主键 alter table 表名 drop primary key; alter table 表名 add primary key(字段1); alter table 表名 change 字段2 字段2 类型;自增约束alter table 表名 auto_increment100;#下一条自增从100开始 set auto_increment_increment 2; #步长改为2 # 方式一建表时 create table 表名( 字段1 类型 primary key auto_increment, -- 主键 自增 字段2 类型, 字段3 类型, .... ); # 方式2建表后 create table 表名( 字段1 类型 primary key, 字段2 类型, .... ); alter table 表名 modify 字段1 类型 auto_increment;非空约束create table 表名( 字段1 类型 not null, -- 该字段不能为空 字段2 类型 not null, -- 该字段不能为空 字段3 类型, -- 该字段可以为空 .... );唯一约束#方式一:建表时 create table 表名( 字段1 类型 unique, -- 该字段值必须唯一 字段2 类型, 字段3 类型 unique, -- 多个字段可分别设置唯一 .... ); #方式2:越级约束 create table 表名( 字段1 类型, 字段2 类型, 字段3 类型, .... unique(字段1), -- 单字段唯一 unique(字段2, 字段3) -- 多字段组合唯一联合唯一 ); # 方式3建表后添加唯一约束 # 添加单字段唯一 alter table 表名 add unique(字段名); # 添加多字段联合唯一 alter table 表名 add unique(字段1, 字段2); # 删除唯一约束先查索引名再删除 alter table 表名 drop index 索引名;默认值约束-- 方式1字段级约束创建表时直接指定 create table 表名( 字段1 类型 default 默认值, -- 该字段设置默认值 字段2 类型 default 默认值, 字段3 类型, -- 无默认值 .... ); -- 方式2建表后修改添加默认值 -- 添加/修改字段的默认值 alter table 表名 modify 字段名 类型 default 默认值; -- 或 alter table 表名 alter 字段名 set default 默认值; -- 方式3删除默认值 -- 删除字段的默认值 alter table 表名 alter 字段名 drop default;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424223.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!