SQL语言概述与SQL语言的数据定义
前言
本文主要讲解了SQL语言的概述性内容,以及SQL语言中的一些语法定义和数据格式的定义。
一、SQL概述 1.SQL语言的产生和发展
1972年,IBM公司开始研制实验型关系数据库管理系统
文章目录 前言 本文主要讲解了SQL语言的概述性内容,以及SQL语言中的一些语法定义和数据格式的定义。 一、SQL概述 1.SQL语言的产生和发展 1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEM R,其配备的查询语言称为SQUARE(Specifying Queries As Relational Expression )语言,语言中使用了较多的数学符号。 1974年,Boyce和Chamberlin把SQUARE修改为SEQUEL (Structured English Query Language )语言。后来SEQUEL简称为SQL(Structured Query Language ),即“结构式查询语言”,SQL的发音仍“sequel”。现在SQL已经成为一个标准 。 2.SQL语言支持关系数据库的三级模式 用户用SQL语言对基本表和视图进行操作 (1)基本表 1.本身独立存在的表, 一个关系对应一个表。(在关系型数据库中,表往往被称作“关系”) 2.一个(或多个)基本表对应一个存储文件。 3.一个表可以带若干索引, 索引也存放在存储文件中。 (2)存储文件 1.存储文件的逻辑结构组成了关系数据库的内模式 2.存储文件的物理结构是任意的, 对用户是透明的。 (3)视图 1.从一个或几个基本表或视图导出的表 2.是虚表, 只存放视图的定义而不存放对应数据 3.SQL语言的特点 (1)综合统一 1.SQL语言包含数据定义语言(DDL,data definition language),数据操纵语言(DML,data manipulation language),数据控制语言(DCL, Data Control Language )功能于一体。 2.可以独立完成数据库生命周期中的全部活动:
3.用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据库的运行。 4.数据操作符统一 (2)非过程语言 对于使用SQL语言来说,使用者只要提出“做什么”,无须了解存取路径,也不需要了解数据如何进行存取。存取路径的选择以及SQL的操作过程由系统自动完成。 (3)面向集合 SQL采用集合操作方式:
(4)以同一种语法结构提供多种使用方式 SQL是独立的语言,能够独立地用于联机交互的使用方式 SQL又是嵌入式语言,SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用 4.SQL的语法概貌 (1)SQL的核心动词 SQL功能 操作符 数据查询 SELECT 数据定义 CREATE,ALTER,DROP 数据操作 INSERT,UPDATE,DELETE 数据控制 GRANT,REVOKE (2)SQL语言编写规则
二、数据定义 SQL的数据定义功能包括数据库定义、表定义、视图和索引的定义。 操作对象 创建 删除 修改 数据库 CREATE DATABASE DROP DATABASE 表 CREATE TABLE DROP TABLE ALTER TABLE 索引 CREATE INDEX DROP INDEX 视图 CREATE VIEW DROP VIEW 1.模式 (1)模式的概念 指一系列逻辑数据结构或对象的集合 (2)模式的相关规则 1.模式与用户相对应,一个模式只能被一个数据库用户所拥有,并且模式的名称与这个用户的名称相同。 2.通常情况下,用户所创建数据库对象都保存在与自己同名的模式中。 3.同一模式中数据库对象的名称必须惟一,而在不同模式中的数据库对象可以同名。 4.默认情况下,用户引用的对象是与自己同名模式中的对象,如果要引用其他模式中的对象,需要在该对象名之前指明对象所属模式。 (3)定义模式 例子1:
为用户WANG定义一个学生-课程模式“S-T” 例子2:
例2没有指定模式名,此时模式名默认为用户名。 定义模式实际上定义了一个命名空间。,在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。 在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句. 创建模式的标准语法规则为:
例子3:
为用户ZHANG创建了一个模式TEST,并且在其中定义一个表TAB1 (表的定义将在下文描述) (4)删除模式 删除模式的标准语法规则为:
1.CASCADE(级联) 删除模式的同时把该模式中所有的数据库对象全部删除 2.RESTRICT(限制) 如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。 仅当该模式中没有任何下属的对象时才能执行。 2.数据类型(域) 一个属性选用哪种数据类型要根据实际情况来决定,一般要从两个方面来考虑:
3.基本表 (1)定义基本表 命名规则和约定(表和列名):
一般格式为:
例子1:
(2)修改基本表 修改基本表的一般格式:
其中
例子1:
向ROOM_INFORMATION中,增加一列房间属性字段,其数据类型为varchr2(10) 例子2:
新加的房间属性字段,其varchar(10)不够存储当前值,需扩大为varchar2(20) 注意: 无论基本表中原来是否已有数据,新增加的列一律为空值。 修改原有的列定义有可能会破坏已有数据。 (3)删除基本表 一般格式为;
1.缺省情况是RESTRICT。 2.若选择RESTRICT:则该表的删除是有限制条件的。 欲删除的基本表不能被其他表的约束所引用(如CHECK,FOREIGN KEY等约束),不能有视图,不能有触发器(trigger),不能有存储过程或函数等。如果存在这些依赖该表的对象,则此表不能被删除。 3.若选择CASCADE:则该表的删除没有限制条件。在删除基本表的同时,相关的依赖对象,例如视图,都将被一起删除。 4.索引 索引:包含键(表或视图中的一个或多个列所生成),以及指针(映射到数据的存储位置的指针) (1)索引的规则 1.索引的创建和维护由DBA和DBMS完成 2.是否创建索引取决于表的数据量大小和对查询的要求 3.一个基本表,不要建过多索引 (2)避免使用索引的情形
(3)建立索引 一般格式为:
1.索引可以建立在该表的一列或多列上mssql 使用视图,各列名之间用逗号分隔。每个 后面还可以用指定索引值的排列次序,可选ASC(升序,默认是升序)或DESC(降序)。 2.UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。 3.CLUSTERED表示要建立的索引是聚簇索引,所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。 (4)删除索引 一般格式:
5.视图 (1)建立视图 一般格式;
注意: (2)删除视图 一般格式:
视图删除后,视图的定义将从数据字典中被删除。如果该视图上还导出了其他视图,则使用CASCADE级联删除语句,就可以把该视图和由它导出的所有视图一起删除。 基本表删除后,由该基本表导出的所有视图(定义)没有被删除,但均已无法使用了。删除这些视图(定义)需要使用DROP VIEW语句。 (3)更新视图 1.是指通过视图来插入、删除和修改数据。 2.因视图是虚表,故对视图的更新,最终要转化为对基本表的更新。 3.为防止用户通过视图进行更新数据,有意或无意对不属于视图范围内的基本表数据进行操作,可在定义视图时加上[WITH CHECK OPTION]子句。 不允许对视图进行数据更新的操作:
总结 文章不妥之处请读者包容指正。 对于数据库基本概念有疑问的读者可以参考: 1.关系型数据库(二)—关系代数 2.关系型数据库(一)—关系数据模型与关系 3.数据库系统概述 (编辑:源码门户网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |