一、数据库账号及权限管理
1、查询用户
select * from user
2、创建用户
create user 用户名称
3、给创建的用户设置密码
ALTER USER 用户 IDENTIFIED WITH mysql_native_password BY ‘密码’;
4、设置权限(Grant)
grant 权限名称(如SELECT,INSERT,UPDATE,DELETE等) on 数据库名.表名 to username@‘host’;
5、撤销权限(Revoke)
revoke 权限名称 on 数据库名.表名 from username@‘host’;
6、查看现有的所有的权限
show grants for 用户名;
如图所示:
注意:
user表中host列的值的意义
% 匹配所有主机
localhost localhost不会被解析成IP地址,直接通过UNIXsocket连接
127.0.0.1 会通过TCP/IP协议连接,并且只能在本机访问;
::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
二、数据库的管理
1、创建数据库
创建成功之后可在用户名为root的连接下看到该数据库,注意刷新
在使用需要的数据库之前,注意切换到需要的数据库,使用use 数据库名命令
2、创建表
六大约束
NOT NULL:非空,用于保证该字段的值不能为空,比如姓名、学号等
DEFAULT:默认,用于保证该字段有默认值,比如性别
PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空 比如学号、员工编号等
UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空,比如座位号
CHECK:检查约束【mysql中不支持】比如年龄、性别
FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来 自于主表的关联列的值
3、表的修改
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
1》修改列名
语法:ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型;
2》、修改列的类型或约束
语法:ALTER TABLE 表名 MODIFY COLUMN 列名 新类型;
3》、添加新列
语法:ALTER TABLE 表名 ADD COLUMN 新列名 类型;
4》、删除列
ALTER TABLE 表名 DROP COLUMN 列名;
5》、修改表名
ALTER TABLE 原表名 RENAME TO 新表名;
6》、显示所有的表
3、删除表
4、删除数据库
三、添加约束的情况
1、创建表时添加约束
1》、添加列级约束
在写完每个字段名和类型之后添加约束条件
2》、添加表级约束
语法:在各个字段的最下面
【constraint 约束名】 约束类型(字段名)
2、修改表时添加约束
1》、添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束;
2》、添加表级约束
alter table 表名 add 【constraint 约束名】 约束类型(字段名) 【外键的引用】;
#1、添加非空约束
#2、添加默认约束
#3、添加主键
或者
#4、添加唯一
或者
#5.添加外键
3、修改表时删除约束
#1.删除非空约束
#2.删除默认约束
#3.删除主键
#5.删除外键
四、练习
#1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)
#2. 向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk)
#3. 向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联的列是dept2表中的id列。