SQL是数据分析常用的一种工具,今天跟小编一起来学习一下SQL结构化查询语言都有哪些分类吧。
结构化查询语言(英语:Structural Query Language,缩写:SQL),是一种特殊目的之编程语言,用于数据库中的标准数据查询语言,IBM公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
SQL分类:
数据查询语言(DQL)
数据操纵语言(DML)
事务控制语言(TCL)
数据控制语言(DCL)
数据定义语言(DDL)
一、数据查询语言(DQL:Data Query Language):
其语句称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:
常规字段
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>
常用字段
SELECT [要提取的字段,或是用"*"代表全部的字段]
FROM [要提取的数据来源对象,包含数据表,视图表等] -- 可搭配JOIN做连接。
WHERE [提取的查询條件] -- WHERE可有可無。
GROUP BY [要做聚合的分组字段] -- GROUP BY在使用聚合指令時必须要有。
HAVING [要做为条件的聚合字段] -- 要使用聚合函数作为条件时使用
ORDER BY [要排序的字段和方向] -- ORDER BY可有可无,若沒有则是按照查询引擎的输出顺序为主。
二、 数据操作语言(DML:Data Manipulation Language):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
insert:向表中插入数据
delete:删除表中的数据,格式:delete from tableName [where 条件]
update:修改表中的数据 格式:update tableName set colName1=value1[,colName2=value2] [where 条件]
where 条件: 对表中的数据增加条件进行限制,起到过滤的作用。
格式: where colName 关系运算符 value [or|and 条件2]
关系运算符: >,>=,<,<=, 等于:=,不等于:!= 或 <>
null值操作:比较null时,不能使用=或者!= 或者<>,而是使用 is或者is not,在select子句中,使用关系运算符
三、事务控制语言(TCL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。
COMMIT - save work done 提交
SAVEPOINT - identify a point in a transaction to which you can later roll back 保存点
ROLLBACK - restore database to original since the last COMMIT 回滚
SET TRANSACTION - Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响。
四、数据控制语言(DCL):
由 GRANT 和 REVOKE 两个指令组成。DCL以控制用户的访问权限为主,GRANT为授权语句,对应的REVOKE是撤销授权语句。
格式:
1、创建用户:create user username@ip identified by newPwd;
2、显示用户的权限:show grants for username@ip;
3、授权:grant 权限1.权限2... on 数据库名.* to username@ip;
DML权限:insert,delete,update
DQL权限:select
DDL权限:create,alter,drop...
4、撤销权限:revoke 权限1.权限2..on 数据库名.* from username@ip;
5、删除用户:drop user username;
使权限立即生效:flush privileges;
五、数据定义语言(DDL):
在数据库中 创建新表或删除表(CREAT TABLE 或 DROP TABLE),定义索引(键),规定表之间的链接,以及施加表间的约束。
CREATE - to create objects in the database 创建对象,可以用来创建用户、数据库,数据表,视图,存储过程,存储函数,触发器,索引等。
ALTER - alters the structure of the database 修改对象,负责数据库对象修改的指令。
DROP - delete objects from the database 删除对象,只需要指定要删除的数据库对象名即可。
TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed 彻底清除对象,无法找回