什么是 SQL
SQL 语言的作用
常用的 SQL 语言的种类
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.连接
mysql -u root -p123456或mysql -u root -p输入密码
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@'%';
