《数据库系统概论》 -- 3.1SQL概论和DDL

3.1 SQL特点

综合统一

集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动

关系模型中实体和实体间的联系均用关系表示,数据结构的单一性带来了数据操作符的统一性

高度非过程化

存取路径的选择以及SQL的操作过程由系统自动完成,提高了数据独立性

面向集合的操作方式

relation-at-a-time

以同一种语法结构提供多种使用方式

独立的语言:可以直接命令行键入SQL命令操作

嵌入式语言:也可以嵌入到高级语言(C、C++、JAVA)程序中

语言简洁,易学易用

核心功能只用9个动词

        SQL功能               动词

        数据查询               SELECT

        数据定义               CREATE, DROP, ALTER

        数据操纵               INSERT, UPDATE, DELETE

        数据控制               GRANT, REVOKE

3.2 SQL基本概念

基本表:本身独立存在的表,一个关系对应一个基本表,一个或多个基本表对应一个存储文件

索引:一个表可以带若干索引,索引也存放在存储文件中

视图:从一个或几个基本表到处的表,数据库中存放视图的定义而不存放视图对应的数据

3.3 数据定义

  操作对象                                     操作方式

创建                                     删除                                     修改

  模式                                CREATE SCHEMA              DROP SCHEMA

  表                                    CREATE TABLE                DROP TABLE                      ALTER TABLE

  视图                                CREATE VIEW                    DROP VIEW

  索引                                CREATE INDEX                  DROP INDEX                      ALTER INDEX

  模式创建

    格式         CREATE SCHEMA [<模式名>] AUTHORIZATION <用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>]

    说明         创建模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象;

        <模式名>省略时缺省与<用户名>保持一致;

        可以在创建模式同时创建表、视图,或授权

    举例         为用户WANG定义一个学生-课程模式S-T

          CREATE SCHEMA S-T AUTHORIZATION WANG;

      为用户ZHANG创建一个TEST模式,并在其中定义一个表TAB1

          CREATE SCHEMA TEST AUTHORIZATION ZHANG

            CREATE TABLE TAB1(COL1 SMALLLINT,

                                   COL2 INT,

                                   COL3 CHAR(20),

                                   COL4 NUMERIC(10,3),

                                   COL5 DECIMAL(5,2)

                                   );

    注:附录--01.schema和database的区别

  模式删除

    格式         DROP SCHEMA <模式名> <CASCADE|RESTRICT>;

    说明         CASCADE:级联,在删除模式时,删除该模式中的所有数据库对象

        RESTRICT:限制,在删除模式时,如果模式中已经定义了数据库对象,则拒绝该删除语句的执行

    举例         级联删除TEST模式

          DROP SCHEMA TEST CASCADE;

  基本表创建

    格式         CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件]

                                  [,<列名> <数据类型> [列级完整性约束条件]...]

                                  [,<表级完整性约束条件>...]);

    说明         如果完整性约束条件涉及该表的多个属性列,则必须定义在表级上;

        否则即可以定义在列级,也可以定义在表级

        主码有多个属性构成,必须写到表级完整性约束处

    举例         CREATE TABLE Student (

                    Sno CHAR(9) PRIMARY KEY,

                    Sname CHAR(20) UNIQUE,

                    Ssex CHAR(2),

                    Sage SMALLINT,

                    Sdept CHAR(20)

                    );

      被参照表和参照表可以是同一个表

          CREATE TABLE Course (

                    Cno CHAR(4) PRIMARY KEY,

                    Cname CHAR(40) NOT NULL,

                    Cpno CHAR(4),

                    Ccredit SMALLINT,

                    FOREIGN KEY (Cpno) REFERENCES Course(Cno)

                    );

    注:附录--02.数据类型、03.模式与表

  修改基本表

    格式         ALTER TABLE <表名>

            [RENAME <新表名>]

            [ADD [COLUMN] <新列名> <新数据类型> [<新列级完整性约束>]]

            [ADD <新表级完整性约束>]

            [DROP [COLUMN] <列名> [CASCADE|RESTRICT]]

            [DROP CONSTRAINT <完整性约束名> [RESTRICT|CASCADE]]

            [ALTER COLUMN <列名> [(<新列名> <新数据类型>) | <新数据类型>]];

    说明         RENAME--修改表名

        ADD--增加新列、新的列级完整性约束条件、新的表级完整性约束条件

        DROP--删除表中的列、指定的完整性约束条件

        ALTER COLUMN--修改原有的列定义(列名、数据类型)

    举例         向Student表增加“入学时间”列,数据类型为日期型

          ALTER TABLE Student ADD Sentrance DATE;

               将Student表中年龄的数据类型由字符型改为整数型

          ALTER TABLE Student ALTER COLUMN Sage INT;

               增加Course表中课程名称必须唯一的约束条件

          ALTER TABLE Course ADD UNIQUE(Cname);

  删除基本表

    格式         DROP TABLE <表名> [RESTRICT|CASCADE];

    说明         如果选择为RESTRICT,则表不能被其他表的约束引用(如CHECK、FOREIGN KEY),不能索引,不能有视图,不能有触发器(trigger),不能有存储过程或函数;

        不同RDBMS对于RESTRICT和CASCADE的处理不同,需参考用户手册

  建立索引

    格式         CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名> [<次序>] [, <列名> [<次序>]] ...);

    说明         UNIQUE--此索引的每一个索引值只对应唯一的数据记录

        CLUSTER--要建立的索引时聚簇索引???

        索引可以建在该表的一列或多列上,每个列名后面可以用<次序>指定所引致的排列次序,ASC-升序(默认),DESC-降序

    举例         为Student表按照学号升序建立唯一索引

          CREATE UNIQUE INDEX Stusno ON Student(Sno);

               为Course表按照课程号升序建立唯一索引

          CREATE UNIQUE INDEX Coucno ON Course(Cno);

               为SC表按照学号升序,课程号降序建立唯一索引

          CREATE UNIQUE SCno ON SC(Sno, Cno DESC);

    注:附录--04.索引理解、05.数据字典

  修改索引

    格式    ALTER INDEX <旧索引名> RENAME TO <新索引名>;

  删除索引

    格式         DROP INDEX <索引名>;

    说明         删除索引时,会同时从数据字典中删去有关该索引的描述

