1. MySQL用户和权限管理
1)创建账号
create user "用户名"@"IP地址" identified by "密码";
创建本地账号
create user 'adam1'@'localhost' identified by '123'; #mysql -adam1 -p123
创建远程账号
create user 'adam2'@'192.168.31.10' identified by '123'; #mysql -uadam2 -p123 -h 服务端ip
create user 'adam3'@'192.168.31.%' identified by '123'; #mysql -uadam3 -p123 -h 服务端ip
2)授权
user: *.*
db: db1.*
tables_priv: db1.t1
columns_priv: id, name
授予权限
grant all on *.* to 'adam1'@'localhost';
grant select on *.* to 'adam1'@'localhost';
grant select on db1.* from 'adam1'@'localhost';
回收权限
revoke select on *.* from 'adam1'@'localhost';
revoke select on db1.* from 'adam1'@'localhost';
查看权限:
show grants for 'adam1'@'localhost';
3)删除用户
drop user "用户名"@"IP地址";
4)修改用户
rename user "用户名"@"IP地址"; to "新用户名"@"IP地址";
5)修改密码
set password for "用户名"@"IP地址" = Password("新密码");
常用权限:
all privileges 除grant外的所有权限
select 仅查询权限
select, insert 查询和插入权限
update 使用update
delete 使用delete
2. MySQL基础知识
1)主键:一种特殊的唯一索引,不允许有空值,如果主键使用单格列,则它的值必须唯一,如果是多列,则其组合必须唯一。
primary key [auto_increment]
后一个参数为自增
2)对数据库的基本操作
create database db1 charset utf8:创建数据库
show databases:查看数据库
alter database db1 charset gbk:修改数据库
drop database db1:删除数据库
3. MySQL基本数据类型
1)数字
tinyint:小整数
smallint:
mediumint:
int:整数
bigint:大整数
decimal:准确的小数值,对于精确数值计算时需要用此类型
float:单精度浮点数,数值越大越不准确
double:双精度浮点数,数值越大越不准确
2)字符串
char:定长
varchar:变长
text:用于保存变长的大字符串
medium:
longtext:
3)时间
date:YYYY-MM-DD
time:HH:MM:SS
year:YYYY
datetime:YYYY-MM-DD HH:MM:SS
timestamp:YYYY-MM-DD HH:MM:SS
4)枚举类型与集合类型
enum 单选,只能在给定的范围内选一个值,例:gender enum('Male', 'Female')
set 多选,在给定的范围内可以选择一个或多个值,例:hobby set('Music', 'Sports', 'Reading')
4. 对数据库的操作
1)创建数据库
CREATE DATABASE 数据库名 charset utf8;
2)数据库命名规则:
- 可以由字母、数字、下划线、@、#、¥
- 区分大小写
- 唯一性
- 不能使用关键字如create select
- 不能单独使用数字
- 最长128位
3)数据库相关操作
(1)查看数据库
show databases;
show create database db1;
select database();
(2)选择数据库
USE 数据库名
(3)删除数据库
DROP DATABASE 数据库名;
(4)修改数据库
alter database db1 charset utf8;
5. 对表操作的内容
1)创建表
create table 表名(列名 类型 约束条件)
注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
2)删除表
drop table 表名
3)清空表
truncate table 表名
delete from 表名
4)修改表
添加列:
alter table 表名 add 列名 类型 [完整性约束条件]
alter table 表名 add 列名 类型 [完整性约束条件] FIRST
alter table 表名 add 列名 类型 [完整性约束条件] AFTER 列名
删除列:alter table 表名 drop column 列名
修改列:
alter table 表名 modify column 列名 类型 [完整性约束条件];
alter table 表名 change 原列名 新列名 类型 [完整性约束条件];
添加主键:
alter table 表名 add primary key(列名);
删除主键: