SQL

初学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)

 

posted on 2016-11-23 11:52  ljmaque  阅读(189)  评论(0编辑  收藏  举报

导航