什么是 SQL

一种描述性语言

SQL 语言的作用

对存储在 RDBMS 中的数据进行增删改查等操作

常用的 SQL 语言的种类

120.png

DDL(Data Definition Languages)语句

即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:_CREATE、ALTER、DROP、TRUNCATE、COMMENT、RENAME_

DML(Data Manipulation Language)语句

即数据操纵语句,用来查询、添加、更新、删除等,常用的语句关键字有:_SELECT、INSERT、UPDATE、DELETE、MERGE、CALL、EXPLAIN PLAN、LOCK TABLE_,包括通用性的增删改查。

DCL(Data Control Language)语句

即数据控制语句,用于授权/撤销数据库及其字段的权限(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system.)。常用的语句关键字有:_GRANT、REVOKE_

TCL(Transaction Control Language)语句

事务控制语句,用于控制事务,常用的语句关键字有:_COMMIT、ROLLBACK、SAVEPOINT、SET TRANSACTION_

数据库的管理命令

1.连接

  1. mysql -u root -p123456
  2. mysql -u root -p
  3. 输入密码

2.查看操作

-- 查看所有库
show databases;

-- 查看所在库的表
show tables;

-- 查看库的创建语句
show create database table_name(表名);

-- 查看表的创建语句
show create table table_name(表名);

-- 查看表的索引
show index from table_name(表名);
show index from users ;

-- 查看mysql版本
select version() ;

-- 查看当前用户 
select user() ;

--查看当前用户(自己)权限
show grants ;

--查看其他 MySQL 用户权限:
show grants for zhangkh@localhost ;

3.创建用户

特别需要注意,在 MySQL 中,账号由两部分组成: 1. user、2. host,即使 user 相同,只要 host 不同,也会被认为是不同账号。
这样可以非常方便对来自不同 ip 地址的访问进行精细的权限控制。
默认情况下,创建的用户 host 为 ‘%’,这是一个匹配符,跟模糊查询里的意思一样,表示匹配所有

create user [用户名] identified by '[密码]';
create user vip identified by 'vippp';             -- 所有连接
create user vip@'127.0.0.1' identified by 'xxx';   -- 本地连接
create user vip@'192.168.%' identified by 'yyy';   -- 192.168 网段的连接

4.删除用户

drop user 用户名;
或
delete from mysql.user where user='用户名' and host='%'

5.修改密码

set password from '用户名' @host=password('新密码');
或
update mysql.user set password=password('新密码') where user='用户名' and host='%'; --使用password() 进行加密

6.设置用户权限

格式:**grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"**;
权限类型:_select, insert, update, delete, all_

 --将所有数据库上的所有权利都授予通过本机连接的VIP用户;
grant all on *.* to vip@'127.0.0.1';  

--将数据库books上的说有权利都授予所有连接的vip用户;
grant all privileges on books.* to vip@'%'; 

--将books数据库上的users表的访问权限开发给vip用户;
grant select on books.users to vip@'%';

--with grant potionss的意思是可以给vip给予权限给别的用户
grant all on *.* to vip@'%' with grant potions; 

--设置权限后要刷新权限
flush privileges;

--撤销用户已有权限
grant all on *.* to dba@'%';
revoke all on *.* from dba@'192.168.0.100';
revoke all on *.* from dba@'%';