关系数据库标准语言SQL。。。。。

在这里插入图片描述

一.SQL的特点

1.综合统一
对于非关系模型中,语言会有分别针对外模式,模式,内模式和进行数据的存取与处置的。而且数据库投入运行时,如需要修改也会很麻烦。
对于关系模型,采用SQL,一种语言集合了多功能。即集数据定于语言,数据操纵语言,数据控制语言的功能于一体。
2.高度非过程化
非关系数据模型的数据操纵语言是面向过程的,而SQL无需了解路径,存取路径的选择以及SQL的操作过程由系统自动完成。
3.面向集合操作方式
非关系数据模型采用的是面向记录的操作方式。操作对象是一条记录。
而关系数据模型采用集合操作方式,不仅操作对象,查询结果可以是元组集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
4.以同一种语法结构提供多种使用方式
SQL语言又是独立语言又是嵌入式语言。可嵌入在c,c++,java中。
5.语言简洁,易学易用

二.SQL基本概念

在这里插入图片描述
外模式包括若干视图和基本表、
数据库模式包括若干基本表。
内模式包括若干存储文件。
用户可以利用SQL语言来对基本表和视图进行操作,基本表和视图都是关系。
基本表本身是个独立的表,关系数据库管理系统中,一个关系对应一个基本表,一个或多个基本表对应一个存储文件。一个表可以带若干个索引,索引也放在存储文件中。
存储文件构的逻辑结构组成了数据库的内模式存储文件的物理结构对用户是隐蔽的。
视图是一个或几个基本表导出来的表。它本身不独立存在数据库中。即数据库只存放视图的定义而不存放视图中的数据,这些数据只存放爱对应的基本表中,因此视图是一个虚表。用户可以在视图上建立视图

三.数据定义

数据库中的模式,外模式,内模式的基本对象有迷失,表,视图,索引。所以定义的话,是对这几个对象来的。
在SQL中,是不能修改模式和视图的。只能先产出他们再插入新的。
一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。
1.定义模式:其实是定义一个命名空间,在这个空间中再进一步定义基本表,视图,索引等。
定义模式

create schema <模式名> authorization <用户名>

删除模式

 drop shcema <模式名> <CASCADE | RESTRICT>//CASCADE是级联,删除此模式后删除与它相关依赖对象一起删除。RESTRICT若删除的模式被其他对象引用,则此模式不能删除。

2。定义表:
完整性约束条件:(1)列级:某个属性不为空等。
(2)表级:主码,外码等。参照表格被参照表可一个是同一个表。
定义基本表

 drop table <表名> [RESTRICT | CASCADE]

3.索引用来加快查询表的速度。
什么时候需要建立索引?
答:当表的数据量比较大时,查询耗时较长,建立索引可以加快查询,主键是默认建立索引的。
索引的建立只能是数据库管理员和建表的人才能建立与删除。关系数据库管理系统在执行查询时会自动选择合适的索引作为存取路径。用户不必也不能显示的选择索引。索引是关系数据库管理系统的内部实现技术,属于内模式的范畴。
建立索引:

 create index <索引名> on <表名> (<列名> [次序],<列名> [次序] ....);

修改索引:

alter index <旧索引名> rename to <新索引名>

删除索引:

 drop index <索引名>

4.数据字典
是关系数据库管理系统内部的一组系统表。记录了数据库中所有的定义信息。包括关系模式定义、视图定义、索引定义、完整性约束定各类用户对数据库的操作权限、统计信息等。关系数据库管理系统在执行SQL的数据定义语句时,实际上是在更新数据字典的相应信息加粗样式。进行查询优化和查询处理时,数据字典的信息是其重要依据。

四.数据查询

数据查询的一般格式:

select [all | distinct] <目标列表达式> [,<目标列表达式>] ...
from <表名或视图名> [,<表名或视图名>] | [(< select 语句>) as <别名>]
where <条件表达式>
[group by <列名> [HAVING 表达式]]
[order by <列名> [ASC | DESC]]
  • SELECT子句:指定要显示的属性列
  • FROM子句:指定查询对象(基本表或视图)
  • WHERE子句:指定查询条件
  • GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。
  • HAVING短语:只有满足指定条件的组才予以输出
  • ORDER BY子句:对查询结果表按指定列值的升序或降序排序

1.单表查询:

  1. “*”查询所有属性列。
  2. SELECT子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式、字符串常量、函数。例如select Sname,2014-Sage form Student
  3. LOWER(Sdept)要求小写字母表示系名。
  4. DTSTINCT消除重复行。没有这个默认ALL。
  5. 注意:where子句having短语的区别在于作用的对象不同,where子句作用在于基本表或视图,选择满足条件的元祖,having短语作用于组,选择满足条件的组。
  6. 查询条件
    详情请点击

视图的作用:

  1. 简化用户操作
  2. 使用户能以多种角度看待同一个数据
  3. 对重构数据库提供了一定程度的逻辑独立性。
  4. 能够对机密数据提供安全保护。
  5. 适当利用视图可以更清楚地表达查询。

猜你喜欢

转载自blog.csdn.net/weixin_44333359/article/details/89226168