阅读更多
1 DML
数据操纵语言Data Manipulation Language, DML
是SQL
语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT
、UPDATE
、DELETE
三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此有很多开发人员都把加上SQL
的SELECT
语句的四大指令以CRUD
来称呼
1 2 3
| UPDATE DELETE INSERT INTO
|
2 DDL
数据定义语言Data Definition Language, DDL
,是用于描述数据库中要存储的现实世界实体的语言
1 2 3 4 5 6 7
| CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX
|
3 DCL
数据控制语言Data Control Language, DCL
,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权
4 DQL
数据库查询语言Data Query Language, DQL
5 辅助命令
这些辅助命令一般来说都支持SQL操作的一些关键字,比如LIKE等等
5.1 SHOW
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SHOW DATABASES; SHOW TABLES; SHOW COLUMNS FROM [表名]; DESCRIBE [表名]; DESC [表名]; SHOW STATUS; SHOW CREATE DATABASE [数据库名]; SHOW CREATE TABLE [表明]; SHOW GRANTS SHOW ERRORS和SHOW WARNINGS SHOW VARIABLES; SHOW PROFILES; SHOW PROFILE; SHOW PROFILE FOR QUERY [num]; SHOW ENGINES;
|
5.2 SELECT
1 2 3 4 5 6
| SELECT @@global.tx_isolation; SELECT @@session.tx_isolation; SELECT @@tx_isolation; SELECT version(); SELECT database(); SELECT user();
|
5.3 SET
1 2 3 4 5 6 7
| SET GLOBAL profiling_history_size = 10; SET SESSION profiling_history_size = 15; SET profiling_history_size = 15;
SET @@global.profiling_history_size = 10; SET @@session.profiling_history_size = 15; SET @@profiling_history_size = 15;
|
5.4 EXPLAIN
6 Grant
1 2 3 4 5
| CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
|
ALL PRIVILEGES
:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT
、CREATE
、DROP
等,以逗号分隔。
ON
:表示这些权限对哪些数据库和表生效,格式:数据库名.表名
,这里写*.*
表示所有数据库
的所有表
。如果我要指定将权限应用到test
库的user
表中,可以这么写:test.user
TO
:将权限授予哪个用户。格式:'用户名'@'登录IP或域名'
。%
表示没有限制,在任何主机都可以登录。比如:'test'@'192.168.0.%'
,表示test
这个用户只能在192.168.0
IP段登录
IDENTIFIED BY
:指定用户的登录密码
WITH GRANT OPTION
:表示允许用户将自己的权限授权给其它用户
7 Tips
- 直接在shell中执行sql:
mysql -uroot -pxxx -e 'select * from table'
- 执行sql文件中的所有sql
mysql -uroot -p123456 -e 'source /root/temp.sql'
mysql -uroot -p123456 < /root/temp.sql