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

扩展语句

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 '地址不详',

相关推荐
2601_9657984723 分钟前
Is Hygia Good for Maid & Janitorial Sites? Technical Audit
服务器·网络·数据库
Cloud云卷云舒39 分钟前
海山数据库(HaishanDB)面向工业云场景技术方案
数据库·haishandb·工业云·移动云海山数据库·天工云
严同学正在努力3 小时前
从备份到恢复:我用 30 分钟恢复了误删的核心业务表
android·java·数据库·ai
xqqxqxxq4 小时前
DQL 数据查询 select
sql
#六脉神剑4 小时前
myBuilder新版本(8月,Office文件预览、Oracle数据库支持)
数据库·oracle·开发平台·数字化工具·mybuilder
花青泽4 小时前
5-数据库-SQL注入-联合查询-AND/OR绕过-day13
数据库·sql
Csvn4 小时前
📊 SQL 入门 Day 11:CASE 表达式:SQL 里的 if-else 魔法
后端·sql
踏着七彩祥云的小丑4 小时前
忘记Redis是否安装过时查看
数据库·redis·缓存
Nontee5 小时前
设计模式:模板方法与策略,从“每个字都认识“到能说清它们在干嘛
java·数据库·设计模式
眞bilibili6 小时前
带团队后的日常思考(十七)
数据库