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. SQL 关联操作

  2. Kattis - whatdoesthefoxsay —— 字符串

    题目:  Kattis - whatdoesthefoxsay   Determined to discover the ancient mystery—the sound that the fox ...

  3. maven项目所遇到的问题解决

    1.在Eclipse中创建Maven的Web项目时出现错误:An internal error occurred during: "Retrieving archetypes:". ...

  4. FFmpeg big changes. ffmpeg 接口的一些改变

    Big changes have been made from FFmpeg 0.5.1… Refer to http://cekirdek.pardus.org.tr/~ismail/ffmpeg- ...

  5. iOS 键盘遮挡输入框万能解决方案(多个输入框)

    效果图如下: 思路分析: 代码: 知识点: 问题: 效果图如下: 思路分析: 当我们有很多输入框时,有时候键盘弹出来会遮挡着输入框.我们需要获取输入框和键盘相对于最外层视图的位置来判断是否遮挡,如果遮 ...

  6. CF 757E Bash Plays with Functions——积性函数+dp+质因数分解

    题目:http://codeforces.com/contest/757/problem/E f0[n]=2^m,其中m是n的质因子个数(种类数).大概是一种质因数只能放在 d 或 n/d 两者之一. ...

  7. [hdu1277]全文检索(AC自动机)

    解题关键:AC自动机模板题,注意字符匹配时若无法匹配,直接用%s即可. #include<bits/stdc++.h> using namespace std; typedef long ...

  8. URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)

    URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs) 有时候在IDEA中配置spring文件 ...

  9. shell脚本自动部署nignx反向代理及web服务器,共享存储

    #!/bin/bash systemctl status nginx var=$? ] then yum install epel-release -y ] then echo "epel库 ...

  10. Flutter实战视频-移动电商-08.Dio基础_伪造请求头获取数据

    08.Dio基础_伪造请求头获取数据 上节课代码清楚 重新编写HomePage这个动态组件 开始写请求的方法 请求数据 .但是由于我们没加请求的头 所以没有返回数据 451就是表示请求错错误 创建请求 ...