GaussDB数据库何创建修改数据库和数据表的方法


    目录
  • 一、背景
  • 二、创建数据库和数据表
    • 1. 创建数据库
    • 2.创建数据表
  • 三、修改表结构
    • 1. 添加列
    • 2. 修改列
    • 3. 删除列
  • 四、添加约束
    • 1. 添加主键约束
    • 2. 添加外键约束
    • 3.添加唯一性约束
  • 五、示例代码
    • -- 创建数据库
    • -- 使用新创建的数据库
    • -- 创建 department 表
    • -- 创建 employee 表
    • -- 修改表结构:添加列
    • -- 修改表结构:修改列类型
    • -- 删除列
  • 六、 总结

    一、背景
    GaussDB 是一款由华为开发的企业级分布式数据库,具有高性能、高可用、高可靠性等特点,广泛应用于各种业务场景。本指南将介绍如何在 GaussDB 中创建数据库和数据表,修改表结构,并添加约束。
    二、创建数据库和数据表
    1. 创建数据库
    在 GaussDB 中创建数据库可以使用 `CREATE DATABASE` 语句。以下是一个创建名为 `example_db` 的数据库的示例:
    
CREATE DATABASE example_db;

    2.创建数据表
    在创建数据库之后,可以使用 `CREATE TABLE` 语句来创建数据表。以下是一个创建名为 `employee` 的数据表的示例,该表包含员工的基本信息:
    
CREATE TABLE employee (
 
    emp_id SERIAL PRIMARY KEY,
 
    first_name VARCHAR(50),
 
    last_name VARCHAR(50),
 
    birth_date DATE,
 
    hire_date DATE,
 
    salary NUMERIC(10, 2)
 
);

    三、修改表结构
    在实际使用中,可能需要对现有的数据表进行结构上的修改。可以使用 `ALTER TABLE` 语句来添加、修改或删除表中的列。
    1. 添加列
    以下是一个向 `employee` 表中添加 `department_id` 列的示例:
    
ALTER TABLE employee
 
ADD COLUMN department_id INT;

    2. 修改列
    以下是一个修改 `salary` 列的数据类型的示例:
    
ALTER TABLE employee
 
ALTER COLUMN salary TYPE DECIMAL(12, 2);

    3. 删除列
    以下是一个删除 `birth_date` 列的示例:
    
ALTER TABLE employee
 
DROP COLUMN birth_date;

    四、添加约束
    为了确保数据的完整性和一致性,可以在表上添加各种约束,包括主键、外键、唯一性约束等。
    1. 添加主键约束
    创建表时已经添加了主键约束。下面是一个单独添加主键约束的示例:
    
ALTER TABLE employee
 
ADD CONSTRAINT pk_emp_id PRIMARY KEY (emp_id);

    2. 添加外键约束
    以下是一个为 `employee` 表中的 `department_id` 列添加外键约束的示例,该列引用 `department` 表中的 `dept_id` 列:
    
ALTER TABLE employee
 
ADD CONSTRAINT fk_department
 
FOREIGN KEY (department_id) REFERENCES department(dept_id);

    3.添加唯一性约束
    以下是一个为 `employee` 表中的 `first_name` 和 `last_name` 列添加唯一性约束的示例:
    
ALTER TABLE employee
 
ADD CONSTRAINT unique_name
 
UNIQUE (first_name, last_name);

    五、示例代码
    综合以上内容,以下是一个完整的示例代码,包括创建数据库、创建表、修改表结构和添加约束:
    -- 创建数据库
    
CREATE DATABASE example_db;

    
    -- 使用新创建的数据库
    Use example_db
    
    -- 创建 department 表
    
CREATE TABLE department (
 
    dept_id SERIAL PRIMARY KEY,
 
    dept_name VARCHAR(100) NOT NULL
 
);

    
    -- 创建 employee 表
    
CREATE TABLE employee (
 
    emp_id SERIAL PRIMARY KEY,
 
    first_name VARCHAR(50),
 
    last_name VARCHAR(50),
 
    hire_date DATE,
 
    salary DECIMAL(12, 2),
 
    department_id INT,
 
    CONSTRAINT unique_name
 
    UNIQUE (first_name, last_name)
 
);

    
    -- 修改表结构:添加列
    
ALTER TABLE employee
 
ADD COLUMN birth_date DATE;

    
    -- 修改表结构:修改列类型
    
ALTER TABLE employee
 
ALTER COLUMN salary DECIMAL(14, 2);

    
    -- 删除列
    
ALTER TABLE employee
 
DROP COLUMN birth_date;

    
    六、 总结