comp9311 数据库常用指令记录
select count(*) from hosts
对table hosts 内所有东西进行统计, *可以换成里面的arttributes
create or replace view Q1 as
SELECT count(*) FROM Accesses
WHERE accTime<'2005-03-03 00:00:00' and accTime>'2005-03-02 00:00:00';
创建一个view,这个view类似于一个虚拟的table,可以用select进行访问
timestamp类型可以直接比较大小
where page like '%messageboard%' and params like '%state=search%'
注意like的用法
select distinct h.hostname
from Hosts h, Sessions s
where h.hostname like 'tuba%cse.unsw.edu.au' and s.host=h.id
and not s.complete
;
select distinct 用法
as的用法
s.host=h.id 把两张表串联起来了
5.常见函数
min,max,avg,
cast (xx as int(data type)),
也可以用(xx::integer), consider as 的意思。
- <>
select * from R where b <> 'first';
得到除了first以外的值 - join
natural join 是自动比较两个table,有没有名字一样的列,有的话去找到这一列相同的值去match
left loin
right join
(select b from R) except (select b from S);
intersect
select A.,B.
from A,B
得到的是count(A)*count(B)条内容
是所有可能的组合。
很多时候出现了重复的数据,不要急着加distinct,去看看是不是有类似的问题。
'' 表示'
where X=(select max(xxx) from XXX)
注意右边什么时候是list
- 3-way relationship
主键可以使用两个外面的表,外加一个自己的attribute
create domain x1 as int check(value in (1,2,3,4));
create table R(id serial,a x1,primary key(id));
insert R values(default,5);
会被拒绝掉
insert R values(default)
会成功写入,但是a 为null.
需要加入NOT NULL
- order key word
he ORDER BY keyword is used to sort the result-set in ascending or descending order.
The ORDER BY keyword sorts the records in ascending order by default. To sort the records in descending order, use the DESC keyword.
create or replace view JohnsFavouriteBeer(brewer,beer)
view 后面的参数是什么意思?
-
pspg function overloading
image.png
-
2NF 与 3NF
2NF指的是所有no key attributes必须由完整的key决定
3NF指的是所有attributes 不能由no key attributes 决定
使用not in 时需要确保没有null存在
JOIN
SELECT COALESCE(NULL, NULL, GETDATE())