一、建表
1. 直接建表
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
gender enum('男','女'),
birth timestamp default CURRENT_TIMESTAMP,
update_time timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
)
2. 将查询结果创建表
create table students as select distinct * from user;
二、修改表
1. 添加字段
alter table 表名 add 列名 类型;
alter table students add birthday datetime;
2. 修改字段–重命名
alter table 表名 change 原名 新名 类型及约束;
alter table syudents change birthday birth datetime not null;
3. 修改字段–修改字段属性
alter table 表名 modify 列名 类型及约束;
alter table students modify birth date not null;
4. 修改表名
alter table 修改前表名 rename to 修改后表名;
alter table user rename to user_update;
三、删除表
1. 删除字段
alter table 表名 drop 列名;
alter table students drop birthday;
2. 删除表
drop table 表名;
drop table students;
四、创建用户并授权
Mysql 5.7 和 Mysql 8.0 命令有区别,Mysql 8.0 创建用户并授权不能和以前一样用一条SQL语句完成,必须先创建用户设置密码,再进行授权。
Mysql 5.7
grant 权限 on 数据库.表名 to '用户名'@'登录主机' identified by '密码';
-- 增加或修改用户 user 密码为 password ,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限
grant select,insert,update,delete on *.* to 'user'@'localhost' identified by 'password';
-- 增加或修改用户 user 密码为 password ,让其可以在本机上登录, 并对所有数据库赋予所有权限
grant all privileges on *.* to 'user'@'localhost' identified by 'password';
-- 增加或修改用户 user 密码为 password ,让其可以在任意机器上登录, 并对所有数据库赋予所有权限
grant all privileges on *.* to 'user'@'%' identified by 'password';
-- 增加或修改用户 user 密码为 password ,让其可以在任意机器上登录, 并对单个数据库赋予所有权限
grant all privileges on test.* to 'user'@'%' identified by 'password';
-- 增加或修改用户 user 密码为 password ,让其可以在任意机器上登录, 并对单个数据库的某个表赋予所有权限
grant all privileges on test.t_user to 'user'@'%' identified by 'password';
-- 刷新权限
flush privileges;
Mysql 8.0
创建用户
CREATE USER 'user'@'%' IDENTIFIED BY '123456';
用户授权
grant 权限 on 数据库.表名 to '用户名'@'登录主机' with grant option;
-- 增加或修改用户 user 密码为 password ,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限
grant select,insert,update,delete on *.* to 'user'@'localhost' with grant option;
-- 增加或修改用户 user 密码为 password ,让其可以在本机上登录, 并对所有数据库赋予所有权限
grant all privileges on *.* to 'user'@'localhost' with grant option;
-- 增加或修改用户 user 密码为 password ,让其可以在任意机器上登录, 并对所有数据库赋予所有权限
grant all privileges on *.* to 'user'@'%' with grant option;
-- 增加或修改用户 user 密码为 password ,让其可以在任意机器上登录, 并对单个数据库赋予所有权限
grant all privileges on test.* to 'user'@'%' with grant option;
-- 增加或修改用户 user 密码为 password ,让其可以在任意机器上登录, 并对单个数据库的某个表赋予所有权限
grant all privileges on test.t_user to 'user'@'%' with grant option;
-- 刷新权限
flush privileges;