约束和DCL相关知识点

约束和DCL相关知识点

##约束
*概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
*分类:
1.主键约束:primary key
1.注意:
1.含义:非空且唯一
2.一张表只能有一个字段为主键
3.主键就是表中记录的唯一标识
2.在创建表时,添加主键约束
creat table student(
id int primary key,
name varchar(20)
);
3.删除主键
alter table student drop primary key;
4.创建完表后,添加主键
alter table student modify id int primary key;
5.自动增长:
*概念:如果某一列是数值类型的,使用 auto_increment 可以完成数值的自动增长
*删除自动增长
alter table student modify id int
*添加自动增长
alter table student modify id int auto_increment;
2.非空约束:
1.创建表时添加约束
creat table student(
id int;
name varchar(20) not null
);
2.创建表完后,添加非空约束
alter table student modify name varchar(20) not null
3.删除name的非空约束
alter table student modify name vachar(20);
3.唯一约束:unique,值不能重复
注意:唯一约束限定的列的值可以有多个null
删除唯一约束:alter table student2 drop index phone_number
在创建表后,添加唯一约束:
alter table student2 modify phone_number varchar(20) unique
4.外键约束:foreign key 让表与表之间产生关系,从而保证数据的正确性
1.在创建表时,可以添加外键
*语法:
creat table 表名(

外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
2.删除外键
alter table 表名 drop foreign key 外键名称
3.创建表之后,添加外键
alter table 表名 add constraint 外键名 Foreign key(外键字段名称) references 主表名称(主表列名称)
##DCL:管理用户,授权
1.管理用户
1.添加用户:
*语法:creat user “用户名”@“主机名"identified by “密码”
2.删除用户:
*语法:drop user"用户名”@“主机名”
3.修改用户密码:
update user set password=password(“新密码”)where user =“用户名”
set password for “用户名”@“主机名”=password (“新密码”)
*mysql中忘记用户的密码怎么做?
1.cmd—>net stop mysql停止mysql服务
*需要管理员运行该cmd
2.使用无验证方式启动mysql服务:mysql–skip-grant-tables
3.打开新的cmd窗口,直接输入mysql命令,敲回车,就可以登录成功
4. use mysql
5.update user set password=password(“新密码”) where user=“root”
6.关闭两个窗口
7.打开任务管理器,手动结束mysql.exe进程
8.启动mysql服务
9. 使用新密码登录
4.查询用户:
1.切换到mysql数据库
use mysql
2.查询user表
select * from user
*通配符:% 表示可以在任意主机使用用户登录数据库
2.权限管理:
1.查询权限:
show grant for"用户名"@“主机名”
show grant for “lisi”@"%"
2.授予权限
grant 权限列表 on 数据库名.表名 to “用户名”@“主机名”
例如:给张三用户授予所有权限,在任意数据库任意表上
grant all on . to"zhangsan"@“localhost”
3.撤销权限
revoke 权限列表 on 数据库名.表名 from “用户名”@“主机名”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值