MySQL数据库的基本操作

一、数据库账号及权限管理
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列。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值