当前位置: 首页 > news >正文

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

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

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;

http://www.lryc.cn/news/212242.html

相关文章:

  • JMM 简单理解
  • 微软Azure文本转音频,保存成MP3文件【代码python3】
  • 基于单片机的超声波探伤仪设计
  • idea的设置
  • 高等数学啃书汇总重难点(八)向量代数与空间解析几何
  • C#开发DLL,CAPL调用(CAPL>> .NET DLL)
  • 0-1背包问题【穷举法+二维dp数组】
  • nodejs+vue+python+php基于微信小程序的在线学习平台设计与实现-计算机毕业设计
  • Spring学习笔记2 Spring的入门程序
  • 【Linux】虚拟机安装Linux、客户端工具及Linux常用命令(详细教程)
  • Day 47 动态规划 part13
  • 【广州华锐互动】飞机诊断AR远程指导系统为工程师提供更多支持
  • 【贝叶斯回归】【第 2 部分】--推理算法
  • 【深入浅出汇编语言】寄存器精讲第二期
  • 如何保证分布式情况下的幂等性
  • Mybatis特殊SQL的执行
  • MyBatis-Flex(一):快速开始
  • Vue组件化
  • nodejs+python+php+微信小程序-基于安卓android的健身服务应用APP-计算机毕业设计
  • SpringCloud 微服务全栈体系(九)
  • Mybatis 多对一和一对多查询
  • MySQL的数据库操作、数据类型、表操作
  • 音视频技术开发周刊 | 317
  • 【JavaSE专栏58】“Java构造函数:作用、类型、调用顺序和最佳实践“ ⚙️⏱️
  • Ubuntu系统HUSTOJ 用 vim 修改php.ini 重启PHP服务
  • 案例分析真题-信息安全
  • envi5.3处理高分二号影像数据辐射定标大气校正
  • C语言 结构体
  • frp-内网穿透部署-ubuntu22服务器-windows server-详细教程
  • MySQL内存使用的监控开关和使用查看