mysql高级操作

本文介绍了MySQL的高级操作,包括自动填充、数据克隆、清空表的三种方法、创建临时表、六种常见的约束,以及数据库用户管理,如查看、增加、修改和删除用户,以及权限的授予、查看和撤销。重点讲解了不同清空表方法的速度和安全性,以及外键约束和用户授权的操作细节。
摘要由CSDN通过智能技术生成

一.自动填充

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且
添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL

新建一个数据库

mysql> create database zhongbo;
Query OK, 1 row affected (0.01 sec)
mysql> use zhongbo;
Database changed
mysql> create table if not exists info (id int(4) zerofill primary key auto_increment,    name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));
Query OK, 0 rows affected, 3 warnings (0.01 sec)
mysql> desc zhongbo.info;

在这里插入图片描述

mysql> insert into info (name,cardid) values('zy','0234');
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;

在这里插入图片描述

mysql> insert into info (name,cardid) values('wwd','00678');
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;

没有添加ID号,但是ID号是自动添加并且会自动增加
在这里插入图片描述

二.数据克隆

格式

create table yyy2 like yyy;    #复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into yyy2 select * from yyy;      #备份内容

例如把info 表复制到info2表

MySQL root@localhost:ky15> create table info2 like info;
Query OK, 0 rows affected
Time: 0.004s
MySQL root@localhost:ky15> insert into info2 select * from info;
Query OK, 2 rows affected
Time: 0.001s
MySQL root@localhost:ky15> select * from info2;

在这里插入图片描述

三.清空表,删除表内的所有数据

1.方法一:delete from yyy3;

MySQL root@localhost:nrl> delete from info;
You're about to run a destructive command.
Do you want to proceed? (y/n): y
Your call!
Query OK, 2 rows affected
Time: 0.001s

#DELETE清空表后,返回的结果内有删除的记录条目;
DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除
所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。
在这里插入图片描述
再次添加后ID从004号开始了
在这里插入图片描述

2.方法二:truncate table test01

(root@localhost) [nrl]> truncate table info;
Query OK, 0 rows affected (0.00 sec)

接着刚才的表删除表后再重新写入数据,它就是从第一数开始的
在这里插入图片描述
#TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,
因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,
ID会从1开始重新记录

3.方法三:drop table 表名;

(root@localhost) [nrl]> drop table info;
Query OK, 0 rows affected (0.00 sec)

(root@localhost) [nrl]> select * from info;
ERROR 1146 (42S02): Table 'nrl.info' doesn't exist

4.小结

速度
drop> truncate > delete
安全性
delete 最好

四.创建临时表 temporary

创建临时表
临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。
如果在退出连接之前,也可以可执行增删改查等操作,比如使用DROP TABLE语句手动直接删除临时表。
PS:无法创建外键
CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[, …]
[, PRIMARY KEY (主键名)]);

(root@localhost) [nrl]> show tables;                            首先查看该数据库是没有任何表的
Empty set (0.00 sec)
(root@localhost) [nrl]> create temporary table info 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值