数据库SQL语言Word文件下载.docx

上传人:b****5 文档编号:18619500 上传时间:2022-12-29 格式:DOCX 页数:16 大小:26.20KB
下载 相关 举报
数据库SQL语言Word文件下载.docx_第1页
第1页 / 共16页
数据库SQL语言Word文件下载.docx_第2页
第2页 / 共16页
数据库SQL语言Word文件下载.docx_第3页
第3页 / 共16页
数据库SQL语言Word文件下载.docx_第4页
第4页 / 共16页
数据库SQL语言Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据库SQL语言Word文件下载.docx

《数据库SQL语言Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库SQL语言Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

数据库SQL语言Word文件下载.docx

b)关系模式:

在SQL中称为基本表(BaseTable)

c)存储模式:

在SQL中称为存储文件(StoredFile)

5、SQL数据库的体系结构要点

a)一个SQL模式是表和约束的集合

b)一个表由行集构成,一行是一个列的序列,每列对应一个数据项;

c)表有三种类型,基本表、视图和导出表;

i.基本表是实际存储在数据库中的表;

ii.视图是由若干基本表或其他视图构成的表的定义;

iii.导出表示执行了查询时产生的表。

d)一个基本表可以跨一个或多个存储文件,一个存储文件可以存放一个或多个基本表;

e)用户可以用SQL语句对基本表和视图进行查询等操作;

f)SQL用户可以是应用程序,也可以是终端用户。

6、核心SQL的组成

a)数据定义语言:

即SQLDDL,用于定义SQL模式、基本表、视图、索引等结构;

b)数据操纵语言:

即SQLDML,用于查询、插入、删除和修改等操作;

c)嵌入式SQL语言的使用规定:

嵌入在主语言中使用;

d)数据控制语言:

即SQLDCL,用于基本表和视图的授权、完整性规则的描述、事务控制等。

7、SQL的特点

a)SQL具有十分灵活和强大的查询功能;

b)SQL不是一个应用开发语言,它只提供对数据库的操作功能,不能完成屏幕控制、菜单管理、报表生成等功能,可以作为交互式语言用,也可以嵌入在主语言中使用,是开发语言的一部分;

c)SQL是国际标准语言,有利于各种数据库之间交换数据、程序移植、实现数据独立性和标准化;

d)SQL的词汇不多,完成核心功能只用了9个英语单词,语法结构接近英语。

8、SQL的分类

a)交互式SQL:

在终端交互方式下使用的语言,称为交互式SQL;

b)嵌入式SQL:

嵌入在主语言的程序中使用,称为嵌入式SQL。

数据库SQL语言之SQL的数据定义语言

(二)

一次跟我一哥们去肯德基点了两杯可乐坐着聊天。

旁边一妹纸吃了汉堡留了一袋薯条和一个鸡腿人就走了。

我俩就觉得浪费啊!

这么好的东西!

激烈思想斗争后,于是决定拿过来吃。

他啃着鸡腿,我正在往土豆条上挤番茄酱。

妹纸拿着杯可乐就上来了。

SQL的数据定义语言(DataDefinitionLanguage,DDL),用于定义SQL模式、基本表、视图、索引等结构。

1、模式(Schema)

a)定义:

在SQL中,一个SQL模式定义为基本表的集合,一个SQL模式由模式名和模式拥有者的用户名或账号确定,并包含模式中每一个元素(基本表、视图、索引等)的定义,。

b)创建语法:

创建SQL模式,就是定义了一个存储空间

CreateSchema<

模式名>

Authorization<

用户名>

c)撤销语法:

当SQL模式及其下属的基本表、视图等元素都不需要时,可以撤销

DropSchema<

[Cascade|Restrict]

Cascade:

执行Drop时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤销;

Restrict:

执行Drop时,只有当SQL模式中没有任何下属元素时才能撤销SQL模式,否则拒绝执行该语句。

d)注意:

由于SQL模式这个名词学术味太重,因此DBMS厂家都用“数据库”这个名词来代替“SQL模式”这个名词,创建SQL模式就是创建数据库。

使用CreateDatabase<

数据库名>

和DropDatabase<

2、基本表(Table)

如果在系统中创建了一个数据库,那么就可以再数据库中定义基本表

创建一张基本表,创好以后只是一个空框架,可以用Insert命令加数据

