目录
一、指定主键的另一种方式
?二.克隆、复制表
1.复制表的所有内容(包括数据和表结构)
??2.复制表数据或结构
三.清空表、清楚表内数据
1.方法一
2. 方法二
3.方法三
4.三种方式的对比
四、创建临时表
五、mysql常见约束
六.外键约束
定义
作用
主表和从表
七.用户管理
1.新建用户
2.查看用户信息
3.重命名用户
4.删除用户
5.修改当前登陆用户密码
6.修改其他用户密码
八.用户授权
1.给予权限
2、查看权限
3、撤销权限
总结
一、指定主键的另一种方式
use ab;
create table if not exists syl (
id int(4) zerofill primary key auto_increment,
student_name varchar(20) not null,
cardid varchar(18) not null unique key,
hobby varchar(50));
if not exists 表示检测要创建的表是否存在,如果不存在就创建表
int(4) zerofill 表示若数值不满4位数,则前面用“0”填充
auto_increment 表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
unique key 表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
not null 表示此字段不允许为NULL
?
?
?二.克隆、复制表
1.复制表的所有内容(包括数据和表结构)
create table 新表名 (select * from 复制的表名)
?2.复制表数据或结构
create table 新表名 like 复制的表名; #复制格式,能够复制表的格式到新表,但是没有内容
insert into 新表名 select * from 复制的表名; #复制原表内容到新表
?
?
三.清空表、清楚表内数据
1.方法一
delete from 表名;
#delete清空表后,返回的结果内有删除的记录条目;delete工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用delete from 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录
2. 方法二
truncate table 表名;
#truncate 清空表后,没有返回被删除的条目;truncate 工作时是将表结构按原样重新建立,因此在速度上 truncate 会比 delete 清空表快;使用 truncate table 清空表内数据后,ID 会从 1 开始重新记录。
3.方法三
drop table 数据库名.表名;
4.三种方式的对比
- ?删除速度: drop > truncate > delete
- drop 为直接删除表
- truncate 为直接摧毁重构
- delete 为逐条删除
?安全性: drop 和 truncate 都是不保留有记录的,不便于数据的恢复 delete 因为有删除操作的每一个步骤,因此当误删的时候可以根据日志进行恢复操作 因此 delete 的安全性最好
四、创建临时表
create temporary table 表名 (字段1 类型,字段2 类型 [,primary key (主键名)]);
- 临时表创建成功之后,使用 show tables 命令是看不到创建的临时表的,临时表会在连接退出后被销毁
- 在退出连接之前,也可以可执行增删改查等操作,不过不可以创建外键
五、mysql常见约束
主键约束 primary key
外键约束 foreign key
非空约束 not null
唯一约束 unique [key
默认值约束 default
自增约束 auto_increment
六.外键约束
定义
- 如果同一个属性字段在表一中是主键,而在表二中不是主键,则该字段称为表二的外键
作用
主表和从表
-
以公共关键字作为主键的表为主键表(父表、主表) -
以公共关键字作为外键的表为外键表(从表、外表)
注:与外键关联的主表的字段必须设置为主键,要求从表不能是临时表,主从表的字段具有相同的数据类型、字符长度和约束
建立主从表后,插入数据(先主表,再从表),删除数据记录(先从表,后主表),删除外键约束字段(先删除外键约束,再删除外键名)
七.用户管理
1.新建用户
create user '用户名'@'来源地址' [identified by [passwd] '密码'];
- 用户名:指定将创建的用户名
- ?来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录
- ?可用通配符%
密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密; 若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’; 若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)
2.查看用户信息
use mysql;
select User,authentication_string,Host from user;
3.重命名用户
rename user 'lisi'@'localhost' to 'wangwu'@'localhost';
4.删除用户
drop user '用户名'@'localhost';
5.修改当前登陆用户密码
set password = password('新密码');
6.修改其他用户密码
set password for '用户名'@'localhost' = password('新密码');
use mysql;
select User,authentication_string,Host from user;
八.用户授权
1.给予权限
grant 提权
grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];
- 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔(all表示所有)?
- 来源地址:用于指定用户名称和允许访问的客户机地址,来源地址可以是域名、IP 地址,还可以使用 “%” 通配符
2、查看权限
show grants for 用户名@来源地址;
3、撤销权限
revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
总结
mysql新建用户需要指定权限
复制表有两种方式:1将表内容和结构一起复制? ?2.表内容和结构分开复制
外键的作用是保证数据的完整性和一致性
临时表在用户退出前能正常使用,退出后表就自动销毁
|