数据库

xiaoxiao2025-11-14  5

0、使用数据库

use test;

1、查看数据表的结构

show columns from tb_name;

 

2、创建数据表

create table tb1(

username varchar(20) not null,

age tinyint unsigned null

);

 

3、自动编号

create table tb2(

 id smallint unsigned auto_increment,

username varchar(30) not null

);

4、主键约束

每张数据表只能存在一个主键

主键保证记录的唯一性,主键自动为not null

create table tb3(

id smallint unsigned auto_increment primary key,

username varchar(30) not null

);

5、唯一约束

唯一约束可以保证记录的唯一性

唯一约束的字段可以为空值

每张数据表可以存在多个唯一约束

create table tb4(

 id smallint unsigned auto_increment primary key,

username varchar(20) not null unique key,

age tinyint unsigned

);

6、默认约束

当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

create table tb5(

id smallint unsigned auto_increment primary key,

username varchar(20) not null unique key,

sex enum('1','2','3') default '3'

);

7、外键约束

实现一对一或一对多的关系。

父表和子表必须使用相同的存储引擎,而且禁止使用临时表。

数据表的存储引擎只能为InnoDB

外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同。

外键列和参照列必须创建索引,如果外键列不存在索引的话,mysql将自动创建索引。

default-storage-engine=INNODB

 

7.1、创建省份表(父表)

create table provinces(

id smallint unsigned primary key auto_increment,

pname varchar(20) not null

);

7.2、创建用户表(子表)

create table users(

id smallint unsigned primary key auto_increment,

username varchar(10) not null,

pid smallint  unsigned,

foreign key (pid)references provinces(id)

);

 

8、外键约束(父表进行操作子表的操作)

cascade:在父表删除或更新且自动删除或更新子表中匹配的行

create table users(

id smallint unsigned primary key auto_increment,

username varchar(10) not null,

pid smallint  unsigned,

foreign key (pid)references provinces(id) on delete cascade

);

set null:在父表删除或更新行,并设置子表中的外键列为null。(必须保证子表列没有指定not null)

 

restrict:拒绝对父表的删除或更新操作。

no action:标准sql的关键字,在mysql中与restict相同。

 

9、表级约束与列级约束

对一个数据列建立的约束,称为列级约束。

对多个数据列建立的约束,称为表级约束。

 

10、添加约束

添加主键:

alter table user2 add constraint pk_users2_id primary key(id);

添加唯一约束:

alter table user2 add unique(username);

添加外键约束:

alter table user2  add foreign key (pid) references provinces (id);

添加一个字段:

alter table user2 add age tinyint unsigned not null;

添加默认约束:

alter table user2 alter age set default 15;

删除默认约束:

alter table user2 alter age drop default;

 

11、删除约束

删除主键约束:

alter table user2 drop primary key;

删除唯一约束:

alter table user2 drop index username;

删除外键约束:

alter table user2 drop foreign key user_ibfk_1;

 

12、修改列定义:

alter table user2 modify id smallint unsigned not null first;

alter tale user2 modify id tinyint unsigned not null;

 

13、修改列名称:(少使用) 会造成存储过程和视图无法正常工作

alter table user2 change pid p_id tinyint unsigned not null;

 

14、数据表更名:(少使用)会造成存储过程和视图无法正常工作

alter table user2 rename user3;

rename table user2 to user3;

 

15、

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-5039638.html

最新回复(0)