MySql基础语法和用户权限管理

SQL分类

1. DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

2. DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

3. DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等

4. DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

手动登录MySQL

1. mysql -uroot -p密码
2. mysql -hip -uroot -p连接目标的密码
3. mysql --host=ip --user=root --password=连接目标的密码

数据库操作

C(Create):创建create
1. create database 数据库名称;
2. create database if not exists 数据库名称;
3. create database 数据库名称 character set 字符集名;
D(Delete):删除drop
1. drop database 数据库名称;
2. drop database if exists 数据库名称;
U(Update):修改alter
alter database 数据库名称 character set 字符集名称;
R(Retrieve)查询show
show databases;查询数据库列表:
show create database 数据库名称;查询某个数据库的创建语句
补充
use 数据库名称;
create table 表名 like 被复制的表名;

表操作

C(Create):创建
create table 表名(
	列名1 数据类型1,
	列名2 数据类型2,
	....
	列名n 数据类型n(此处没有逗号)
U(Update):修改
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` = (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;

用户管理

添加删除用户
添加用户语法: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'@'%';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Double@加贝

我这么欠揍,你来打赏我啊!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值