Createtable<

基本表名>

(<

列名类型notnull>

……

<

primarykey(列名)>

foreignkey(列名)references表名(列名)>

check(列名)between20and35>

……);

c)修改语法:

基本表建立一段时期后,可以根据实际情况对基本结构进行修改

i.增加新的列

Altertable<

add<

列名>

类型>

ii.删除原有的列

drop<

[Cascade|Restrict];

iii.修改数据类型、宽度等

modify<

d)撤销语法:

当基本表不需要时,可以撤销,撤销后,其所有数据也丢失了

Droptable<

3、索引(Index)

为了加快查询速度而建立的,建立后由系统自动维护。

为了更快地查询,可以创建索引

Create[unique]index<

索引名>

on<

(<

列名序列[ASC|DESC]>

);

当索引不需要时,可以撤销索引

Dropindex<

4、视图(View)

SQL中,外模式的基本单位是视图,视图是从若干基本表和其他视图构造出来的表,创建一个视图,只是把视图的定义放到数据字典中,而不存储视图对应的数据,在用户需要时,才去求对应的数据,因此称为“虚表”

需要视图时,可以创建

Createview<

视图名>

列表序列>

)as<

select查询语句>

如果视图是从单个基本表只使用选择、投影操作导出的,并且包含了基本表的主键,这样的视图称为“行列子集视图”,是可以执行修改操作的,必须在视图定义的时候加上withcheckoption短语。

定义在多个基本表上的视图,或者使用聚合操作的视图,或者不包含主键的视图是不允许更新的。

Insertinto<

values(<

值>

…);

不需要时,可以撤销

Dropview<

5、域类型:

SQL提供的主要数据类型

a)分类:

i.数值型:

长整数int,短整数smallint,浮点数real,双精度浮点数doubleprecision,浮点数float(n),定点数numeric(p,d)

ii.字符串型:

定长字符串char(n),变长字符串varchar(n)

iii.位串型:

二进制位串bit(n),变长二进制位串bitvarying(n)

iv.时间型:

日期date,时间time

允许用户定义新的域,可以创建

CreateDomain<

域名>

基本数据类型>

该新的域不需要时,可以撤销

DropDomain<

数据库SQL语言之SQL的数据操作语言(三)

MM和男友吵架了,她气的摔门跑了出去。

男友连忙跟出去,MM刚跑出门,就遇到一辆大货车!

MM一时紧张,闭着眼睛!

男友毫不犹豫的上前抱住了她,并把她推开!

开车的司机探出头来:

“还好我是倒车,要不真让你上头条了。

数据操纵语言(DataManipulationLanguage,DML),分数据查询和数据更新两类,数据更新又分插入、删除和修改三种操作。

1、插入(Insert)

在SQL基本表中插入数据的语句是insert语句

b)插入语法1—单行的插入

[(<

列名序列>

)]Values(<

行值>

c)插入语法2—多行的插入

),(<

)…;

d)插入语法3—查询结果的插入

[(<

)]<

e)插入语法4—表的插入

基本表名1>

)]table<

基本表名2>

2、删除(Delete)

当元组不需要的时候,可以从基本表中删除;

delete语句只能从一个基本表中删除元组,若要删除多个表中的数据,请写多条数据。

b)删除语法:

Deletefrom<

[where<

条件表达式>

]

3、修改(Update)

当需要修改基本表中元组的某些列值时,可以使用update

b)修改语法

Update<

set<

=<

值表达式>

>

|row=(<

元组>

)[where<

];

4、查询(Select)

数据查询是关系运算理论在SQL中的主要体现,需要查询基本表中的数据时候,用select语句

b)

c)基本语法:

Select<

目标表的列名或列表达式>

From<

基本表名或视图名>

Where<

行条件表达式>

d)查询语句的三种写法

i.连接查询select*from*where条件表达式1and条件表达式2

ii.嵌套查询select*from*whereselect*

iii.带存在量词的嵌套查询select*from*where量词select*

e)完整语法:

Select<

目标表的列名或列表达式序列>

基本表名和视图序列>

[where<

]//行条件子句

[groupby<

]//分组子句

[having<

组条件表达式>

]//组条件子句

[orderby<

列名[asc|desc]>

]//排序子句

具体操作步骤解释:

