1. 创建表格✍️
1.1 语法
CREATE TABLE 表名
(
列名 数据类型 列级完整性约束,
列名 数据类型 列级完整性约束,
......
列名 数据类型 列级完整性约束
);
- 表名:所要定义的基本表的名字
- 列名:组成该表的各个属性(列)
- 列级完整性约束条件:涉及相应属性列的完整性约束条件
- 表级完整性约束条件:涉及一个或多个属性列的完整性约束条件
- 常用完整性约束
主码约束: PRIMARY KEY
唯一性约束:UNIQUE
非空值约束:NOT NULL
参照完整性约束
- 常用完整性约束
1.2 示例
-- 创建学生表,属性:学号、姓名、性别、年龄、系
CREATE TABLE Student
(
Sno VARCHAR(5) NOT NULL UNIQUE,
Sname VARCHAR(20),
Ssex VARCHAR(20) check (Ssex='男' or Ssex='女'),
Sage int,
Sdept VARCHAR(15)
);
-- 创建课程表,属性:课程号、课程名、先行课、学分
CREATE TABLE Course(
Cno varCHAR(3),
Cname varCHAR(60),
Cpno varCHAR(3),
Ccredit int NOT NULL,
PRIMARY KEY(Cno),
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);
-- 创建选课表,属性:学号、课程号、成绩
CREATE TABLE SC(
Sno varCHAR(5),
Cno varCHAR(3),
Grade int,
Primary key (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
1.3 数据类型
1.3.1 数值类型
- 整数类型
名称 | 描述 | 存储空间 | 范围 |
---|---|---|---|
TINYINT | 微整数,别名为INT1。 | 1字节 | 0 ~ 255 |
SMALLINT | 小范围整数,别名为INT2。 | 2字节 | -32,768 ~ +32,767 |
INTEGER | 常用的整数,别名为INT4。 | 4字节 | -2,147,483,648 ~ +2,147,483,647 |
BINARY_INTEGER | 常用的整数INTEGER的别名。 | 4字节 | -2,147,483,648 ~ +2,147,483,647 |
BIGINT | 大范围的整数,别名为INT8。 | 8字节 | -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 |
int16 | 十六字节的大范围整数,目前不支持用户用于建表等使用。 | 16字节 | -170,141,183,460,469,231,731,687,303,715,884,105,728 ~ +170,141,183,460,469,231,731,687,303,715,884,105,727 |
1.3.2 布尔类型
名称 | 描述 | 存储空间 | 取值 |
---|---|---|---|
BOOLEAN | 布尔类型 | 1字节。 | true:真 false:假 null:未知(unknown) |
…
完整介绍:opengauss数据类型
2. 插入数据🟢
2.1 语法
INSERT INTO 表名 (属性名1,...,属性名n) VALUES(值1,...,值n)
2.1 示例
INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (‘23001','苏珊','女','IS',18);
INSERT INTO Student VALUES (‘23002’,'梅狸猫','男',18,'CS');
3. 修改数据🟡
3.1 修改表格
- 语法:
- 增加新列和新的完整性约束条件
ALTER TABLE 表名 ADD 属性名 数据类型 完整性约束
- 删除指定的完整性约束条件
ALTER TABLE 表名 DROP 完整性约束名
- 用于修改列名和数据类型
ALTER TABLE 表名 MODIFY 属性名 数据类型
- 增加新列和新的完整性约束条件
- 示例:
-- 向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD Scome DATE;
-- 将年龄的数据类型改为半字长整数
ALTER TABLE Student MODIFY Sage SMALLINT;
注:不论基本表中原来是否已有数据,新增加的列一律为空值。
3.2 修改数据
- 语法
update table set 属性=修改值 where 属性=属性值
- 示例
update student set ssex='女' where sno='23002';
update student set sage=sage+2;
4. 删除数据🔴
4.1 删除表格
- 语法:
DROP TABLE 表名
- 示例:
-- 删除Student表
DROP TABLE Student;
4.2 删除属性列
- 语法:
ALTER TABLE Student Drop 属性
; - 示例:
ALTER TABLE Student Drop Scome;
4.3 删除数据
- 语法:
delete from table where 属性= 属性值
; - 示例:
delete from student where sno='23002';
delete from sc;
alter table sc disable trigger all;
update sc set sno='23000' where sno='23001';
update student set sno='23000' where sno='23001';
alter table sc enable trigger all;
5. 参考🗺️
opengauss:数据类型
…