欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql的应用(一)

程序员文章站 2024-03-08 17:17:10
...

mysql之账号管理

一.数据库账号及权限
#用户名密码创建需要分开
#命令:create user 用户名;
create user ls;
1.设置权限(Grant)
grant ALL on 【赋予权限的数据库】.* to 【数据库账号名】@’%’;
//ALL表示所有权限
grant SELECT on【赋予权限的数据库】.【表名】to 【数据库账号名】@’%’;
//SELECT表示赋予【赋予权限的数据库】的【表名】的查询权限
grant UPDATE on【赋予权限的数据库】.【表名】to 【数据库账号名】@’%’;
//同理 UPDATE赋予修改权限
grant SELECT on【赋予权限的数据库】.【星号】to 【数据库账号名】@’%’;
//SELECT表示赋予【赋予权限的数据库】的所有的表的查询权限
//同理 UPDATE表示赋予【赋予权限的数据库】的所有的表的修改权限

2.撤销权限(Revoke)
#语法:revoke privileges on databasename.tablename from aaa@qq.com‘host’;
#啥也不能回收,不会对GRANT ALL PRIVILEGES ON【赋予权限的数据库】.【星号】to @’%‘有任何影响
和设置权限相同 只是语法不同
revoke all on 【赋予权限的数据库】.【表名】 aaa@qq.com’%’;
//回收指定的表名的权限
#注:revoke只能回收grants列表中更小的权限;

设置权限(Grant)和撤销权限(Revoke)的参数说明:
1) privileges:  用户的操作权限,如SELECT,INSERT,UPDATE,DELETE等,如果要授予所有权限直接使用:all;
2) databasename:数据库名;
3) tablename:   表名,如果要授予用户对所有数据库和表的操作权限直接使用:*.*;  

3.查看用户权限
#命令:show grants for 用户名;
show grants for ‘zs’@’%’;
mysql的应用(一)
二.mysql默认数据库里面的四张表
1、user表(用户层权限)
2、db表(数据库层权限)
3、tables_priv表(表层权限)
4、columns_priv表(字段层权限)

三.DDL(数据定义语言)
1、数据库管理
以管理员模式打开CMD
1.创建数据库
create database 数据库名;

2.查看所有数据库
show databases;
3.删除数据库(慎用)
drop database 数据库名;
mysql的应用(一)
mysql的应用(一)

2表的管理
跟库差不多 创建: create 修改: alter 删除: drop;
1.创建create table 表名(列名 列的类型【(长度) 约束】);
2.表的修改
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
mysql的应用(一)
这里没有创建库 是直接使用已经有的库 用use [库名];
mysql的应用(一)
创建一个BOOK的表

四.常见约束
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性

分类:六大约束
NOT NULL:非空,用于保证该字段的值不能为空
比如姓名、学号等
DEFAULT:默认,用于保证该字段有默认值
比如性别
PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空
比如学号、员工编号等
UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空
比如座位号
CHECK:检查约束【mysql中不支持】
比如年龄、性别
FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值
在从表添加外键约束,用于引用主表中某列的值

比如:
mysql的应用(一)
mysql的应用(一)
这张表ID添加了主键约束;所以当主键出现相同的就会报错;

注:主表的主键就是从表的外键!!!!
如:主表
班级编号 班级 老师
001 一班 XXX
从表
学生ID姓名班级编号
001 XXX 001
这里的班级编号就是外键

5.标识列

又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值

特点:
1、标识列必须和主键搭配吗?不一定,但要求是一个key
2、一个表可以有几个标识列?至多一个!
3、标识列的类型只能是数值型
4、标识列可以通过 SET auto_increment_increment=3;设置步长
可以通过 手动插入值,设置起始值
mysql的应用(一)
mysql的应用(一)
会在下一行自动递增1;

相关标签: 作业 mysql