读取from子句中基本表、视图的数据,执行笛卡尔积操作;

选取满足where子句中给出的条件表达式的元组;

按group子句中指定列的值分组,同时提取满足having子句中组条件表达式的那些组;

按select子句中给出的列名或列表达式求值输出;

Order子句对输出的目标进行排序,asc升序,desc降序;

f)Where子句中的条件表达式

5、数据查询中的限定和规定

a)可以使用聚合函数:

i.求某一列值的平均值avg(<

ii.求某一列值的最小值min(<

iii.求某一列值的最大值max(<

iv.求某一列值的总和sum(<

v.对一列中的值计算个数count(<

vi.计算元组的个数count(*);

b)Select子句的规定:

select[all|distinct]<

列名或列表达式序列>

|*

i.Distinct选项保证重复的行将从结果中去除

ii.all是默认的,保证重复的行不从结果中去除;

iii.*号是对于from子句中命名表的所有列的简写;

iv.列表达式是对于单列求聚合值的表达式;

v.允许表达式中出现+、-、*、/以及列名、常数的算术表达式。

c)列和基本表的改名操作:

旧名as新名

i.有时,一个基本表在select语句中多次出现,就是该表被多次调用,为区别不同的引用,应该标上不同的名字。

d)集合的并、交、差操作:

当两个子查询结构完全一致,可以使用并、交、差

i.(select查询语句1)union(select查询语句2)

ii.(select查询语句1)intersect(select查询语句2)

iii.(select查询语句1)except(select查询语句2)

6、基本表的连接操作语法

a)自连接:

一个表可以连接自身,自连接要求使用表的别名

select*from<

基本表>

as<

innerjoin/leftouterjoin/rightouterjoin/full

outerjoin<

.<

b)内连接:

消除交叉连接中不满足内连接匹配条件的记录形成的

innerjoin<

c)左外连接:

包含内连接的所有记录,以及左表中所有未匹配记录

leftouterjoin<

d)右外连接:

包含内连接的所有记录,以及右表中所有未匹配记录

rightouterjoin<

e)完全外连接:

包含内连接的所有记录,以及左、右表中所有未匹配记录

fullouterjoin<

f)笛卡尔积连接:

包含m*n条记录,由两个表中所有可能的记录对组成

crossjoin<

g)合并连接:

是全外连接减去内连接

unionjoin<

7、条件表达式中的比较操作符

a)算术比较操作符(算术比较判断):

比较两个表达式的值,

i.算术比较操作符的符号有:

、<

=、>

、>

=、=、<

、!

=、=

ii.语法:

表达式1>

&

表达式2>

between..and..、notbetween…and…

b)算术范围操作符(之间判断):

搜索(不)在给定范围内的数据

i.算术范围保留字是between…and…

[not]between<

and<

表达式3>

c)字符串的匹配操作(相同判断):

查找(不)包含给定模式的值

i.字符串匹配操作符是like,有两个通配符;

字符串>

[not]like<

匹配模式>

百分号(%):

与零个或多个字符组成的字符串匹配

下划线(_):

与单个字符匹配

d)空值的比较操作(空值判断):

判断某值是否为空值

i.空值的保留字是null;

表达式>

is[not]null。

e)集合成员资格的比较(之内判断):

判断某元组是否在某集合内

i.集合成员资格的保留字是in

[not]in(<

集合>

f)集合成员的算术比较(限定比较判断):

元组与集合中每一个元组满足&

比较

i.集合成员算术的保留字是some,all,any

all|some|any(<

)//&

是算术比较运算

some操作表示左边那个元组与右边集合中每一个元组满足&

运算

any|&

some操作表示左边那个元组与右边集合中至少一个元组满足&

g)集合空否的测试(存在判断):

判断集合是否至少存在一个元组

i.集合空否判定的保留字是exists

[not]exists(<

h)集合中重复元组存在否的测试(唯一判断):

判断集合是否没有重复元组

i.集合中重复元组的保留字是unique

[not]unique(<

数据库SQL语言之SQL的数据控制语言(四)

一个小伙子大老远地来到鉴宝节目现场,拿出瓷器,几个专家认真辨认,告诉小伙子是宋瓷。

小伙子的高兴劲儿可想而知,急忙掏出手机说要给爷爷打电话。

摄像师见状,赶紧悄悄跟过去抓拍。

只听小伙子高兴地说:

“爷爷,专家说了,你烧的瓷器是宋朝的!

数据控制语言(DataControlLanguage,DCL),包括基本表和视图的授权、完整性规则的描述、事务控制等内容。

(具体内容可以参考数据管理之数据库的并发控制、完整性规则、安全性)

1、基本表和视图的授权

a)授权Grant<

