目录
数据的定义
一个关系数据库管理系统的实例(instance)中可以建很多的数据库,一个数据库中可以建多个模式,一个模式下通常包括多个表,视图和索引等数据库对象。
定义模式实际上定义一个命名空间。
模式和表:
每个基本表都有一个模式,一个模式包括多个基本表。
显示当前的搜索路径:show search_path
模式的定义与删除
定义模式:create schema<模式> authorization<用户名>;
删除模式:drop schema<模式名><cascade|restrict>;
eg1:为用户wang定义一个课程模式S-T
create schema "S-T" authorization wang;
定义基本表
create table <表名>
(<列名><数据类型>[列级完整性约束条件],
<列名><数据类型>[列级完整性约束条件],
......
<列名><数据类型>[列级完整性约束条件]
);
建表Student
create table Student
(
Sno char(9) primary key,
Sname char(20) unique,
Ssex char(2),
Sage smallint,
Sdept char(20)
);
建表Course
create table Course
(Cno char(4)primary key,
Cname char(40)not null,
Cpno char(4),
Ccredit smallint,
foreign key(Cpno)references Course(Cno));
建表学生选课表SC
create table SC
(Sno char(9),Cno char(4),Grade Smallint,
primary key (Sno,Cno),
foreign key (Sno)references Student(Sno),
foreign key (Cno)references Course(Cno));
修改基本表
alter table <表名>
(add [column] <新列名><数据类型>[列级完整性约束条件],
add [列级完整性约束条件],
drop [column]<列名>[cascade|restrict]
drop constrain <[列级完整性约束条件> [restrict|cascde]
alter column <列名><数据类型>
);
索引的建立与删除
建立索引:create [unique] [cluster] index <索引名>
on <表名> (<列名>[<次序>][,<列名>[<次序>]]...)
删除索引:alter index <旧索引名> rename to <新索引名>
数据类型
数据类型 | 含义 |
char(n),character(n) | 长度为n的定长字符串 |
varchar(n),characterying(n) | 最大长度为n的变长字符串 |
clob | 字符串大对象 |
blob | 二进制大对象 |
int ,integer | 长整型(4字节) |
samllint | 短整型(2字节) |
bigint | 大整型(8字节) |
unmeric(p,d) | 定点数,由p位数字(不包括符号,小数点)组成,小数点后面有d位数字 |
decimal(p,d), dec(p,d) | 同unmeric |
real | 取决于机器精度的单精度浮点数 |
double precision | 取决于机器精度的双精度浮点数 |
float(n) | 可选精度的浮点数,精度值至少为n位数字 |
boolean | 逻辑布尔量 |
date | 日期,包括年,月,日,格式为YYYY-MM-DD |
time | 时间,包括一日的时,分,秒,格式为HH:MM:SS |
timestamp | 时间戳类型 |
intervsl | 时间间隔类型 |