1.基本類(lèi)型
char(n):
固定長(zhǎng)度的字符串迁霎,用戶(hù)指定長(zhǎng)度n萨惑,也可使用全程character瞭恰。
varchar(n):
可變長(zhǎng)度的字符串轧苫,最大長(zhǎng)度為n宣决,等價(jià)于全程character varying婉弹。
int:
整數(shù)類(lèi)型(和機(jī)器相關(guān)的整數(shù)的有限子集)荒叶,等價(jià)于全程integer豪筝。
smallint:
小整數(shù)類(lèi)型(和機(jī)器相關(guān)的整數(shù)的有限子集)惋嚎。
numeric(p杠氢,d):
定點(diǎn)數(shù),精度由用戶(hù)指定另伍。這個(gè)數(shù)有p為數(shù)字(加上一個(gè)符號(hào)位)鼻百,其中d數(shù)字在小數(shù)點(diǎn)右邊绞旅。例如numeric(3,1)可以存儲(chǔ)44.5温艇,但不可以存儲(chǔ)444.5或者0.32這樣的數(shù)因悲。
real,double precision:
浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)勺爱,精度與機(jī)器相關(guān)晃琳。
float(n):
精度至少為n為的浮點(diǎn)數(shù)。
2.基本模式定義
1.創(chuàng)建表琐鲁,或者說(shuō)創(chuàng)建一個(gè)關(guān)系:
1)創(chuàng)建表的通用形式如下:
create table 表名(
屬性名 屬性的域卫旱,
……
<完整性約束>,
……
);
2)示例:
# 創(chuàng)建一個(gè)系的表
#表包含系名,系所在建筑名围段,系的投資
#主鍵顾翼,或者說(shuō)唯一標(biāo)識(shí),為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暴构、向表中插入一個(gè)元組(或者說(shuō)插入一行數(shù)據(jù)):
1)通用形式:
insert into 表名(屬性名,……) values(對(duì)應(yīng)屬性值段磨,……);
如果要插入的元組數(shù)據(jù)包含了所有屬性取逾,則可以簡(jiǎn)寫(xiě)為
insert into 表名 values(屬性值,……)苹支;
2) 示例(向表instructor中插入數(shù)據(jù)):
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.刪除一個(gè)表(關(guān)系):
1)通用形式:
drop table 表名;
2)示例:
DROP TABLE instructor;
4.向已有的表(關(guān)系)插入和移除屬性:
1)插入形式:
alter table 表名 add 屬性 屬性域债蜜;
2)移除形式:
alter table 表名 drop 屬性晴埂;
#######3)示例:
#添加該屬性是,關(guān)系中所有的元組的該屬性值為null
ALTER TABLE instructor ADD name VARCHAR(20) ;
ALTER TABLE instructor DROP name;