《数据库系统概念》学习笔记——SQL

本文详细介绍了SQL查询语言的各个方面,包括数据定义、查询结构、单关系和多关系查询、集合运算、空值处理、聚集函数以及数据的增删改操作。通过实例解析了SQL中的select、from、where子句,以及子查询、视图定义和事务控制等功能,为理解和使用SQL提供了全面的指导。
摘要由CSDN通过智能技术生成

SQL查询语言概览

SQL语言有以下几个部分:

  • 数据定义语言(Data-Definition Language, DDL):SQL DDL提供定义关系模式、删除关系以及修改关系模式的命令。
  • 数据操纵语言(Data-Manipulation Language, DML):SQL DML提供从数据库中查询信息,以及在数据库中插入元组、删除元组、修改元组的能力。
  • 完整性(integrity):SQL DDL包括定义完整性约束的命令,保存在数据库中的数据必须满足所定义的完整性约束。破坏完整性约束的更新是不允许的。
  • 视图定义(view definition):SQL DDL包括定义视图的命令。
  • 事务控制(transaction control):SQL包括定义事务的开始和结束的命令。
  • 嵌入式SQL和动态SQL(embedded SQL and dynamic SQL):嵌入式和动态SQL定义SQL语句如何嵌入到通信编程语言,如C、C++和Java中。
  • 授权(authorization):SQL DDL包括定义对关系和视图的访问权限的命令。

SQL数据定义

数据库中的关系集合必须由数据定义语言(DDL)指定给系统。
SQL的DDL不仅能够定义一组关系,还能够定义每个关系的信息,包括:

每个关系的模式。
每个属性的取值类型。
完整性约束。
每个关系维护的索引集合。
每个关系的安全性和权限信息。
每个关系在磁盘上的物理存储结构。

基本类型

SQL标准支持多种固有类型,包括:

  • char(n) 固定长度字符串,用户指定长度n。也可以使用全称 character
  • varchar(n) 变化长度字符串,用户指定最大成对n,等价于全称 character varying
  • int 整数类型(和机器相关的整数的有限子集),等价于全称 integer
  • smallint 小整数类型(和机器相关的整数类型的子集)。
  • numeric(p,d) 定点数,精度由用户指定。p位数字,其中d位在小数点右边。
  • real, double precision 浮点数与双精度浮点数,精度与机器相关。
  • float(n) 精度至少为n位的浮点数。

每种类型可包含一个被称作空值的特殊值。

基本模式定义

create table 命令定义SQL关系。

create table department
	(dept_name varchar (20),
	building varchar (15),
	budget numeric (12,2),
	primary key (dept_name));

create table 命令的通用形式是:

 
create table r
	(A1 D1,
	A2 D2,
	. . . ,
	An Dn,
	<完整性约束1>,
	. . . ,
	<完整性约束k>);

SQL支持许多不同的完整性约束:

  • p r i m a r y k e y ( A j 1 , A j 2 , . . . , A j m ) primarykey(A_{j1},A_{j2},...,A_{jm}) primarykey(Aj1,Aj2,...,Ajm)
    表示属性 A j 1 , A j 2 , . . . , A j m A_{j1},A_{j2},...,A_{jm} Aj1,Aj2,...,Ajm构成关系的主码。
    主码属性必须非空且唯一。
    主码的声明是可选的。

  • f o r e i g n k e y ( A j 1 , A j 2 , . . . , A j m ) r e f e r e n c e s foreignkey (A_{j1},A_{j2},...,A_{jm}) references foreignkey(Aj1,Aj2,...,Ajm)references
    foreign key声明表示关系中任意元组在属性 A j 1 , A j 2 , . . . , A j m A_{j1},A_{j2},...,A_{jm} Aj1,Aj2,...,A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值