mysql数据之表管理-mysql高级管理

news/2025/2/23 2:38:06/

1.

#创建表tt01

#对id字段设置零填充约束、主键约束、自增长约束

#对name字段设置非空约束、默认值约束

#对cardid字段设置非空约束、唯一键约束

 

插入数据记录:

1)因为id字段设置了自增长,如果不指定id字段值,则默认从1开始递增;

int(4) zerofill ,设置了零填充约束,如果数值不满4位数,则前面用“0”填充到4位,所以下面案例中的id值为0001。

 2)再次插入数据记录,不指定id字段值,则id值会自增1,此时为0002。

 3)自增长,如果添加失败也会自动递增一次,数值会被占用。

#下面两条命令会执行失败,因为cardid设置了唯一键不能重复。但执行失败,id值也会自增,0003、0004这两个数值会被占用。

INSERT INTO tt01(name,cardid,hobby) values('小强',1102,'singing');  

INSERT INTO tt01(name,cardid,hobby) values('小方',1102,'running');

#下面这条命令执行成功后,id值是0005,因为0003和0004被执行失败的命令占用了。  

INSERT INTO tt01(name,cardid,hobby) values('小丽',1103,'singing');

4)插入数据记录,指定id值为10。

则后面插入的数据就会从10开始自增1,即增长为11。

 

 5)cardid字段设置了唯一键约束,如果字段值重复,则会数据会插入失败。

6)name字段设置了不允许为NULL,且默认值为“匿名”,则插入数据时如果不指定name字段的值,该字段会自动插入默认值“匿名”。

 2.

克隆表,将数据表的数据记录生成到新的表中方法

1:先克隆表结构,再导入表数据。

create table 新表名 like 旧表名;   #通过LIKE方法,复制旧表的结构生成新表  

insert into 新表名 select * from 旧表名;   #再将旧表数据导入新表

 方法2:创建新表的同时,导入旧表数据。

 create table 新表名 (select * from 旧表名);

 

 3.查勘表结构的三种方法 

 方法一:  desc 表名;     #以表格形式显示表结构  ​  

 方法二:  show create table 表名;     #以创建表的命令形式显示表结构  

方法三:  desc 表名\G #如果字段较多,也可以使用"desc 表名\G"的方式竖向显示表结构

4.清空表删除表内的所有内容

delete from 表名;  ​  #DELETE清空表后,返回的结果内有删除的记录条目;  DELETE 工作时是一行一行的删除记录数据的,删除时速度较慢;  如果表中有自增长字段,使用"DELETE FROM"删除所有记录后,新添加的记录会从原来最大的记录ID后面继续自增写入记录。

方法二:truncate

truncate table 表名;    #相当于格式化,速度很快  ​  #TRUNCATE清空表后,没有返回被删除的条目。 TRUNCATE 工作时是将表结构按原样重新建立,因此在速度方面 TRUNCATE 会比DELETE清空表快。 使用TRUNCATE TABLE清空表内数据后,ID会从1开始重新记录。

5.创建临时表temporary

临时表创建成功之后,使用"SHOW TABLES"命令是看不到创建的临时表的,临时表会在连接退出后被销毁。

如果在退出连接之前,也可以执行增删改查等操作,比如使用"DROP TABLE"语句手动直接删除临时表

临时表一般用于测试使用,只有当前连接的用户才能看到,相同用户换个终端登录也看不到。退出当前连接(退出数据库)之后临时表会被销毁。

#退出数据库后重新进入,查看临时表数据,提示表不存在。临时表会在连接退出后被销毁。

6.创建外键约束,保证数据的整性和一致性  

外键的定义: 如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键

外键的作用:

为了一张表记录的数据不要太过冗余。

保持数据的一致性、完整性。

主键表和外键表的理解:

(1)以公共关键字作主键的表为主键表(父表、主表)

(2)以公共关键字作外键的表为外键表(从表、外表)

