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):查询
show tables;查询表结构
数据操作
添加数据 insert
insert into 表名(列名1,列名2,...列名n)values(值1,值2,...值n);
删除数据 delete
1. delete from 表名 [where 条件];2. delete from 表名; 不推荐使用。有多少条记录就会执行多少次删除操作
3. TRUNCATE TABLE 表名;推荐使用,效率更高先删除表,然后再创建一张一样的表
修改数据 update
update 表名 set 列名1= 值1, 列名2= 值2,...[where 条件];如果不加任何条件,则会将表中所有记录全部修改
查询数据 select
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
多表查询
-- 隐式内连接
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` =(SELECTMAX(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;
用户管理
添加删除用户
添加用户语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
删除用户语法:DROP USER '用户名'@'主机名';
修改用户密码
UPDATE USER SET PASSWORD =PASSWORD('新密码')WHERE USER ='用户名';
UPDATE USER SET PASSWORD =PASSWORD('abc')WHERE USER ='root';
查询用户:
USE myql;
SELECT *FROM USER;
ROOT用户密码忘记重置
1. cmd -->**net stop mysql** 停止mysql服务(需要管理员运行cmd)2. 使用无验证方式启动mysql服务: **mysqld --skip-grant-tables**3. 打开新的cmd窗口,直接输入 **mysql** 命令,敲回车,即可登录成功
4.**use mysql**;5.**update user set password =password('新密码') where user ='root';**6. 关闭两个cmd窗口
7. 手动打开任务管理器,结束mysqld.exe 进程
8. 启动mysql服务 **net start mysql **9. 使用新密码登录。
权限管理
查询权限
SHOW GRANTS FOR '用户名'@'主机名';
SHOW GRANTS FOR 'root'@'%';
授予权限
GRANT 权限列表 ON 数据库名.表名 to'用户名'@'主机名';
GRANT ALL ON *.* TO 'zhangsan'@'localhost';给张三用户授予所有权限,在任意数据库任意表上
撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';