数据库扩展语句和约束方式以及用户管理

数据库扩展语句和约束方式以及用户管理

create TABLE if not exists ky32 (

id int(4) zerofill primary key auto_increment,

name varchar(10) not null,

cradid int(18) not null unique key,

hobby varchar (50)

);

auto_increment:表示该字段可以自增长,默认从1开始,每条记录会自动递增1

if not exists ky32:ky32这个表不存在,才会创建

zerofill:自动填充位置1 0001

primary key:当前表的主键,主键只有一个,而且唯一,而且不能为空

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

drop table ky32:整个删除表

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

truncate table ky32:清空表里的内容,而且会把表结构重新建立。速度上比delete快(在工作中一般用truncate)

modify column:是一种用于修改表中列定义的操作。它可以用来更改列的数据类型、长度、默认值等属性。通过使用modify column,可以在不删除表或数据的情况下更改表的结构。

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

mysql的约束方式:

6种常用的约束:

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

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

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

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

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

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

主表和从表:

插入数据:先插入主表,再插入从表

删除数据:先删除主表,再删除从表

实验:

定义一个需求:

两张表

主表company

从表depart

company:

1、work_id 非空,主键int(4)不满四位要补齐

2、name 非空 char(5)

3、sex 非空 char(2)

depart

1、de_id非空 主键int(6),不满六位要补齐

2、work_id要和主表的work_id关联为外键

3、addrss 为空,但是有一个默认值

4、phone 不能为空而且不能相同

create table company (

work_id int(4) ZEROFILL primary key,

name varchar(5) not null,

sex varchar(2) not null

);

create table depart (

de_id int(6) ZEROFILL primary key,

work_id int(4) ZEROFILL not null,

FOREIGN key (work_id) REFERENCES company (work_id),

address varchar(50) default '地址不详',

phone varchar(255) not null unique

);

ZEROFILL:自动补齐

primary key:主键

auto_increment PRIMARY KEY:自增长

alter table depart add FOREIGH key (work_id) REFERENCES company (work_id):把主表和从表的work_id外键绑定

alter table depart drop PRIMARY key:在外面删除

FOREIGN key (work_id) REFERENCES company (work_id):把主表和从表的work_id外键绑定

实验:

1、两张表:school

de_id int(4) 不满四位要补齐,而且自增长 主键

name varchar(15) not null

email ++++varchar(45)可以为空,而且有默认值bdqnkgc@123.com++++

2、cloud ky32

id自增长 主键int

class-name 不能为空

de_id 主表关联

adress 可以为空,默认是'地址不详'

phone int 不能为空,而且不能重复

3、要求删除外键关联,删除从表的主键,重新定义主键为phone

create table school (

de_id int(4) ZEROFILL auto_increment PRIMARY KEY,

name varchar(10) not NULL,

email varchar(25) DEFAULT ++++'++++ ++++bdqnkgc@126.com++++ ++++'++++

);

create table cloudky32 (

id int(4) zerofill auto_increment primary key,

class_name varchar(50) not null,

de_id int(4) zerofill,

address varchar(255) default '地址不详',

phone int(11) not null unique,

FOREIGN key(de_id) REFERENCES school(de_id)

);

更改表名:alter table 原表名 rename 新表名;

实验:

1、两张表:school de_id int(4) 不满四位要补齐,而且自增长 主键 name VARCHAR(15) not NULL email varchar(45) 不可以为空,而且不能重复

money int 不可为空,不能重复

2、cloud_ky32 id 自增长 主键 int class_name 不能为空。 de_id 外键,外键和主表的主键关联。 adress 可以为空,默认是'地址不详' phone int 不能为空,而且不能重复。

3、分别在两张表中插入10条数据

4、 在第二张表中增加一列,hobby。

5、修改主表的name类型为char(15)

6、更改cloud_ky32的表名,为ky2

7、修改 hobby的列明,改为hob

8、通过命令行,把主表的第一行的money的初始值1000,变成900.

1、create table school (

de_id int(4) ZEROFILL auto_increment PRIMARY KEY,

name VARCHAR(15) not NULL,

email varchar(45) not null unique

ALTER TABLE school ADD money int(4) not null;

);

2、create table cloud_ky32 (

id int(4) ZEROFILL auto_increment primary key,

class_name varchar(50) not null,

de_id int(4) zerofill,

address varchar(255) default'地址不详',

phone int(11) not null unique,

foreign key(de_id) REFERENCES school(de_id)

);

  1. insert into school (de_id,name,email,money)

values

(1,'aa','aa',10),

(2,'bb','bb',20),

(3,'cc','cc',30),

(4,'dd','dd',40),

(5,'ee','ee',50),

(6,'ff','ff',60),

(7,'gg','gg',70),

(8,'hh','hh',80),

(9,'ii','ii',90),

(10,'jj','jj',100);

inster into cloud_ky32 (id,class_name,de_id,adress,phone)

values

(1,'aa',1,'aa',10),

(2,'bb',2,'bb',20),

(3,'cc',3,'cc',30),

(4,'dd',4,'dd',40),

(5,'ee',5,'ee',50),

(6,'ff',6,'ff',60),

(7,'gg',7,'gg',70),

(8,'hh',8,'hh',80),

(9,'ii',9,'ii',90),

(10,'jj',10,'jj',100);

4、alter tables cloud_ky32 add hobby varchar(50) not null;

5、ALTER table school MODIFY COLUMN name char(15);

6、ALTER table cloud_ky32 RENAME ky2;

7、ALTER table ky2 CHANGE hobby hob varchar(50);

8、UPDATE school set money=('900') where de_id = 1;

相关推荐
不染_是非24 分钟前
Django学习实战篇四(适合略有基础的新手小白学习)(从0开发项目)
数据库·后端·学习·django·web
akbar&41 分钟前
计算机三级 - 数据库技术 - 第十三章 大规模数据库架构 笔记
数据库·笔记
架构师ZYL41 分钟前
node.js+Koa框架+MySQL实现注册登录
前端·javascript·数据库·mysql·node.js
酷帅且洋仔1 小时前
Redis——常用数据类型List
数据库·redis·list
惟长堤一痕1 小时前
MySQL基础篇(黑马程序员2022-01-18)
数据库·mysql
兔十卅1 小时前
1、常用的数据库、表操作
数据库
2401_858120261 小时前
如何在Oracle中实现数据的加密
数据库·oracle
楠神说软件测试1 小时前
MySQL调优
数据库·mysql
Cedric_Anik2 小时前
MYSQL数据库基础篇——DDL
数据库·mysql
文牧之2 小时前
PostgreSQL的walsender和walreceiver进程介绍
运维·数据库·postgresql