文章目录
1 表操作
表操作我们直接在管理工具上进行。
如果在工具连接过程中出现 no pg_hba.conf entry for host...,则需要修改 /var/lib/pgsql/11/data/pg_hba.conf 文件,将错误信息里面提到的IP加入到配置文件IPV4里,设置为信任trust。
1.1.1 创建表
标准的SQL语句,与MySQL相同,略。
1.1.2 修改表名
alter table <tablename> rename to <newtablename>
例如:
alter table tb_user rename to tb_user_1;
1.1.3 删除表
drop table [if exists] <tablename>
例如:
drop table [if exists] tb_user;
1.1.4 字段操作
1.1.4.0 字段类型
| 类型 | 说明 | 所需字节 |
|---|---|---|
| SMALLINT | 小范围整数 | 2byte |
| INT | 普通整数 | 4byte |
| BIGINT | 大范围整数 | 8byte |
| FLOAT(N) | n表示小数范围 | 4byte |
| REAL | 至少6位十进制数字精度 | 4byte |
| DOUBLE PRECISION | 至少15位十进制数字精度/FLOAT | 8byte |
| NUMBERIC(M,N) | M代表位数,N代表小数位数 例如68.32,M=4,N=2 | |
| TIME | 时间,格式HH:MM:SS 输入值可以是23:01:02,也可以是230102 也可以是当前时间now()或者CURRENT_TIME | 8byte |
| DATE | 日期,格式YYYY-MM-DD/YY-MM-DD 输入值可以是2018-12-21,也可以是20181221 也可以是当前日期now()或者CURRENT_TIME | 4byte |
| TIMESTAMP | 日期时间,格式YYYY-MM-DD HH:MM:SS | 8byte |
| CHAR(N) | 固定长度字符串,不足补空白 | |
| VARCHAR(N) | 可变长度字符串,有长度限制 | |
| TEXT | 可变长度字符串,无长度限制 | |
| BYTEA | 二进制字符串 | |
| BOOLEAN | 布尔类型 | |
| XXX[] | 数组类型,XXX |
- 整数正常使用INT即可,小数使用浮点数;
- CHAR固定长度,速度快,但是占空间。
1.1.4.1 修改字段类型
alter table <tablename> alter column <columnname> type <newtype>;
例如:
alter table tb_class alter column classname type varchar(40);
1.1.4.2 修改字段名
alter table <tablename> rename <columnname> to <newcolumnname>;
例如:
alter table tb_class rename classname to classname1;
1.1.4.3 添加字段
alter table <tablename> add column <columnname> <type>
例如:
alter table tb_class add column teacher varchar(20);
1.1.4.4 删除字段
alter table <tablename> drop <columnname>
例如:
alter table tb_class drop teacher;
1.1.4.5 主键约束
-
第一种情况
CREATE TABLE tb_user( userid VARCHAR(20) PRIMARY KEY, --主键约束 username VARCHAR(20), PASSWORD VARCHAR(20), classid varchar(20), ) -
第二种情况
create table tb_class( classid varchar(20), classname varchar(20), PRIMARY key(classid) --主键约束 ) -
第三种情况
alter table tb_user add primary key(userid); -
联合主键
create table tb_class( classid varchar(20), classname varchar(20), PRIMARY key(classid,classname) )
1.1.4.6 外键约束
-
第一种情况
CREATE TABLE tb_user( userid VARCHAR(20), username VARCHAR(20), PASSWORD VARCHAR(20), classid varchar(20), FOREIGN KEY(classid) REFERENCES tb_class(classid) ) -
第二种情况
CREATE TABLE tb_user( userid VARCHAR(20), username VARCHAR(20), PASSWORD VARCHAR(20), classid varchar(20), CONSTRAINT fk_user_classid FOREIGN KEY(classid) REFERENCES tb_class(classid) ) -
第三种情况
alter table tb_user add CONSTRAINT fk_user_classid FOREIGN KEY(classid) REFERENCES tb_class(classid); -
删除外键约束
alter table tb_user drop CONSTRAINT fk_user_classid;
1.1.4.7 唯一约束
-
第一种情况
create table tb_class( classid varchar(20), classname varchar(20) UNIQUE ) -
第二种情况
create table tb_class( classid varchar(20), classname varchar(20), CONSTRAINT UNQ_CLASSNAME UNIQUE(classname) ) -
第三种情况
alter table tb_class add CONSTRAINT UNIQ_CLASSNAME UNIQUE(classname);
1.1.4.8 非空约束
create table tb_class(
classid varchar(20),
classname varchar(20) NOT null
)
1.1.4.9 默认值
create table tb_class(
classid varchar(20),
classname varchar(20) default '一年级1班'
)
本文详细介绍了SQL中表的各种操作,包括创建、修改、删除表,字段的增删改查,以及主键、外键、唯一、非空和默认值等约束的使用。通过实例展示了如何在PostgreSQL中执行这些操作。
:表操作&spm=1001.2101.3001.5002&articleId=86069344&d=1&t=3&u=71fec3eb0b4c4403a9b52b3e1f4df13f)
3603

被折叠的 条评论
为什么被折叠?



