目录
记录MySQL自身数据的数据库
information_schema:信息数据库,保存mysql所维护的其他数据库信息,例如:数据库名,数据库的表,表栏的数据类型与访问权限等
mysql:核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息
performance_schema:用于mysql的监控数据的存放
- -- 示例
- use mysql
命令格式
- grant privileges on databasename.tablename to username@'host'
- -- privileges
- -- 指定select,update等权限,全部权限使用all
- -- databasename
- -- 指定数据库,所有数据库请使用*
- -- tablename
- -- 指定数据表,所有表请使用*
- -- username
- -- 需要赋权的用户名,@带的是Host,表示赋权操作针对那些链接,详情查看【host列说明】
使用示例
- GRANT SELECT, UPDATE ON bookshop.`t_book` TO test@'%';
- -- 将bookshop数据库中的t_book表的select,update权限赋予test用户,并且不对ip地址限制
- grant all on *.* to dba@'localhost'
- -- 一般用于赋予管理员最高权限,谨慎使用
- grant create view on testdb.* to developer@'192.168.0.%';
- -- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建视图的权限
- grant show view on testdb.* to developer@'192.168.0.%'
- -- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予查看视图的权限
- grant index on testdb.* to developer@'192.168.0.%';
- -- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建索引的权限
- grant create routine on testdb.* to developer@'192.168.0.%'
- -- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予操作存储过程与函数的权限
- grant alter routine on testdb.* to developer@'192.168.0.%';
- -- 以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建删除存储过程与函数的权限
命令格式
grant privileges on databasename.tablename to username@'host' with grant option
示例
grant select on testdb.* to dba@localhost with grant option
- -- 查看当前用户(自己)权限
- show grants
- -- 查看其他 MySQL 用户权限
- show grants for dba@localhost;
- -- 收回test用户对于bookshop库中t_book表的update权限(ip不限)
- REVOKE UPDATE ON bookshop.t_book FROM test@'%';
命令格式
revoke privileges on databasename.tablename from username@'host'
示例
- -- 收回test用户对于bookshop库中t_book表的update权限(ip不限)
- REVOKE UPDATE ON bookshop.t_book FROM test@'%';
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据, 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能
命令
show engines
命令格式
create database 数据库名
- create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;
-
- -- 默认的数据库编码集:utf8
- -- collate表示校验规则为utf8_general_ci
- -- 常用排序类型
- -- utf8_general_cs(区分大小写)
- -- utf8_genera_ci(不区分大小写)
show databases
- drop database 数据库名
- -- 危险操作,先备份
命令格式
- CREATE TABLE 表名称(
- 列名称1 数据类型 NOT NULL,
- 列名称2 数据类型,
- 列名称3 数据类型,
- unique(列名称1[,列名称2,...,列名称N])
- )
示例
- create table t_student
- (
- sid int not null comment '学号',
- sname varchar(60) not null comment '姓名',
- sex tinyint not null default 1 comment '性别:1男, 2女',
- age tinyint not null comment ' 年龄',
- icard varchar(18) not null comment '身份证,唯一约束',
- primary key (sid),
- unique key AK_Key_2 (icard)
- ) comment '学生信息表';
- -- PRIMARY KEY
- -- 增加主键
- ALTER TABLE 表名 ADD PRIMARY KEY(主键名称)
- -- 删除主键
- ALTER TABLE 表名 DROP PRIMARY KEY
sid INT NOT NULL COMMENT '学号',
- DROP TABLE IF EXISTS t_score;
- CREATE TABLE t_score
- (
- id INT NOT NULL COMMENT '记录流水号',
- sid INT NOT NULL COMMENT '学号',
- cid INT NOT NULL COMMENT '课程ID',
- score FLOAT COMMENT '成绩',
- PRIMARY KEY (id),
- FOREIGN KEY (sid) REFERENCES t_student (sid) ON DELETE RESTRICT ON UPDATE RESTRICT,
- UNIQUE KEY AK_Key_2 (sid, cid)
- );
- 说明: sid为本表的外键,关联t_student表中的的sid主键,ON DELETE RESTRICT ON UPDATE RESTRICT说明在本表有数据的情况下,主表的关联键不能删除或更新。
增加外键
- -- 增加外键
- ALTER TABLE 表名 ADD FOREIGN KEY(外键名称) REFERENCES 主表名称(主键名称)
删除外键
- -- 删除外键
- ALTER TABLE 表名 DROP FOREIGN KEY 约束名
- -- UNIQUE KEY 约束名 (字段)
- -- 创建唯一约束
- ALTER TABLE 表名 ADD UNIQUE(列名称1[,列名称2,..])
- create unique index UserNameIndex on 't_user' ('username')
- -- 删除唯一约束
- ALTER TABLE 表名 DROP INDEX 唯一约束缩影名称
default