数据库扩展语句,约束方式

扩展语句

create table if not exists ky32 ():如果表存在就不创建了

zerofill 自动补齐(在命令行可以查看)

primary key 设置成主键

auto_increment 表示这一列可以自增,默认从1开始,每条记录会自增1

unique key 不能重复

create table test like ky32;

通过like这个语法直接复制ky32表的结构**(但是没有数据)**

insert into test select * from ky32;

把ky32 表里的数据,复制到test,两个表数据结构要一致。

create table test1 (select * from ky32);

创建一张表,test1,数据从ky32来,表结构也是ky32;直接全部复制

删除表内所有数据:

delete truncate drop

delete from ky32;

delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的记录之后继续自增写入。

truncate table ky32;

清空表中的数据,而且会把表结构重新建立。速度上比delete快,推荐

drop table test1;

直接删除表,不推荐。

创建临时表:临时表一般用于调试,而且临时表创建之后在表的目录当中是不显示的连接退出之后,临时表会被销毁。而且临时表无法创建外键。

create temporary table test1 ();

MySQL的约束方式;

6种常见的约束:

1,主键约束,用于唯一表示表中的每一行,主键列的值必须唯一而且不能为空,一个表只能有一个主键

2,外键约束,用于建立表于表之间的关系,一般是和另一张表的主键关联。保证数据引用的完整性。一个表可以有多个外键。

3,非空约束,not null 必须要有一个值。

4,唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,而且一个表可以有多个唯一约束。

5,默认值约束:default,在插入数据时,如果没有定义值,会提供一个默认值。

6,自增约束:每行自动生成一个唯一标识。通常和主键在一起使用。

foreign key (card_id) references student (card_id) 外键连接,要保存一致

show create table class; 在命令行显示外键连接

alter table class drop foreign key class_ibfk_1;

删除外键连接。

desc class 查看class表的结构

mul:表示这是一个索引。

alter table class drop index card_id;

删除class表中card_id的索引

alter table class drop primary key;

删除主键

这是一个自增约束的主键,要改变数据类型要先解除自增约束,之后主键才能删除。

alter table class modify stud_id int (12); 改变类型

练习:

用修改的方式添加主键

alter table depart add foreign key (work_id) references company (work_id);

修改主键

alter table depart drop primary key;

alter table depart add primary key (de_id);

CREATE TABLE company (

work_id int(4) PRIMARY KEY ZEROFILL,

name char(5) not null,

sex char(2) not null

);

desc company;

CREATE TABLE depart (

de_id int(6) ZEROFILL PRIMARY KEY,

work_id int(4) not null ZEROFILL,

FOREIGN KEY (work_id) REFERENCES company (work_id),

addrss VARCHAR(255) DEFAULT '地址不详',

相关推荐
苍煜3 分钟前
慢SQL优化实战教学
java·数据库·sql
zhaoyong22240 分钟前
MySQL 存储过程中字符集与排序规则不匹配导致查询性能下降的解决方案
jvm·数据库·python
sinat_3834373641 分钟前
golang如何从Python转型Go开发_golang从Python转型Go开发攻略
jvm·数据库·python
远洪42 分钟前
claude code 国内安装使用
数据库·mysql
雨辰AI1 小时前
SpringBoot3 + 人大金仓 V9 微服务监控实战|Prometheus+Grafana+SkyWalking 全链路监控
数据库·后端·微服务·grafana·prometheus·skywalking
二哈赛车手1 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
myrh pdmd1 小时前
maven导入spring框架
数据库·spring·maven
爬山算法1 小时前
MongoDB(118)如何在升级过程中进行数据备份?
数据库·mongodb·oracle
千月落2 小时前
Redis数据迁移
数据库·redis·缓存
wangbing11253 小时前
MySQL 官方 GPG 密钥过期问题
数据库·mysql