权限表>

数据库元素>

to<

用户名|角色名>

withgrantoption

b)撤权Revoke<

from<

[restrict|cascade]

2、完整性规则的描述

a)域约束

b)基本表约束

c)断言

d)触发器

3、事务控制

a)事务的封锁

b)事务的并发调度

数据库SQL语言之嵌入式SQL(五)

有一死党月光族,经常打电话来叫请吃饭。

于是有一次我接了电话就说:

对不起您的手机已欠费。

停了几秒不知道后面怎么说,她不说话也没挂电话。

然后我又说orryyourcellularphonehavenomoney

我反复说了几遍后,她突然冒了一句,你玩够没有。

玩够了出来请我吃饭

数据库中的游标主要是用于嵌入式SQL里面,解决SQL的集合处理方式与主语言单记录处理方式之间的协调问题。

1、嵌入式SQL定义:

SQL不能提供屏幕控制、菜单管理、图像管理、报表生成等功能,这些只能通过C、Java等主语言实现,在主语言中使用SQL结构(嵌入在主语言的程序中使用的SQL)称为嵌入式SQL。

2、嵌入式SQL的两种实现方式

a)扩充主语言的编译程序,使之能处理SQL语句(很少用)

b)采用预处理方式,是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成主语言的函数形式,然后再用主语言的编译程序编译成目标程序(目前多数系统采用的方式)

共享变量:

数据库和主语言程序间的信息传递是通过共享变量实现的,这些共享变量用declare语句说明,共享变量是SQL和主语言的接口。

SQL_STATE是一个特殊共享变量,起着解释语句执行状况的作用,它由5个字符组成的字符数组,全零表示成功,非全零表示各种错误。

3、嵌入式SQL的使用规定

a)在程序中要区分SQL语句和主语言语句

i.所有主语言中的SQL语句必须加上标识“ExecSQL开始,End_EXEC结束”

ii.嵌入的SQL语句的语法:

EXECSQL<

SQL语句>

END_EXEC;

b)允许嵌入的SQL语句引用主语言的程序变量(即共享变量)

i.引用时,共享变量前必须加冒号:

,作为前缀标识,以示与数据库中变量的区别;

ii.共享变量要用SQL的Declare语句说明,语法:

EXECSQLBEGINDECLARESECTION;

共享变量定义>

EXECSQLENDDECLARESECTION;

c)SQL的集合处理方式与主语言单记录处理方式之间的协调

i.SQL语句处理的是记录集合,而主语言语句一次只能处理一个记录,所以需要用游标机制(cursor)来协调SQL和主语言之间的处理方式。

在推进时沿查询结果中元组顺序从头到尾一行行推进,并且不能返回,这就是游标技术

ii.游标定义语句(declare)

EXECSQLDECLARE<

游标名>

CURSORFOR<

Select语句>

END_EXEC

iii.游标打开语句(open)

EXECSQL

OPEN<

END_EXEC

iv.游标推进语句(fetch)

FETCHFROM<

INTO<

变量表>

v.游标关闭语句(close)

EXECSQL

CLOSE<

d)SQL的集合处理方式与主语言单记录处理方式之间的协调的增强版(卷游标的使用)

i.为了解决游标不能返回的问题,SQL2中提供了卷游标,在推进时沿查询结果中元组可以进退自如。

ii.卷游标定义语句(declare)

DECLARE<

SCROLLCURSORFOR<

iii.卷游标打开语句(open)

iv.卷游标推进语句(fetch)

FETCH

Next从当前位置推进一行

或Prior从当前位置返回一行

或First移向第一行

或Last移向最后一行

或Relative<

整数>

从当前位置推进n行,正数代表推进,负数代表返回或Absolute<

移向查询结果的第n行,正数代表正数,负数代表倒数

FROM<

v.卷游标关闭语句(close)

EXECSQLCLOSE<

4、嵌入式SQLDML语句的使用技术

SQLDDL语句只要

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1