附:

  01.schema和database的区别

    schema是一个名字空间,创建在某个database下的;一个database下可以包含多个schema。

    schema的好处有三点:

      1.多个用户使用同一个数据库而不会相互影响。

      2.对数据库中的对象进行逻辑分组,更便于管理。

      3.各个应用分别使用各自的模式,以避免命名冲突。

    各个数据库产品的database和schema定义不尽相同,需具体情况具体分析

  02.数据类型(不同关系数据库管理系统的数据类型不尽相同)

    数据类型                               含义

    CHAR(n)/         同CHARACTER(n)

    CHARACTER(n)                   长度为n的定长字符串

    VARCHAR(n)/       同CHARACTERVARYING(n)

    CHARACTERVARYING(n)    最大长度为n的变长字符串

    CLOB                                    字符串大对象

    BLOB                                    二进制大对象

    INT/           同INTEGER

    INTEGER                              长整数(4字节)

    SMALLINT                            短整数(2字节)

    BIGINT                                 大整数(8字节)

    NUMERIC(p,d)                     定点数,小数点前有p位(不包括小数点、符号),小数点后有d位

    DECIMAL(p,d)/      同DEC(p,d)

    DEC(p,d)                              同NUMERIC

    REAL                                    取决于机器精度的单精度浮点数

    DOUBLE PERCISION           取决于机器精度的双精度浮点数

    FLOAT(n)                             可选精度的浮点数,精度至少为n位数字

    BOOLEAN                            逻辑布尔值

    DATE                                    日期,包含年、月、日,格式为YYYY-MM-DD

    TIME                                     时间,包含时、分、秒,格式为HH:MM:SS

    TIMESTAMP                         时间戳类型

    INTERVAL                            时间间隔类型

  03.模式与表

         每一个基本表都属于某一个模式,当定义基本表时有三个方法定义它所属的模式

                CREATE TABLE "S-T".Student(...);

                创建模式同时创建表

                设置所属的模式

                       1.创建数据库对象时没有指定所属模式,会根据搜索路径来确定该对象所属的模式;

                       2.搜索路径包含一组模式列表,第一个存在的模式会被用来作为数据库对象所属模式;

                       3.通过show search_path;查看当前搜索路径;

                       4.DBA可通过SET search_path TO "S-T", PUBLIC;设置当前搜索路径

  04.索引理解

         用户可以根据应用环境的需要在基本表上建立一个或多个索引,以提供多种存储路径,加快查找速度

         索引分类

                顺序文件上的索引:

                       针对按指定属性值升序或降序存储的关系,在该属性上建立一个顺序索引文件

                       索引文件由属性值和相应的元组指针组成。

                B+树索引:

                       将索引属性组织成B+树的形式,

                       B+树的叶节点为属性值和相应的元组指针。

                       优点:动态平衡

                散列索引:

                       建立若干个桶,将索引属性按照其散列函数值映射到相应桶中

                       桶中存放索引属性值和相应的元组指针

                       优点:查找速度快

                位图索引:

                       用位向量记录索引属性中可能出现的值,每个位向量对应一个可能值

         不同RDBMS支持的索引类型不同。

         索引应该由DBA或表的owner来创建和维护。

         用户不能显示选择索引。索引是RDBMS的内部实现技术,属于内模式

  05.数据字典

         数据字典是RDBMS内部的一组系统表

         记录了数据库中所有定义信息,包括关系模式定义、视图定义、索引定义、完整性约束定义、各类用户对数据库的操作权限、一些统计信息等

         执行DDL,实际就是更新数据字典表中的对应信息

         根据数据字典中的信息进行查询优化和查询处理

