对数据库中表的 增删改查

课程总结


表数据属性=列属性

6. 列的属性和约束

6.1 主键: primary key (PK)

说明:

唯一

非空

数字列,整数列,无关列,自增的.

是一种约束,也是一种索引类型,在一张表中只能有一个主键。

6.2 非空: Not NULL

说明:

我们建议,对于普通列来讲,尽量设置not null

默认值 default : 数字列的默认值使用0 ,字符串类型,设置为一个nil null

6.3 唯一:unique

不能重复

6.4 自增 auto_increment

针对数字列,自动生成顺序值

6.5 无符号 unsigned

针对数字列 

6.6 注释 comment

表属性

存储引擎 :engine =  InnoDB

字符集  :charset = utf8mb4

建表定义

创建表=创建列

手工建表:

create table oldguo(

id int not null primary key AUTO_INCREMENT comment '学号' ,

name varchar(255) not null comment '姓名',

age tinyint unsigned not null default 0 comment '年龄',

gender enum('m','f','n') not null default 'n' comment '性别'

)charset=utf8mb4 engine=innodb;

创建一个相同表结构的空表:

create table oguo like oldguo;

查看表

desc 表名;

查看表属性=查看列属性

改表定义

表是由 列 和 行组成的

修改表就是修改 列和行

增列

添加列

alter  table oldguo add telnum char(11) not null unique comment '手机号';

alter  table oldguo add state tinyint unsigend not null default 1 comment '状态信息';

指定位置  添加列

alter  table oldguo add qq varchar(255) not null unique comment 'qq号码' after name;

在name后边添加qq列varchar(255): after name

alter table oldguo add sid varchar(255) not null unique comment '学生号' first;

在首列上添加学号列 sid;    first

创建一个相同表结构的空表:

create table oguo like oldguo;

改列属性

alter table oldguo change gender gg char(1) not null default 'n';

将gender改为gg  数据类型改为char(1)数据类型

alter table oldguo modify name varchar(128) not null;

修改已有列name的属性

查看列属性

desc 表名;

查看表属性=查看列属性

删除列

alter table oldguo drop  state;

添加行

insert into oldguo(name,qq,age) values ('oldboy','74110',49);

--- 最规范的方法插入数据(重点记忆)

删除行

delete from oldguo where id=5;

delete (注意谨慎操作!!!!)

最好是用update替换delete

update oldguo SET state=1 WHERE id=6;

(default 0代表存在,1代表删除

改数据行

update oldguo set qq='123456' where id=5 ;

update (注意谨慎操作!!!!)

查看数据

select * from 表名;

查看表数据(不代表生产操作)

删表定义

drop table 表名;

将一个大表全部数据清空

delete FROM oldguo;

truncate TABLE oldguo;

delete 和 truncate 区别

1. delete 逻辑逐行删除,不会降低自增长的起始值。

效率很低,碎片较多,会影响到性能

2. truncate ,属于物理删除,将表段中的区进行清空,不会产生碎片。性能较高。

查看建表语句

show create table oldguo;

查看建表时的语法

create table oldguo(

id int not null primary key AUTO_INCREMENT comment '学号' ,

name varchar(255) not null comment '姓名',

age tinyint unsigned not null default 0 comment '年龄',

gender enum('m','f','n') not null default 'n' comment '性别'

)charset=utf8mb4 engine=innodb;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容