1. 修改表名
alter table 表名 rename to 新的表名;
2. 修改表的字符集
alter table 表名 character set 字符集名称;
3. 添加一列
alter table 表名 add 列名 数据类型;
4. 修改列名称 类型
alter table 表名 change 列名 新列别 新数据类型;
alter table 表名 modify 列名 新数据类型;
5. 删除列
alter table 表名 drop 列名;
R(Retrieve): query
show tables;查询表结构
Operating data
Add data insert
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
Delete data delete
delete from 表名 [where 条件];
delete from 表名; 不推荐使用。有多少条记录就会执行多少次删除操作
TRUNCATE TABLE 表名;推荐使用,效率更高先删除表,然后再创建一张一样的表
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
Multi-table query
-- 隐式内连接
select * from `sys_user` u , sys_role r where u.role_id=r.id;
-- 显示内连接
select * from `sys_user` u INNER join sys_role r on u.role_id=r.id;
-- 左外连接
select * from sys_user u left outer join sys_role r on u.role_id=r.id;
-- 右外连接
select * from sys_user u right outer join sys_role r on u.role_id=r.id;
-- 嵌套查询单行单列
SELECT * FROM emp WHERE emp.`salary` = (SELECT MAX(salary) FROM emp);
-- 嵌套查询多行单列
SELECT * FROM emp WHERE dept_id IN (SELECT id FROM dept WHERE NAME = '财务部' OR NAME = '市场部');
-- 嵌套查询多行多列
SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` > '2011-11-11') t2 WHERE t1.id = t2.dept_id;
User Management
Add and delete users
添加用户语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
删除用户语法:DROP USER '用户名'@'主机名';
Modify user password
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
UPDATE USER SET PASSWORD = PASSWORD('abc') WHERE USER = 'root';
Query users:
USE myql;
SELECT * FROM USER;
Forgot to reset ROOT user password
cmd -> net stop mysql stop mysql service (requires administrator to run cmd)
Start the mysql service without authentication: mysqld --skip-grant-tables
Open a new cmd window, directly enter the mysql command, and press Enter to log in successfully
use mysql;
update user set password = password(‘新密码’) where user = ‘root’;
Close two cmd windows
Manually open the task manager and end the mysqld.exe process
Start mysql service **net start mysql **
Log in with the new password.
authority management
Query permissions
SHOW GRANTS FOR '用户名'@'主机名';
SHOW GRANTS FOR 'root'@'%';
Granted permission
GRANT 权限列表 ON 数据库名.表名 to '用户名'@'主机名';
GRANT ALL ON *.* TO 'zhangsan'@'localhost';给张三用户授予所有权限,在任意数据库任意表上
Revoke authority
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';