1.基本类型
char(n):
固定长度的字符串,用户指定长度n,也可使用全程character。
varchar(n):
可变长度的字符串,最大长度为n,等价于全程character varying。
int:
整数类型(和机器相关的整数的有限子集),等价于全程integer。
smallint:
小整数类型(和机器相关的整数的有限子集)。
numeric(p,d):
定点数,精度由用户指定。这个数有p为数字(加上一个符号位),其中d数字在小数点右边。例如numeric(3,1)可以存储44.5,但不可以存储444.5或者0.32这样的数。
real,double precision:
浮点数和双精度浮点数,精度与机器相关。
float(n):
精度至少为n为的浮点数。
2.基本模式定义
1.创建表,或者说创建一个关系:
1)创建表的通用形式如下:
create table 表名(
属性名 属性的域,
……
<完整性约束>,
……
);
2)示例:
# 创建一个系的表
#表包含系名,系所在建筑名,系的投资
#主键,或者说唯一标识,为dept_name,用形如 primary key (attribute_name1,attribute_name2,...)定义那些属性是主码
CREATE TABLE department(
dept_name VARCHAR(20),
building VARCHAR(15),
budget NUMERIC(12,2),
PRIMARY KEY (dept_name)
);
# 课程表
CREATE TABLE course(
course_id VARCHAR(7),
title VARCHAR(50),
dept_name VARCHAR(20),
credits NUMERIC(2,0),
PRIMARY KEY (course_id),
# 定义参照的外键
FOREIGN KEY (dept_name )REFERENCES department(dept_name)
);
CREATE TABLE instructor(
id VARCHAR(5),
# not null 表明该属性的值不能为空
name VARCHAR(20) NOT NULL ,
dept_name VARCHAR(20),
salary NUMERIC(8,2),
PRIMARY KEY (id),
FOREIGN KEY (dept_name) REFERENCES department(dept_name)
);
CREATE TABLE section(
course_id VARCHAR(8),
sec_id VARCHAR(8),
semester VARCHAR(6),
year NUMERIC(4,0),
building VARCHAR(15),
room_number VARCHAR(7),
time_slot_id VARCHAR(4),
PRIMARY KEY (course_id,sec_id,semester,year),
FOREIGN KEY (course_id)REFERENCES course(course_id)
);
CREATE TABLE teaches(
id VARCHAR(5),
course_id VARCHAR(8),
sec_id VARCHAR(8),
semester VARCHAR(6),
year NUMERIC(4,0),
PRIMARY KEY (id,course_id,sec_id,semester,year),
FOREIGN KEY (course_id,sec_id,semester,year) REFERENCES section(course_id, sec_id, semester, year),
FOREIGN KEY (id) REFERENCES instructor(id)
);
CREATE TABLE student(
id VARCHAR(7),
name VARCHAR(8) NOT NULL ,
dept_name VARCHAR(20),
tol_cred NUMERIC(3,0),
PRIMARY KEY (id),
FOREIGN KEY (dept_name) REFERENCES department(dept_name)
);
CREATE TABLE takes(
id VARCHAR(7),
course_id VARCHAR(8),
sec_id VARCHAR(8),
semester VARCHAR(6),
year NUMERIC(4,0),
grade NUMERIC(3,0),
PRIMARY KEY (id,course_id,sec_id,semester,year),
FOREIGN KEY (id) REFERENCES student(id),
FOREIGN KEY (course_id,sec_id,semester,year) REFERENCES section(course_id, sec_id, semester, year)
);
2、向表中插入一个元组(或者说插入一行数据):
1)通用形式:
insert into 表名(属性名,……) values(对应属性值,……);
如果要插入的元组数据包含了所有属性,则可以简写为
insert into 表名 values(属性值,……);
2) 示例(向表instructor中插入数据):
INSERT INTO instructor
VALUES (10211,'smith','biology',66000);
INSERT INTO instructor (id, name, salary)
VALUES (10212,'zero',44000);
3.删除所有元组
1)通用形式:
delete from 表名;
2)示例:
DELETE FROM instructor;
4.删除一个表(关系):
1)通用形式:
drop table 表名;
2)示例:
DROP TABLE instructor;
4.向已有的表(关系)插入和移除属性:
1)插入形式:
alter table 表名 add 属性 属性域;
2)移除形式:
alter table 表名 drop 属性;
#######3)示例:
#添加该属性是,关系中所有的元组的该属性值为null
ALTER TABLE instructor ADD name VARCHAR(20) ;
ALTER TABLE instructor DROP name;
网友评论