一、SQL概述

关系数据库标准语言SQL(结构化查询语言)。
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

SQL语言的精巧:仅有9个命令动词,后扩充至10个。

二、SQL语言的特点

1.综合统一

集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
可以独立完成数据库生命周期中的全部活动:

  • 定义关系模式,插入数据,建立数据库;
  • 对数据库中的数据进行查询和更新;
  • 数据库重构和维护
  • 数据库安全性、完整性控制等

用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。
数据操作符统一

2.高度非过程化
  1. 非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径
  2. SQL只要提出“做什么”,无须了解存取路径。
  3. 存取路径的选择以及SQL的操作过程由系统自动完成。
3.面向集合的操作方式
  1. 非关系数据模型采用面向记录的操作方式,操作对象是一条记录
  2. SQL采用集合操作方式:
    ① 操作对象、查找结果可以是元组的集合
    ②一次插入、删除、更新操作的对象可以是元组的集合
4.以同一种语法结构提供多种使用方式
  1. SQL是独立的语言
    能够独立地用于联机交互的使用方式
  2. SQL又是嵌入式语言
    SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用
5.语言简单,易学易用

语言简洁,易学易用。尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。

SQL语言的动词

SQL 功 能 动 词
数 据 查 询 SELECT
数 据 定 义 CREATE,DROP,ALTER
数 据 操 纵 INSERT,UPDATE,DELETE

数 据 控 制 | GRANT,REVOKE

三、SQL语言基本概念

1.SQL支持关系数据库三级模式结构

2.结构化查询语言包含6个部分:
  1. 数据查询语言(DQL:Data Query Language):
    其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
  2. 数据操作语言(DML:Data Manipulation Language):
    其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
  3. 事务控制语言(TCL):
    它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  4. 数据控制语言(DCL):
    它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问
  5. 数据定义语言(DDL):
    其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。
  6. 指针控制语言(CCL):
    它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

3.数据库中常用的概念
  1. 模式:
    基本表的集合定义为SQL模式。一个SQL模式(即"数据库模式")由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。
  2. 索引
  3. 视图

视图与表的异同:

  1. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。
  2. 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
  3. 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

视图可以在以下几个方面使程序与数据独立:

  1. 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。
  2. 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。
  3. 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。
  4. 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。

这里还有数据库相关的优质文章:快戳我,快戳我

关于SQL语言,这些你不得不了解!相关推荐

  1. SQL语言的事务机制_转摘

    什么是数据库事务 数据库事务是指作为单个逻辑工作单元执行的一系列操作. 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作: · 更新客户所购商品的库存信息 · 保存客户付款信息--可能 ...

  2. 【转】SQL语言艺术

    SQL 语言艺术 内容介绍 本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明.这些例 子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你 ...

  3. Oracle PL/SQL语言初级教程(自学)

    Oracle PL/SQL语言初级教程 PL/SQL 语言基础 PL/SQL 是一种高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令. 通过使用 PL/SQL 程序 ...

  4. oracle中select #39;1#39; as,用SQL语言治理Oracle数据库

    用SQL语言管理Oracle数据库 1,查看数据库的基本属性: SELECT dbid 数据库编号,name 数据库名称,db_unique_name 全局名称,created 创建时间,log_mo ...

  5. 实验四 数据库SQL语言基础编程

    -- 实验四 数据库SQL语言基础编程 -- 实验目的: --  掌握数据库查询语句的编写方法 --  掌握利用查询语言完成基本查询 --  掌握利用SQL语句完成数据的添加.删除.修改操作 -- 实 ...

  6. PL/SQL语言基础

    PL/SQL语言基础 /********************************数据类型*************************************/ %rowtype  (行对 ...

  7. 【DataBase】【SQL语言】【第三天】

    为什么80%的码农都做不了架构师?>>>    贡献作者 -[XJDomain] 博客XJ:  https://my.oschina.net/shengbingli/blog Git ...

  8. 关于SQL语言的初步认识

    关于SQL语言的初步认识 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义. 2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项. 3.一个表或者是一 ...

  9. mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf

    实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...

最新文章

  1. 5.3.1计算机网络传输层之TCP可靠传输
  2. t分布 u分布 卡方分布_中心极限定理|z分布|t分布|卡方分布
  3. 医疗项目 开源_医疗保健受开源影响最大的行业之一
  4. 索尼Xperia 5 II新品全球发布会官宣:9月19日11点见!
  5. 字典添加数据_【Python基础学习】4. 数据类型之字典及其操作
  6. 完美解决:Could not open the editor: Editor could not be initialized
  7. js判断字符在另一个字符串中出现次数
  8. 华为ICT题目-云服务题库1
  9. 网页实现数据库表信息的CRUD操作
  10. 返乡报备小程序开发制作功能介绍
  11. 笔记本电脑连接无线局域网怎么设置?
  12. ExcelVBA之InputBox方法
  13. MFC 执行顺序总结
  14. (四)航空发动机强度与振动复习纲要
  15. ★为什么不要和“穷人”做朋友?
  16. 抗乙型肝炎表面抗原(HBsAg)抗体偶联镉硒(CdSe)量子点|羧基水溶性量子点(PEG)标记EBNA1抗原
  17. Go语言头秃之路(五)
  18. UPC1430 Color a Tree(贪心)
  19. 用队列实现的猫抓老鼠游戏
  20. cpu(了解了以下8条,没人敢和你忽悠CPU)

热门文章

  1. linux之V4L2摄像头应用流程
  2. Android开发之AlertDialog设置左右边距的间接办法
  3. picker封装 uniapp_uniapp自定义picker城市多级联动组件
  4. python项目实战:绘制一朵漂亮的玫瑰花
  5. 基于mcp940反编译Minecraft源代码
  6. 三十四 操作文件和目录
  7. ie的严苛,firefox的宽容
  8. Exchange性能调优(上)
  9. PHP连接MySQL报错:Fatal error: Call to undefined function mysql_connect()之解决方法
  10. lua ue_slua unreal分析(二)LuaActor与lua表互访