1)

 #创建主表class  create table class (cid int,cname varchar(10));  ​

 #创建从表student  create table student (id int,name varchar(10),age int,classid int);

#为主表class的cid字段添加一个主键约束。constraint为主键创建别名,主键名建议以“PK_”开头。  alter table class ADD constraint PK_CID primary key (cid);

 #为从表student的classid字段添加外键,并将student 表的classid字段和class 表的cid字段建立外键关联。外键名建议以"FK_”开头。  #references关联主键表中的字段。  alter table student ADD constraint FK_CLASSID foreign key (classid) references class(cid);  ​

 #添加外键时必须关联主键(即先要添加主键,再添加外键)

 #添加主键和外键时,即使不设置别名,系统也会自动创建一个别名。

为两个表插入数据:

 INSERT INTO class values(1,'钢琴');     #为主表插入数据  ​

INSERT INTO student values(1,'张三',18,1);   #为从表插入数据  ​  

INSERT INTO student values(2,'李四',18,2);   #这条数据会插入失败,因为主表的cid字段没有为2的值

如果想删除主键表中的某条记录,必须先删除外键表中相关联的字段记录。

 查看和删除外键约束 

第一步删除外键约束,第二步删除别名。

 

 

 


http://www.ppmy.cn/news/61971.html

相关文章

Camtasia2023最好用的电脑屏幕录制软件

Camtasia2023是市场上最好的录像机和屏幕录制软件之一。强大的软件视频编辑程序的Camtasia 适用于Windows和iOS。 它支持多种流行的媒体格式,并对您创建的视频提供令人印象深刻的控制范围。3000多万专业人士在全球范围内使用Camtasia展示产品,教授课程&a…

红外遥控且自动避障的嵌入式智能小车系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本次实验使用树莓派作为开发平台,AlphaBot 作为开发载体,Python 作为开发语言,开发一种基于红外线遥控控制的、可自动避障的嵌入式智能小车系统。 智能系统中的嵌入式应用 实验目的 嵌入式…

Python使用phonenumbers库实现电话号码解析

phonenumbers是一个Python库,用于解析、验证和格式化国际电话号码。它支持多种格式的电话号码,包括E.164、国际、国内和RFC 3966等格式。本文将介绍如何使用phonenumbers库来解析电话号码。 安装phonenumbers库 在使用phonenumbers库之前,需…

武忠祥老师每日一题||定积分基础训练(九)

∫ 0 1 ln ⁡ ( 1 x ) ( 2 − x ) 2 d x \int_{0}^{1}\frac{\ln (1x)}{(2-x)^2}\,{\rm d}x ∫01​(2−x)2ln(1x)​dx 根据题目的特点,有对数函数、有理函数,两种不同类型的函数相乘,对此,应用分部积分法。 当出现对数后&#xff…

输入捕获模式测频率、PWMI模式测频率占空比

一、知识点 TIM输入捕获模式: 1、输入捕获模式测频率占空比 信号源:产生一个频率和占空比可调的波形 无信号发生器的情况:先用PWM模块,在PA0端口输出一个频率和占空比可调的波形,把PA0和PA6连在一起,PA6为输…

单片机作业3

1.下列指令能使R0低4位不变,高4位置F的是_____。 A、ANL R0,#0F0HB、ORL R0,#F0HC、ORL R0,#0FHD、ORL R0,#0F0H 我的答案:D ORL:逻辑或 ANL:逻辑与 16进制,所以F前…

认识监听器(Listener)

监听器是什么? 监听器(Listener)是一种运行在后台的程序,它主要用于监控某些事件在系统中的发生,并且根据这些事件做一些特定的处理。在Web应用程序中,监听器可以观察ServletContext、HttpSession以及Serv…

linux device tree 编译工具 dtc

/* * 设备树框架 */ 设备树用树状结构描述设备信息,它有以下几种特性 每个设备树文件都有一个根节点,每个设备都是一个节点。 节点间可以嵌套,形成父子关系,这样就可以方便的描述设备间的关系。 每个设备的…