1、创建/删除新的数据库

\l  查看现有数据库

\h CREATE DATABASE  查看CREATE DATABASE语句说明

\h DROP DATABASE 查看DROP DATABASE语句说明

CREATE DATABASE c03_sqlstudy;

\c c03_sqlstudy

创建一个数据库,第三章sql语言学习,并切换为该数据库

2、修改数据库

\h ALTER DATABASE 查看语句说明

ALTER DATABASE c03_sqlstudy RENAME TO c03_sqlstudy_gai; 修改数据库名字,注意不能修改现有数据库名字

ALTER DATABASE c03_sqlstudy OWNER TO u1; 修改数据库所有者

3、创建/删除新表

\d  查看现有数据库中的匹配关系(包括表格,视图,索引,序列等)

\d tablename  查看tablename表的属性

\h CREATE TABLE  查看CREATE TABLE语句说明

\h DROP TABLE  查看DROP TABLE语句说明

CREATE TABLE company(

No int PRIMARY KEY,

name text,

age int,

address text

);

创建一个表格,表名为company,包括4个字段,PRIMARY KEY代表数据库表主键约束

INSERT INTO company VALUES(1,'jack',25,'aa');

INSERT INTO company VALUES(2,'may',40,'bb');

INSERT INTO company VALUES(3,'ana',29,'cc');

插入3条数据

SELECT * FROM company;

查看company表格数据

4、约束条件

CREATE TABLE company2(

No int PRIMARY KEY,

name text NOT NULL UNIQUE,

age int NOT NULL UNIQUE

);

PRIMARY KEY约束 → 主键约束,1个表中只有1个主键,且不能有NULL值

UNIQUE约束 → 唯一约束防止两个记录在1个特定的列具有相同的值,1个表中可以多个UNIQUE约束

NOT NULL约束 → 该列不能有NULL值

CREATE TABLE company3(

No int PRIMARY KEY,

name text NOT NULL UNIQUE,

salary numeric CHECK(salary>0)

);

INSERT INTO company3 VALUES(1,'jack',10000);

INSERT INTO company3 VALUES(2,'pual',15000);

INSERT INTO company3 VALUES(3,'allen',15000);

INSERT INTO company3 VALUES(4,'teddy',20000);

INSERT INTO company3 VALUES(5,'mark',20000);

INSERT INTO company3 VALUES(6,'kim',10000);

INSERT INTO company3 VALUES(7,'mary',-10000);

CHECK约束 → 添加约束条件,如果条件值为false则不写入表格,例如以上案例中第二条数据无法插入

5、变更数据库表

\h ALTER TABLE 查看ALTER TABLE语句说明

添加新列

ALTER TABLE table_name ADD column_name datatype;

ALTER TABLE company ADD gender text;

删除列

ALTER TABLE table_name DROP COLUMN column_name;

ALTER TABLE company DROP COLUMN gender;

修改列的数据类型

ALTER TABLE table_name ALTER COLUMN column_name TYPE datatype;、

ALTER TABLE company ALTER COLUMN No TYPE numeric;

设置列为非空

ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;

ALTER TABLE company ALTER COLUMN age SET NOT NULL;

删除非空设置

ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;

ALTER TABLE company ALTER COLUMN age DROP NOT NULL;

添加主键primary key,这里可以是多个列,主键名称这里为'pkey'

ALTER TABLE table_name ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

ALTER TABLE company ADD CONSTRAINT pkey PRIMARY KEY (No,name);

添加UNIQUE约束,这里添加约束名为'ukey'

ALTER TABLE table_name ADD CONSTRAINT MyUniqueConstraint UNIQUE (column1, column2...);

ALTER TABLE company ADD CONSTRAINT ukey UNIQUE (name);

添加CHECK约束,这里约束名为'agecheck',约束条件为 age>0

ALTER TABLE table_name ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);

ALTER TABLE company ADD CONSTRAINT agecheck CHECK (age > 0);

删除约束条件

ALTER TABLE table_name DROP CONSTRAINT some_name;

ALTER TABLE company DROP CONSTRAINT pkey;  删除主键 pkey

ALTER TABLE company DROP CONSTRAINT ukey;  删除UNIQUE约束 ukey

ALTER TABLE company DROP CONSTRAINT agecheck;   删除CHECK约束 agecheck

PostgreSQL-3-DDL数据定义语言的更多相关文章

  1. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  2. sql 两大类 DDL数据定义语言 和DCL数据控制语言

    SQL分为五大类: DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言. DDL (date definition lang ...

  3. Hive 官方手册翻译 -- Hive DDL(数据定义语言)

    Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...

  4. mysql DDL数据定义语言

    DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表:-- 数 ...

  5. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  6. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

  7. 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

    DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...

  8. DDL 数据定义语言

    目录 创建数据库(CREATE) 删除数据库(DROP) 修改数据库(ALTER) 创建数据表(CREATE) 数据表的数据属性 数据类型属性(Type) 其他属性(Null,Key,Default, ...

  9. MySQL之DDL数据定义语言:库、表的管理

    库的管理 常用命令 #创建库 create database if not exists 库名 [ character set 字符集名]; create database if not exists ...

  10. ODPS SQL <for 数据定义语言 DDL>

    数据定义语言:(DDL) 建表语句: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

随机推荐

  1. [eMMC]eMMC读写性能测试

    读写速率(dd) https://www.shellhacks.com/disk-speed-test-read-write-hdd-ssd-perfomance-linux/ eMMC健康情况(mm ...

  2. 大数据之ES系列——第一篇 ElasticSearch2.2 集群安装部署

    第一部分  安装准备 准备三台主机节点: hc11.spads  192.168.160.181 hc12.spads  192.168.160.182 hc13.spads  192.168.160 ...

  3. 【WordSearch】Word Search

    Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...

  4. 在c中break的使用

    break语句通常用在循环语句和开关语句中.当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句:如果没有break语句,则会从满足条件的地方(即与switc ...

  5. hihocoder 挑战赛9 A.好配对(思维题目 防止超时)

    #1123 : 好配对 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个序列a和b,每个序列中可能含有重复的数字. 一个配对(i,j)是一个好配对当从第一个序列中选 ...

  6. tomcat 启动增加参数

    linux: JAVA_OPTS="$JAVA_OPTS  -Dconfig.type=inte2 -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:Max ...

  7. 动态调试Android程序

    最近好几天来一直在看动态调试.首先是这一篇(http://www.52pojie.cn/forum.php?mod=viewthread&tid=293648)里面介绍了多种IDA动态调试的情 ...

  8. codevs 2102 石子归并2

    传送门 2102 石子归并 2  时间限制: 10 s  空间限制: 256000 KB  题目等级 : 黄金 Gold   题目描述 Description 在一个园形操场的四周摆放N堆石子,现要将 ...

  9. shiro加密简单实现

    1.添加shiro依赖 定义shiro的版本号 <shiro.ver>1.2.3</shiro.ver> 加入shiro的依赖 <dependency> <g ...

  10. Anaconda tensorflow 安装笔记

    1.安装步骤: (1)Anaconda下载Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载.ps:也可 ...