SQL语句有哪些常见的分类

0    291    1

Tags:

👉 本文共约3719个字,系统预计阅读时间或需14分钟。

目录

    SQL(Structure Query Language,结构化查询语言)是一种在关系型数据库中定义和操纵数据的标准语言。关系型数据库采用SQL作为客户端程序与数据库服务器间沟通的标准接口。客户端发送SQL指令到服务器端,服务器端执行相关的指令并返回其查询的结果。在数据库服务器端执行的SQL指令可以实现各种数据库操作和管理功能,例如:数据的查询和更新(包括添加、修改和删除数据)操作;创建、修改和删除各种数据库对象(如数据表、视图、索引等);数据库用户账户管理、权限管理等。

    关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。下表给出了所有SQL语句的分类情况:

    分类简介示例
    DML数据操纵语言(Data Manipulation Language,DML):用于改变数据库数据,包括插入新数据的INSERT;删除不需要数据的DELETE;修改存在的数据的UPDATE;合并新旧数据的MERGE。数据更新包括数据的插入、修改和删除等操作,数据更新操作具有一定的风险性,在其执行过程中,DBMS必须保证数据的一致性,以确保数据有效。UPDATEINSERTDELETEMERGESELECT ... FOR UPDATE
    DDL数据定义语言(Data Definition Language,DDL):用于建立、修改和删除数据库对象,作用就是定义数据的格式和形态。例如CREATE TABLE可以建立表,ALTER TABLE语句则可对表结构进行修改,DROP TABLE语句用来删除某个表,TRUNCATE命令用来删除数据内容,需要注意的是,DDL语句会自动提交事务。在建立数据库时用户首先要使用的就是DDL语句。CREATE TABLE/INDEXALTER TABLE/INDEXDROP TABLE/INDEXTRUNCATE TABLE
    DCL数据控制语言(Data Control Language,DCL):用于执行权限授予和权限收回操作,包括GRANT和REVOKE两条命令。其中,GRANT命令是给用户或者角色授予权限,REVOKE命令则是收回用户或角色所具有的权限。DCL语句会自动提交事务,在应用开发层面很少用到。GRANTREVOKE
    DQL数据查询语言(Data Query Language,DQL):即SELECT语句,用于用户检索数据库数据。在所有SQL语句中,SELECT语句的功能和语法最复杂,最灵活。SELECT
    TCL事务控制语言(Transactional Control Language,TCL):用于维护数据的一致性,包括COMMIT、ROLLBACK、SAVEPOINT等语句。其中,COMMIT语句用于确认和提交已经进行的数据库改变;ROLLBACK用于撤销已经进行的数据库改变;SAVEPOINT语句则用于设置保存点,以取消部分数据库改变,ROLLBACK命令会结束一个事务,但ROLLBACK TO SAVEPOINT不会;SET TRANSACTION设定一个事务的属性(例如,事务的隔离级别);SET CONSTRAINT指定是在每个DML语句之后、还是在事务提交后,执行可延迟完整性约束检查。COMMIT是COMMIT WORK的简写,ROLLBACK是ROLLBACK WORK的简写。COMMITROLLBACKSAVEPOINTROLLBACK TO SAVEPOINTSET TRANSACTIONSET CONSTRAINT
    SCS会话控制语句(Session Control Statement,SCS):用于动态修改当前用户会话的属性,在应用开发层面极少用到。“ALTER SESSION”用于改变当前会话设置。“SET ROLE”用于启用或禁用角色。系统控制语句(System Control Statement,SCS):用于更改数据库实例的属性。唯一的系统控制语句是ALTER SYSTEM。它能更改系统设置,例如,共享服务器的最小数目、终止一个会话、和执行其他系统级任务。ALTER SYSTEM语句不会隐式提交当前事务。ALTER SESSIONSET ROLEALTER SYSTEM
    ESS嵌入式SQL语句(Embedded SQL Statements,ESS):用于将DDL、DML、和事务控制语句混入过程化语言程序中。它们和Oracle预编译器一起使用。嵌入式的SQL是一种在过程化语言应用程序中纳入SQL的方法。另一种方法是使用一个程序API,如ODBC(Open Database Connectivity,开放式数据库连接)或JDBC(Java Database Connectivity,Java数据库连接)。嵌入式SQL语句主要包含以下几种:l 定义、分配、和释放游标(DECLARE CURSOR、OPEN、CLOSE)l 指定一个数据库,并连接到该数据库(DECLARE DATABASE、CONNECT)l 初始化描述符(DESCRIBE)l 指定如何处理错误和警告(WHENEVER)l 分析并运行SQL语句(PREPARE、EXECUTE、EXECUTE IMMEDIATE)l 从数据库中检索数据(FETCH)OPENCLOSECONNECTDESCRIBEWHENEVERPREPAREEXECUTEFETCH

    其中,TCL、SCS和ESS主要是针对Oracle数据库的分类,而DML、DDL、DCL、DQL是通用的分类。

    真题1、如果有两个事务,同时对数据库中同一数据进行操作,那么不会引起冲突的操作是()

    A、其中有一个是DELETE B、一个是SELECT,另一个是UPDATE

    C、两个都是SELECT D、两个都是UPDATE

    答案:C。

    如果有两个事务,同时对数据库中同一数据进行操作,那么除SELECT外,其余SQL语句不能同时使用,否则会引起冲突。

    本题中,对于选项A,若两个操作都是DELETE操作,则其中一个会话就会发生阻塞。所以,选项A错误。

    对于选项B,若SELECT的数据恰好是UPDATE的数据,则查询到的数据就会不一致。所以,选项B错误。

    对于选项C,2个SELECT语句不会引起冲突。所以,选项C正确。

    对于选项D,原理同选项A的DELETE。所以,选项D错误。

    所以,本题的答案为C。

    真题2、SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATE实现()功能

    A、数据查询 B、数据控制 C、数据定义 D、数据操纵

    答案:D。

    真题3、下列说法错误的是()

    A、ALTER TABLE语句可以添加字段 B、ALTER TABLE 语句可以删除字段

    C、UPDATE TABLE语句可以修改字段名称 D、ALTER TABLE语句可以修改字段数据类型

    答案:C。

    在表中添加列的方法如下:

    删除表中的列的方法如下:

    改变表中列的数据类型的方法如下:

    而UPDATE语句只能更改表中的数据,不能用来更改表的结构。

    所以,本题的答案为C。

    真题4、SQL语言中删除一个表的指令是()

    A、DROP TABLE B、DELETE TABLE C、DESTROY TABLE D、REMOVE TABLE

    答案:A。

    本题中,对于选项A,在SQL语言中,DROP命令用于删除表定义及该表的所有数据、索引、触发器、约束和权限规范,所以,选项A正确。

    对于选项B,DELETE命令的作用是删除表中的数据。TRUNCATE TABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行,但TRUNCATE比DELETE速度快,且使用的系统和事务日志资源少。所以,选项B不正确。

    对于选项C与选项D,不存在DESTORY、REMOVE命令。所以,选项C和选项D不正确。

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
    AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
    验证码:
    获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复