3.1 SQL 概述

3.1.2 特点

1 综合统一

非关系型语言 的数据语言都分为 DDL Scheme Data Definitin Language, 模式DDL
SubScheme Data Definition Language 子模式DDL, DSDK DML
2 高度非过程话

3 面向集合的操作方式

4 用同一种语法结构提供多种功能

3.3 数据定义

一个管理系统实例可以创建多个 数据库

一个数据库可以有多个模式

一个模式包括多个表和视图等对象

3.3.1 定义模式

模式定义
CREATE SCHEMA AUTHORIZATION
模式删除
drop schema cascade|restrict

3.3.2基本表的定义 删除 修改

1 定义基本表:
create table (
。。。
[表级完整性约束条件] )

2 数据类型
3 模式与表

1 在表名中显式定义所属的模式名
2 在创建模式的时候定义表
3 设置所属的模式,这样在船舰的时候不必给出模式名

show search_path 显示搜索的默认值 $user,PUBLIC 含义是首先搜索与用户同名的模式名,然后使用public模式
管理员可以是设置搜索路径:
set search_path TO "S-T" ,PUBLIC

4 修改基本表

alter table
[ADD column [完整性约束]]
[add ]
[drop column [cascade|restrict ]
[drop consrtrainit [restrict|cascade ]]
[alter column ]

5 删除基本表
drop table [restrict|cascade]

3.3.3 索引的建立与删除

1 建立索引
create [unique][cluster] index
on (列名,次序[,列名 ,次序])
unique 表名每一个索引值对应一个唯一的数据记录
cluster 代表聚簇索引

2 修改索引
alter index rename to
3 删除索引
drop index< 索引名>

3.4 数据查询

select [all|distinct] [,] ...
from [,]
[where ]
[GROUP BY [ HAVING<条件表达式<]
[GROUP BY [ ASC|DESC]

3.4.1 单表查询

1 选择表中的若干列
2 选择元组中的若干元组

(1) 使用distinct 消除重复的行
(2)条件表达

4 聚簇函数

3.4.2# 连接查询

1 等值连接与非等值连接
[.] [·<表·名2>]

[.] between [·<表·名2>] and [. 列明> ]

2 自身连接
3 外连接
要以学生为主题进行查询(即使该学生没有选课,仍要有该学生的null 信息 (而不是舍弃)

from student Left outer join sc on (Student.Sn=Sc.Sno)
左外连接列出左边元组的所有信息。

4 多表连接
5 嵌套查询

3.4.3 嵌套查询

需要指出 子查询不可以用select 语句进行查询

相关子查询和不相关子查询

如果子查询的查询条件依赖于 父查询 就成为 相关子查询
否则就是不相关子查询。(相关嵌套查询)

3 any 和some 谓词
4 exists 谓词的使用
5
选择选修了 全部课程的学生

对于任意的XX 都满足

非( 存在一个XX 不满足)

查询至少选修了 学生X 选修了全部课程的学生号码
蕴含逻辑
若果 X 选修了a 那么Y 也选修了a

对于任意课程y 满足(如果A选了 -> B选了)
等价于
不存在课程y (Ax选了-> B 没选)

3.4.4 集合查询

包括并 交 差
union 会自动去掉重复元素 使用alll 关键字保留重复元素

3.4.5 基于派生表的查询

子查询出现在from 中称为派生表

3.4.6 select 的一般格式

3.5 数据更新

1插入元组
insert into [ ,...)]
2 插入子查询结过
insert into table [,...] 子查询;

3.5.2 修改数据

update set =
where

3.5.3删除数据

drop from table < 表名>
where

3.7 视图

3.7.1 定义视图

1 建立试图
create view [(列名) ...]
as
[with check option]
选择了with check option 会再更新插入删除的时候 自动加上限制条件

必须指定组成视图的所有列名

(1) 某一个目标列不是单纯的属性名 ,是局促函数或者是列表达式
(2)选择了同名的字段
(3)要启动更加适合的名字
如果一个视图仅仅是去掉了表中的某些行或者列 就成为 行列子集视图

不存在的列 - 》 带表达式的视图
有groupby字句的视图-》 分组视图
2 删除视图

删除基本表后 ,视图不会清楚,
需要显示的调用drop view 来清除视图

3.7.2 查询视图

视图消解 view resolution

都属关系对行列子集视图的查询都可以正确转换,但是非行列子集视图就不一定可以正确转换了,

视图一旦定义,就永久保存在数据字典中
派生表再语句执行中临时定义,执行后删除

3.7.4 视图的作用

简化用户操作
使用户以多角度看同意数据
对重构提供了一定程度的逻辑独立性
对机密数据提供安全保护
更清晰的表达查询

关系数据库标准语言 SQL (ch.3)的更多相关文章

  1. 第3章 关系数据库标准语言SQL(重点) | 数据库知识点整理

    第3章 关系数据库标准语言SQL(重点) 了解 SQL语言发展过程 关系数据库技术和关系数据库管理系统RDBMS产品的发展过程 掌握 SQL语言的特点和优点 面向过程的语言和SQL语言的区别 关系数据 ...

  2. 第3章:关系数据库标准语言 SQL

    目录 第3章:关系数据库标准语言 SQL 3.1.SQL概述 3.1.1.历史 3.3.2.SQL语言的功能 3.3.3.SQL的特点 3.3.4.基本概念 3.2.学生-课程数据库 3.3.数据定义 ...

  3. 关系数据库标准语言SQL——概述

      SQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询.SQL是一个通用的.功能极强的关系数据库语言.SQL(Structured Query Language)结构化查询语 ...

  4. 关系数据库标准语言SQL

    篇幅过长,恐惧者慎入!!!基础知识,大神请绕道!!! 本节要点: l  SQL概述 l  学生-课程关系 l  数据定义 基本表的定义.删除与修改 索引的建立与删除 l  查询 单表查询 连接查询 嵌 ...

  5. 第3章_关系数据库标准语言(SQL)_006_由元组关系演算到SQL Command_001_蕴含式 (其中有对EXISTS的分析)

    前序的链接:元组关系演算 六. 蕴含式 ===>1. 什么是“蕴含式”===>设p.q为两个命题.复合命题“如果p,则q”称为p与q的蕴含式,记作p→q,并称p为蕴含式的前件,q为后件.定 ...

  6. 3.1 关系数据库标准语言SQL综述

    一.SQL语言的特点 SQL结构查询语言 1.综合统一: 2.高度非过程化:不需要指定存储路径 3.面向集合的操作方式 4.以同一种语法提供两种使用方式:独立语言.嵌入式语言 5.语言简单,易学易用 ...

  7. 关系数据库标准语言SQL的基本问答

    1 .试述 sQL 语言的特点. 答: (l)综合统一. sQL 语言集数据定义语言 DDL .数据操纵语言 DML .数据控制语言 DCL 的功能于一体. (2)高度非过程化.用 sQL 语言进行数 ...

  8. SQL查询刚開始学习的人指南读书笔记(一)关系数据库和SQL介绍

    PART I:Relational Databases and SQL Chapter2, Ensuring Your Database Structure IsSound. 数据库设计准则 什么是关 ...

  9. 关系数据库常用SQL语句语法大全

    创建表 语法 CREATE TABLE <表名>(<列名> <数据类型>[列级完整性约束条件] [,<列名> <数据类型>[列级完整性约束条 ...

随机推荐

  1. 在线Online表单来了!JeecgBoot 2.1 版本发布——基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. ...

  2. python 之 heapq (堆)

    堆的实现通过构造二叉堆,实为二叉树的一种:这种数据结构具有以下性质: 任意节点小于(或大于)它的后裔,最小元(或最大元)在堆的根上 堆总是一颗完整树.即除了最低层,其它层的节点都被元素填满,且最低层极 ...

  3. 小程序 设置tabBar选中颜色和图标

    "tabBar": { "selectedColor": "#4da9ff", //颜色 "list": [{ &quo ...

  4. PKU 百炼OJ 奖学金

    http://bailian.openjudge.cn/ss2017/A/ #include<iostream> #include <cmath> #include <m ...

  5. Django项目:CRM(客户关系管理系统)--75--65PerfectCRM实现CRM课程分数排名

    # classtop_urls.py # ————————64PerfectCRM实现CRM课程排名详情———————— from django.conf.urls import url from b ...

  6. hdu 1171 (背包或者母函数问题)

    Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ...

  7. 从登录接口的响应结果里提取token

    token一般存在于2个地方:1. cookie, 2 ,某个接口的响应结果中 1. 我们接口的token存在于登录接口的响应结果中,如下图: token值 为红色标记的值,在登录接口里加以下2行代码 ...

  8. 代理模式(Proxy、Subject、RealSubject)(代购火车票)

    .(为其他对象提供一种代理以控制对这个对象的访问.) 在实际的软件开发中,我们经常面临着对一个对象进行访问控制的问题,由于跨越网络或安全方面等原因不能直接或不需要直接被访问,直接访问的代价会给系统带来 ...

  9. 享元模式(Flyweight、FlyweightFactory)(围棋棋子共享)

    (使用共享对象可有效地支持大量的细粒度的对象.) 假设开发一个围棋程序,围棋程序的围棋的棋子包含了颜色.大小.位置等信息.在定义一个棋盘容器来存放这些棋子. 我们可以发现,棋盘的成员变量包含了一个棋子 ...

  10. Linux 7.X 解锁用户账号

    Linux 7.X 解锁用户账号 使用指令:sudo passwd -u tomcat ,解锁. 但是会有如下提示信息: 因为 55 失败登录而锁定账户 此时,需执行指令:pam_tally2 -u ...