python学习笔记维小维写作训练营

python-postgresql学习笔记

2019-10-21  本文已影响0人  书生_Scholar

pgAdmin4数据库操作

CREATE DATABASE gs;    -- 创建数据库
DROP DATABASE gs;        -- 删除数据库
ALTER DATABASE gs_data RENAME TO gs_data0;    # 修改数据库名称

pgAdmin4数据表操作

--【例4.2】创建员工表tb_emp1
--首先创建数据库test,新建立一个当前连接查询,在查询编辑器中输入以下SQL语句
CREATE TABLE tb_emp1
(
id      INT,
name   VARCHAR(25),
deptId  INT,
salary  FLOAT
);
--【例4.3】定义数据表tb_emp 2,其主键为id,SQL语句如下:
CREATE TABLE tb_emp2
(
id      INT PRIMARY KEY,
name   VARCHAR(25),
deptId  INT,
salary  FLOAT
);
--【例4.4】定义数据表tb_emp 3,其主键为id,SQL语句如下:
CREATE TABLE tb_emp3 
(
id INT,
name VARCHAR(25),
deptId INT,
salary FLOAT 
PRIMARY KEY(id)
);
--【例4.5】定义数据表tb_emp4,假设表中间没有主键id,为了唯一确定一个员工,可以把name、deptId联合起来做为主键,SQL语句如下:
CREATE TABLE tb_emp4
 (
name VARCHAR(25),
deptId INT,
salary FLOAT,
PRIMARY KEY(name,deptId)
);
--创建一个部门表tb_dept1,表结构如【表4.2】,SQL语句如下:
CREATE TABLE tb_dept1
(
id       int PRIMARY KEY,
name    VARCHAR(22)  NOT NULL,
location  VARCHAR(50)
);
--定义数据表tb_emp5,让它的键deptId作为外键关联到tb_dept1的主键id,SQL语句为:
CREATE TABLE tb_emp5 
(
id      INT PRIMARY KEY,
name   VARCHAR(25),
deptId  INT, 
salary   FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);
--【例4.7】定义数据表tb_emp6,指定员工的名称不能为空,SQL语句如下:
CREATE TABLE tb_emp6 
(
id     INT PRIMARY KEY,
name   VARCHAR(25) NOT NULL,
deptId  INT, 
salary  FLOAT,
CONSTRAINT fk_emp_dept2  FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
--【例4.8】定义数据表tb_dept2,指定部门的名称唯一,SQL语句如下:
CREATE TABLE tb_dept2 
(
id      INT PRIMARY KEY,
name    VARCHAR(22) UNIQUE,
location  VARCHAR(50)
);
--⑵ 在定义完所有列之后指定唯一约束,语法规则如下:
--[CONSTRAINT <约束名>] UNIQUE(<字段名>)
--【例4.9】定义数据表tb_dept3,指定部门的名称唯一,SQL语句如下:
CREATE TABLE tb_dept3 
(
id      INT PRIMARY KEY,
name    VARCHAR(22),
location  VARCHAR(50),
CONSTRAINT STH UNIQUE(name)
);
--【例4.10】定义数据表tb_emp7,指定员工的部门编号默认为1111,SQL语句如下:
CREATE TABLE tb_emp7 
(
id      INT PRIMARY KEY,
name   VARCHAR(25) NOT NULL,
deptId  INT DEFAULT 1111, 
salary  FLOAT,
CONSTRAINT fk_emp_dept3  FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
--【例4.12】将数据表tb_dept1中name字段的数据类型由VARCHAR(22)的修改成VARCHAR(30)。
--输入如下SQL语句并执行。
ALTER TABLE tb_dept1
   ALTER COLUMN name TYPE VARCHAR(30);
--【例4.13】将数据表tb_dept1中的location字段名称改为loc,数据类型保持不变,SQL语句如下:
ALTER TABLE tb_dept1 RENAME location TO loc;
--【例4.14】在数据表tb_dept1中添加一个没有完整性约束的INT类型的字段managerId(部门经理编号),SQL语句如下:
ALTER TABLE tb_dept1 ADD COLUMN managerId INT;
--【例4.15】在数据表tb_dept1中添加一个不能为空的VARCHAR(12)类型的字段column1,SQL语句如下:
ALTER TABLE tb_dept1 ADD COLUMN column1 VARCHAR(12) not  null;
--删除字段的语法格式如下:
--ALTER TABLE <表名> DROP <字段名>;
--“字段名”指需要从表中删除的字段的名称。
--【例4.16】删除数据表tb_dept1表中的column2字段。
--删除column1字段,SQL语句如下:
ALTER TABLE tb_dept1 DROP column2;
--【例4.17】删除数据表tb_emp9中的外键约束。
--首先创建表tb_emp9,创建外键deptId关联tb_dept1表的主键id,SQL语句如下:
CREATE TABLE tb_emp9 
(
id      INT PRIMARY KEY,
name   VARCHAR(25),
deptId  INT,
salary   FLOAT,
CONSTRAINT fk_emp_dept  FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
--【例4.18】删除数据表tb_dept2,SQL语句如下:
DROP TABLE IF EXISTS tb_dept2;
--语句执行完毕之后,数据表列表中已经不存在名称为tb_dept2的表,删除操作成功。
--在数据库中创建两个关联表,首先,创建表tb_dept2,SQL语句如下:
CREATE TABLE tb_dept2 
(
id       INT PRIMARY KEY,
name    VARCHAR(22),
location  VARCHAR(50)
);
--接下来创建表tb_emp,SQL语句如下:
CREATE TABLE tb_emp 
(
id       INT PRIMARY KEY,
name    VARCHAR(25),
deptId   INT, 
salary   FLOAT,
CONSTRAINT fk_emp_dept  FOREIGN KEY (deptId) REFERENCES tb_dept2(id)
);
--首先直接删除父表tb_dept2,输入删除语句如下:
DROP TABLE tb_dept2;
--接下来,解除关联子表tb_emp的外键约束,SQL语句如下:
ALTER TABLE tb_emp DROP CONSTRAINT fk_emp_dept;
--语句成功执行后,将取消表tb_enp和表tb_dept2之间的关联关系,此时,可以输入删除语句,将原来的父表tb_dept2删除,SQL语句如下:
DROP TABLE tb_dept2;

上一篇下一篇

猜你喜欢

热点阅读