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. 如何克隆UBUNTU14.04LTS

    先对目标盘sdb做好处理,分区,格式化,挂载等操作sudo fdisk /dev/sdb1fdisk常用命令如下,m是帮助,n创建新分区,d删除分区,w保存退出.分好区后,对sdb1进行格式化和挂载: ...

  2. [IR课程笔记]统计语言模型

    Basic idea 1.一个文档(document)只有一个主题(topic) 2.主题指的是这个主题下文档中词语是如何出现的 3.在某一主题下文档中经常出现的词语,这个词语在这个主题中也是经常出现 ...

  3. (linux)idr(integer ID management)机制

     最近研究进程间通信,遇到了idr相关的函数,为了扫清障碍,先研究了linux的idr机制. IDR(integer ID management)的要完成的任务是给要管理的对象分配一个唯一的ID,于 ...

  4. Vue中的计算属性和监听器(computed 与 watch)

    react中数据是单向绑定的,而vue中数据是双向绑定的.为什么? 在react中,主要是通过setState 去改变state的值:而在vue中,会自动的触发set 与get 改变属性的值. 在vu ...

  5. JavaScript Objects in Detail

    JavaScript’s core—most often used and most fundamental—data type is the Object data type. JavaScript ...

  6. Grunt 自动编译 Less 文件配置

    1.安装Grunt http://www.gruntjs.net/getting-started 2.编辑 package.json 文件 { "name": "Grun ...

  7. CodeForces669E:Little Artem and Time Machine(CDQ分治)(或者用map+树状数组优美地解决)

    Little Artem has invented a time machine! He could go anywhere in time, but all his thoughts of cour ...

  8. BZOJ_2901_矩阵求和_前缀和

    BZOJ_2901_矩阵求和_前缀和 Description 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. Input 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一 ...

  9. codevs 1155今明的预算方案(复习有依赖性的背包问题)

    1155 金明的预算方案 [题目大意]买附件必须买主件. 在一定钱数内 求总价值最大. [题解]有依赖性的背包问题. [code] #include<iostream> #include& ...

  10. tyvj1391走廊泼水节——kruskal

    题目:http://www.joyoi.cn/problem/tyvj-1391 大意就是把一个树扩充成一个完全图,并且图中最小生成树仍是原来的树. 思路很巧妙,把边按权值从小到大排序,然后模拟加边的 ...