初学SQL做一些简单的语句记录
(1)创建数据库
create database test
(2)创建表
create table member( id serial not null, phone text not null default '', create_time bigint not null default date_part('epoch', now()) )
create table orders ( id serial not null, serial_number text not null, member_id int not null, constraint pk_orders_id primary key(id), constraint ix_orders_serial_number unique(serial_number) )
说明: 如果在已有的表里在添加字段
alter table member add column name text not null
添加已有字段的约束(主 外 唯一)
alter table member add constraint pk_member_id primary key(id) -- 主键 alter table orders add constraint fk_orders_member_id foreign key(member_id) references member (id) -- 外键 alter table member add constraint ix_member_phone unique(phone) -- 唯一
修改字段 删除字段不可空约束
alter table member alter column name drop not null
设置字段不可空
alter table member alter column name set not null
修改字段名称
alter table member rename column name to member_name
修改约束名字
alter table member rename constraint ix_member_phone to ix_member_phone1
删除字段约束
alter table table-name drop constraint name -- tablename 表名 name 约束名
删除字段
alter table table_name drop column column_name ---table_name 表名 column_name -- 字段名称
修改表名
alter table member rename to member1
修改数据库名(需要断开当前数据库的连接)
alter database test rename to test1
(3)创建视图
create view va_member_orders as select b.*,a.phone as member_phone from member a join orders b on b.member_id = a.id
(4)清空数据表
truncate table table-name -- table-name 表名
清空数据表级相关联的表
truncate table table-name cascade -- table-name 表名
(5)修改某个表的序列从1开始
alter sequence serail-name restart with 1 -- serail-name 序列表名
注意
1. join (inner join) 内连接 查出满足on条件的数据
2. left join 以左表为基础,查出满足on条件的数据, 如果on条件不满足右表数据字段为空
3. right join 以右表为基础,查出满足on条件的数据,如果on条件不满足左表数据字段为空
4. outer join 外链接
另外说明 查询数据库 中的count 和 sum 的时候数据有可能为空需要加上
COALESCE (COUNT(id), 0) COALESCE(SUM (count), 0)