数据库三(SQL)

一、SQL概述

结构化查询语言,是关系数据库的标准语言

特点:综合统一;高度非过程化(无需了解存取路径);面向集合的操作方式;

以同一种语法结构提供多种使用方式(独立、嵌入式);简洁易学

支持关系数据库三级模式结构,外模式处理视图,模式处理基本表,内模式处理存储文件

 

二、数据定义

模式定义:CREATE SCHEMA/DROP SCHEMA

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>若未指定模式名,则默认与用户名同名

DROP SCHEMA<模式名><CASCADE|RESTRICT>,CASCADE级联,表示删除模式时同时删除该模式下所有数据库对象;RESTRICT限制,表示只有没有任何下属数据库对象时财执行删除

表定义:CREATE TABLE/DROP TABLE/ALTER TABLE

CREATE TABLE<表名>

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

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

ALTER TABLE<表名>

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

DROP TABLE <表名>[RESTRICT|CASCADE]

视图定义:CREATE VIEW/DROP VIEW

CREATE VIEW AS SELECT语句

索引定义:CREATE INDEX/DROP INDEX加快查询速度

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

 

三、数据查询

SELECT [ALL|DISTINCT] <目标列表达式>

                                                [,<目标列表达式>] …

FROM <表名或视图名>[, <表名或视图名> ] …

[ WHERE <条件表达式> ]

[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]

[ ORDER BY <列名2> [ ASC|DESC ] ];

单表查询:

ORDER BY:ASC升序,DESC降序

聚集函数:计数COUNT([DISTINCT|ALL) *|[列名]

总和SUM();平均值AVG();最值MAX()MIN()

WHERE子句作用于基表或者视图,HAVING短语作用于组

连接查询:同时涉及多个表的查询

[表名1.]<列名1> <比较运算符>[<表名2.>]<列名2>

自身连接需要给自己起别名。

外连接:以指定表为连接主题,将主体表中不满足连接条件的元组一并输出,包括左外连接,右外连接

如:SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

    FROM  Student  LEFT OUT JOIN SC ON (Student.Sno=SC.Sno);

嵌套查询:将一个查询块嵌套在另一个查询块的WHERE或者HAVING子句中

查询块:一个SELECT-FROM-WHERE语句

子查询不能使用ORDER BY

不相关子查询与相关子查询:子查询是否依赖父查询

集合查询:

集合操作种类:UNION,INTERSECT,EXCEPT

四、数据更新:

插入数据:

插入元组:INSERT INTO<表名>[(<属性列1>,…)] VALUES()

插入子查询:INSERT INTO<表名>[(属性列1,…)] 子查询

删除数据:

DELETE FROM <表名> [WHERE…]

修改数据:

UPDATE<表名> SET<列名> = <表达式>,…[WHERE…]

五、空值的处理:

空值的判断: IS NULL,IS NOT NULL

空值的算术运算结果为NULL,空值的比较结果为UNKONW

六、视图:

特点:虚表,由若干基表导出

只存放视图定义,数据仍存放于原表

基本数据变化会导致视图变化

优点:限制用户直接存取基表的某些记录,带来安全性

可以隐藏数据的复杂性

操作:查询、删除、受限更新、定义新视图

CREATE VIEW <视图名>[<列名1>,…] AS <子查询> [WITH CHECK OPTION]

视图的实现:

实体化视图:有效性检查;执行视图定义,生成临时表;操作临时表;删除临时表

视图消除法:有效性检查;将视图操作转为对基表的操作;执行修改后的操作

作用:简化用户操作;

使用户能多角度看待统一数据;

对重构数据库提供了一定程度的逻辑独立性;

对机密数据提供安全保护;

更清晰的表达查询。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘风xs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值