本次lab是对之前知识点的总复习。
1.Table
create table基本语法是:
CREATE TABLE XX(
XX XX,
XX XX
);
--注意在最后有一个分号,括号内部的内容用逗号连接
table中一般包含primary key,foreign key,constraints,实例如下:
CREATE TABLE weather(
city varchar(80),
--varchar是字节长度可变的变量
temp_lo int check (temp_lo > -50),
--限定低温的最小值
temp_hi int
constraint high
check (temp_hi < 50),
--限定高温的最大值
date date,
--日期的类型是date
primary key (city)
);
drop table基本语法是:
DROP TABLE tablename;
2.Insertion
insert基本语法是:
INSERT INTO tablename VALUES ();
--or
INSERT INTO tablename(attribute1, attribute2 ...) VALUES (value1, value2 ...);
3.Querying
query基本语法是:
SELECT * FROM table;
SELECT的内容可以是多个attribute,所有attribute(用*代替),aggregate函数(例如count(*))等。
4.Updating
update基本语法是:
UPDATE table name SET XX WHERE XX;
注意如果set中包含多条语句,则彼此之间用逗号连接。
5.Deleting
delete基本语法是:
DELETE FROM tablename WHERE XX;
如果省略where,则删除所有tuples,但是保留table。这一点要与drop table区分,drop table不仅删除所有tuples,同时删除table。
6.Table Join
default的设置是natural join,意味着选择table间重叠attributes一致的tuples,不包括null的tuple。
与natural join容易混淆的是inner join,区别在于inner join可以用ON设置重叠的attribute,而natural join重叠的attribute是无法设置的。
除此之外,如果想要选择一些attribute为null的tuples,可以使用outer join,left outer join包括所有左侧table的tuples,right outer join包括所有右侧table的tuples。
7.View
view是一种虚拟关系,方便管理用户查看的内容或者方便后续查询。使用时一般不给查看view的用户以update的权限,否则view的虚拟关系更新,经常会出现与真实table冲突的问题。
view基本语法是:
CREATE OR REPLACE VIEW viewname
sql;
SELECT * FROM viewname;