SQL笔记 --- 基本表,表完整性,索引,视图

本文详细介绍了SQL中的基本表操作,包括创建、修改和删除表,并重点讲解了表完整性的概念,如实体完整性、参照完整性和用户定义完整性。此外,还探讨了索引的作用和创建方法,以及视图的特性、用途和如何创建与更新视图。通过这些内容,读者可以更好地理解和管理SQL数据库中的数据。
摘要由CSDN通过智能技术生成


基本表


定义基本表

语法格式:

CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );

要求:

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级

约束类型:

名称      作用                  实现的完整性  
Primary key  定义主键,保证主键列无重复值      实体完整性
Unique      保证该列无重复值            实体完整性
Foreign key   定义外键,保证数据表间数据的一致性   参照完整性
Check       定义表中某些列的数据范围        自定义完整性
Default      为列的数据提供默认值          自定义完整性

数据基本类型:

数据类型     含义                             
CHAR(n)      长度为n的定长字符串
VARCHAR(n)    最大长度为n的变长字符串,实际存储有效长度
INT        长整数(也可以写作 INTEGER)
SMALLINT       短整数
NUMERIC(p,d)   定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字
REAL          取决于机器精度的浮点数
Double Precision  取决于机器精度的双精度浮点数
FLOAT(n)       浮点数,精度至少为n位数字
DATE        日期,包含年、月、日,格式为 YYYY-MM-DD
TIME         时间,包含一日的时、分、秒,格式为 HH:MM:SS

数据库与表:

  • 关系:
    • 每一个表都属于某一个数据库
    • 一个数据库可以包含多个表
  • 定义表所属数据库:
    • 在表名中明显地给出数据库名: CREATE TABLE "S-T".Student( ... ) ;
    • 设置所属的数据库,这样在创建表名中不必给出数据库名

例子:

建立一个“学生选课”表SC

CREATE TABLE SC
(Sno CHAR(9), 
Cno CHAR(4), 
Grade SMALLINT,
PRIMARY KEY (Sno,Cno), 
/* 主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY (Sno) REFERENCES Student(Sno),
/* 表级完整性约束条件,Sno是外码,被参照表是Student */
FOREIGN KEY (Cno) REFERENCES Course(Cno)
/* 表级完整性约束条件, Cno是外码,被参照表是Course*/
);

修改基本表

语法格式:

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

例子:

  • 向Student表增加“入学时间”列,其数据类型为日期型  .
    ALTER TABLE Student
    ADD S_entrance DATE;
  • 将年龄的数据类型由字符型 (假设原来的数据类型是字符型)改为整数 .
    ALTER TABLE Student
    ALTER COLUMN Sag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值