SQL基础(一)

这篇博客介绍了SQL的基础知识,包括由IBM开发的SQL语言的起源和组成部分,如DDL和DML。重点讲解了数据定义,如定义基本类型、模式以及完整性约束,如主键和外键约束,强调了非空和唯一性的概念。

概览

SQL最早版本是有IBM开发,最初叫Sequel,在20世纪70年代早期作为System R 项目的一部分.
SQL语言有以下几个部分:

  • 数据定义语言(data-definition Language,DDL):sql DDL 提供定义关系模式,删除关系以及修改关系模式的命令.

  • 数据操纵语言(DML):sql DML 提供从数据库中查询信息,以及在数据库中插入元祖,删除元祖,修改元祖的能力.

  • 完整性(integrity):sql DDL 包括定义完整性约束的命令,保存在数据库中的数据必须满足所有的完整性,不满足的更新是不被允许的.

  • 视图定义:DDL 包括定义视图的命令.

  • 事务控制:SQL 包括事务的开始和结束的命令.

  • 嵌入式SQL和动态SQL:定义SQL语句如何嵌入到通用编程语言中,如,java

  • 授权:DDL包括定义对关系和视图的访问权限的命令

SQL数据定义

可以定义:

  1. 每个关系的模式
  2. 每个属性的取值类型
  3. 完整性约束
  4. 每个关系维护的索引集合
  5. 每个关系的安全性和权限信息
  6. 每个关系在磁盘上的物理存储结构
基本类型
数据类型定义全称
char固定长度的字符串,用户指定长度ncharacter
varchar可变长度的字符串,用户指定最大长度ncharacter varying
int整数类型(和机器相关的整数的有限子集)integer
smallint小整数类型(和机器相关的整数类型的有限子集)
numeric定点数,精度由用户指定.
real/double precision浮点数和双精度浮点数,精度和机器相关
float精度至少为n位的浮点数

每个类型都可能包含一个被称作空值的特殊值.空值表示一个缺失的值,在可能的情况下,我们希望禁止加入空值.
char类型,如果字符串没有达到用户指定的长度,则在字符串后面添加空格以满足指定长度.
我们建议始终使用varchar类型而不是char类型.

基本模式定义

使用craete tabke 命令来定义SQL关系.通用的形式是:


create table r(
A1 D1,
A2 D2,
A3 D3,
A4 D4,
<完整性约束>,
......,
<完整性约束>
)

r是表名

A是指关系r模式中的一个属性名

D是A的域

D指定了A得类型以及可选的约束,用于限制所允许的A取值的集合.

create table 使用分号结束.

完整性约束
  1. primary key(A,A1,A2…):primary key 声明属性A,A1,A2…构成了关系的主码.主码属性必须非空且唯一
  2. foreign key(A,A1,A2,A3…) references :声明表示关系中任意元祖在属性(A1,A2,A3,)上的取值必须对应于关系S中某元祖在主码键上的取值.
  3. not null:约束属性不能为空.

例子:

create table department(

dept_name  varchar(20),
building varchar(15),
primary key(dept_name)
);

create table course(
 course_id varchar(7),
 title varchar(50),
 dept_name varchar(20),
 foreign key (dept_name) references department;

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狂风是我的热情

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

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

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

打赏作者

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

抵扣说明:

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

余额充值