博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关系数据库SQL语言详解(转)
阅读量:2504 次
发布时间:2019-05-11

本文共 3249 字,大约阅读时间需要 10 分钟。

关系数据库SQL语言详解(转)[@more@]  学习本文后应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用,特别是数据查询的应用。结合上机操作进行理解和掌握。
一、SQL概述。
1、SQL发展历程( 识记 )
  SQL从1970年美国IBM研究中心的E.F.Codd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言,到现在还在不断完善和发展之中,SQL(结构式查询语言)虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。
2、SQL数据库的体系结构( 领会 )
  SQL数据库的体系结构也是三级结构 ,但术语与传统关系模型术语不同,在SQL中,关系模式称为" 基本表 ",存储模式称为" 存储文件 ",子模式称为" 视图 ",元组称" 行 ",属性称" 列 "。
SQL数据库体系的结构要点如下:
  (1)一个SQL数据库是表的汇集。
  (2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。
  (3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。
  (4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。
  (5)用户可以用SQL语句对表进行操作,包括视图和基本表。
  (6)SQL的用户可以是应用程序,也可以是终端用户。
3、SQL的组成( 识记 )
SQL由四部分组成:
  (1)数据定义:SQL DDL。定义SQL模式,基本表、视图和索引。
  (2)数据操纵:SQL DML。包括数据查询和数据更新(增、删、改)。
  (3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。
  (4)嵌入式SQL的使用规定。
二、SQL的数据定义( 简单应用 )
1、SQL模式的创建和撤消:
  SQL 模式的创建 可简单理解为建立一个数据库,定义一个存储空间,其句法是:
CREAT SCHEMA AUTHORIZATION
  撤消SQL模式的句法为:
DROP SCHEMA [ CASCADE | RESTRICT ]
  方括号中的选项参数CASCADE表示连锁方式,执行时将模式下所有基本表、视图、索引等元素全部撤消。RESTRICT表示约束式,执行时必须在SQL模式中没有任何下属元素时方可撤消模式。
2、SQL提供的基本数据类型
  数值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)
  字符串型:char(n)、varchar(n),前者是定长,后者为变长串
  位串型:bit(n),bit varying(n),同上。
  时间型:date、time。
3、基本表的创建、修改和撤消
* 基本表的创建:(可理解为建立表结构)
CREAT TABLE SQL 模式名.基本表名
(列名,类型,
……
完整性约束...)
完整性约束包括主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(Foreign KEY).
* 基本表结构的修改
ALTER TABLE 基本表名 ADD/ DROP (增加/删除) 列名 类型名(增加时写出)
删除时有子句 [CASCADE|RESTRICT],前者为连锁删除,后者为约束删除,即没有对本列的任何引用时才能删除。
* 基本表的撤消
DROP TABLE 基本表名 [CASCADE|RESTRICT]
4、视图的创建和撤消
* 创建: CREAT VIEW 视图名(列名表) AS SELECT 查询语句
* 撤消: DROP VIEW 视图名
5、索引的创建和撤消
* 创建: CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名表 [ASC|DESC])
* 撤消: DROP INDEX 索引名
  总结:凡创建都用 CREAT ,删除都用 DROP ,改变用 alter ,再跟类型和名字,附加子句很容易了。
三、SQL的数据查询( 综合应用 )
这一段是本章的重点内容,应该熟练掌握。首先了解基本句法:
1、 SELECT -FROM- WHERE 句型
* SELECT 列名表(逗号隔开) FROM 基本表或视图序列 WHERE 条件表达式
  在这里,重点要掌握条件表达式中各种运算符的应用,如=,>,等算术比较运算符、逻辑运算符 AND、OR、NOT 、集合成员资格运算符: IN,NOT IN ,以及嵌套的 SELECT 语句的用法要特别注意理解。 针对课本的例题和课后习题进行掌握。
  在查询时, SELECT 语句可以有多种写法,如 联接查询、嵌套查询和使用存在量词的嵌套查询 等。最好都掌握,但是起码应能写出一种正确的查询语句。
2. SELECT 语句完整的句法:
* SELECT 列名表(逗号隔开)
FROM 基本表或视图序列
[ WHERE 条件表达式] (此为和条件子句)
[GROUP BY 列名序列] (分组子句)
[HAVING 组条件表达式] (组条件子句)
[ORDER BY列名[ASC|DESC]..] (排序子句)
这段关于完整句法的内容能够理解也就问题不大了。
3、 SELECT 语句中的限定
  这一段内容主要是对 SELECT 语句进一步使用进行的深入学习,领会下列各种限定的使用目的和方法。
* 要求输出表格中不出现重复元组,则在 SELECT 后加一DISTINCT
* SELECT 子句中允许出现加减乘除及列名,常数的算术表达式
* WHERE 子句中可以用BETWEEN...AND...来限定一个值的范围
* 同一个基本表在 SELECT 语句中多次引用时可用AS来增加别名
* WHERE 子句中字符串匹配用LIKE和两个通配符,%和下划线_.
* 查询结果的结构完全一致时可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT)操作
* 查询空值操作不是用='null',而是用 IS NULL来测试。
* 集合成员资格比较用 IN/NOT IN ,集合成员算术比较用元组θSOME/ALL
* 可以用子查询结果取名(表名(列名序列))来作为导出表使用
* 基本表的自然联接操作是用 NATURAL INNER JOIN来实现的。
四、SQL的数据更新( 简单应用 )
简单应用就是掌握基本的句型并能套用在一些简单的查询要求上。
1、数据插入:
INSERT INTO 基本表名(列名表)
valueS (元组值)
INSERT INTO 基本表名(列名表)
SELECT 查询语句
其中元组值可以连续插入。用查询语句可以按要求插入所需数据。
2、数据删除:
DELETE FROM 基本表名 [ WHERE 条件表达式]
3、数据修改:
UPDATE 基本表名
SET 列名=值表达式,[列名=值表达式...]
[ WHERE 条件表达式]
4、对视图的更新:
我们知道,对视图的查询是和基本表相同的,但是更新操作则受到下列三条规则的限制:(领会一下)
* 如果视图是从多个基本表使用联接操作导出的,则不允许更新。
* 如果导出的视图使用了分组和聚合操作,也不允许更新。
* 如果视图是从单个基本表使用选择和投影操作导出的,并且包括了基本表的主键或某个候选键,则可以执行操作。(这就相当于在基本表上操作)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10617731/viewspace-959634/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10617731/viewspace-959634/

你可能感兴趣的文章
华为上机试题(java)
查看>>
Django目录介绍、路由系统、 ORM表的创建、XSS攻击、分页、 CBV & FBV
查看>>
Driving the Activity Lifecycle
查看>>
逆向工程搭建的一般步骤
查看>>
个人隐私保护3:什么是“TrueCrypt”
查看>>
iOS 保存图片(视频)到相册
查看>>
项目体会
查看>>
白夜行
查看>>
MangoDB
查看>>
Jquery_基础(三) ajax与json
查看>>
2015.11.1 XJOJ(NOIP模拟赛)总结
查看>>
5,17练习题二
查看>>
6.1数据库MySQL基础
查看>>
zookeeper 分布式应用好处
查看>>
WITH AS and materialize hints
查看>>
Java内部类基本使用
查看>>
poj-3281(拆点+最大流)
查看>>
强化学习(二):马尔可夫决策过程
查看>>
unity3d中协程的用法
查看>>
Echoprint系列--编译
查看>>