时间: 2024-11-03 22:20:40

《数据库系统概论》 -- 3.1SQL概论和DDL的相关文章

《数据库系统概论》--目录

<数据库系统概论>  第5版 <数据库系统概论>--1.绪论 <数据库系统概论>--2.关系操作 <数据库系统概论> -- 3.1SQL概论和DDL

SQL语言简介

什么是SQL语言? 是高级非过程化语言(是沟通数据库服务器和客户端的工具) 作用:存取,查询,更新和管理关系数据库系统 SQL语言分类: 1.DDL:数据定义语言 作用:定义和管理数据当中的各种对象 2.DML:数据操作语言 作用:操作数据库对象中的数据 3.DCL:数据控制语言 作用:对象操作权限的控制 4.TCL:事务控制语言 T-SQL:微软SQL Server PL/SQL:Oracle

主持人如何练发声?

播音专业:表演,声乐,节目主持人概论,新闻写作,普通话水平测度,化妆学,主持人能力培训,篮球,电视前辑,视听语言.播音主持概论.新闻学概论.传播学概论:3.专业基础课,包括普通话语音.发声基础.语言表达能力.如果所学为配音专业.双语播音专业等,还会开设相应的配音课程.新闻英语听力.英语口语表达等.4.实践课,以播音实践为主,包括影视化妆.形体课.各类主持课程.表演课程.播音导论.播音发声学.播音技巧.主持艺术.礼仪形体学.艺术概论.新闻概论.大众传播学.节目策划.表演.声乐.电视导播.中国传媒大

C程序设计笔记

?C程序设计笔记.wiz-todo, .wiz-todo-img {width: 16px; height: 16px; cursor: default; padding: 0 10px 0 2px; vertical-align: -10%;-webkit-user-select: none;} .wiz-todo-label { display: inline-block; padding-top: 8px; padding-bottom: 8px; line-height: 1;} .wi

【操作系统】总结

概论(Operating system) '>概论(Operating system) 1.操作系统的定义.特征.功能 '>1.操作系统的定义.特征.功能 操作系统定义: ">操作系统定义: 是系统软件, 是程序模块集合 组织和管理计算机软硬件资源 合理组织计算机的工作流程 控制程序执行 向用户提供服务,使用户能够灵活.方便.有效的使用计算机 使整个计算机系统能高效地运行 '> 是系统软件, 是程序模块集合 组织和管理计算机软硬件资源 合理组织计算机的工作流程 控制程序执

软件工程网络15个人阅读作业2(201521123049 杨泽斌)

提出问题 快速通读教材<构建之法>,并参照提问模板,提出5个问题. 如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及在互联网时代如何提问题. 还有这些要点: ?在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文 ?列出一些事例或资料,支持你的提问. ?说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接

数据库系统概论学习笔记(一)

时间:第一周     年级:大三    学生:南通大学网络工程何季生 2017.9.14 一.绪论 1.1数据库系统概述 1.数据 描述事物的符号记录称为数据.数据的含义称为数据的语义,数据与其语义是不可分的.例如93是一个数据,他可以是一位同学的成绩,也可以是他的体重,还可能是一个班的人数. 2.数据库 数据库顾名思义就是存放数据的仓库.严格来讲,数据是长期储存在计算机内,有组织的,可共享的大量数据的集合.数据库中的数据按一定的数据模型组织.描述和储存,具有较小的亢余度(redundancy)

数据库系统概论(第四版)习题解答

数据库系统概论(第四版) 第1章 绪论 1 .试述数据.数据库.数据库系统.数据库管理系统的概念. 答:( l )数据( Data ) :描述事物的符号记录称为数据.数据的种类有数字.文字.图形.图像.声音.正文等.数据与其语义是不可分的.解析在现代计算机系统中数据的概念是广义的.早期的计算机系统主要用于科学计算,处理的数据是整数.实数.浮点数等传统数学中的数据.现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂.数据与其语义是不可分的. 500 这个数字可以表示一件物品的价格

数据库系统概论学习笔记-第一章绪论

数据库系统概论-第一章绪论 写在前面:寒假来临,除却走亲戚和同学聚餐,王者荣耀等游戏上分花销一点时间之外,自认为要花一点时间学习数据库和Android,以此来为下学期和共建项目打下一丢丢的基础.为了鞭策自己,定了一个小目标( 一个亿),每个两至三天我会发表一篇数据库或Android学习笔记.还是那句话你的才华撑不住你的野心时,那就静下来学习吧 . 数据库系统概述 数据库常用的术语和基本概念 数据库基本概念 数据(Data) 数据是数据库中存储的基本对象,可以对数据做如下定义:描述事物的符号记录称