使用SQL建立数据库是数据库管理的基础操作,主要通过结构化查询语言(SQL)中的DDL(数据定义语言)语句完成,整个过程涉及数据库的创建、表的设计、字段的定义以及约束的设置等步骤,以下是详细的使用指南:
创建数据库
在SQL中,使用CREATE DATABASE
语句可以创建新的数据库,基本语法为:
CREATE DATABASE 数据库名;
创建一个名为company_db
的数据库:
CREATE DATABASE company_db;
执行后,数据库管理系统(如MySQL、PostgreSQL)会创建一个空的数据库文件或逻辑结构,若需指定字符集和排序规则,可添加选项:
CREATE DATABASE company_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8mb4
支持存储包括emoji在内的Unicode字符,utf8mb4_unicode_ci
是常用的排序规则。
选择数据库
创建数据库后,需使用USE
语句指定当前操作的数据库:
USE company_db;
之后的所有表操作将默认在该数据库下执行。
设计表结构
表是数据库中存储数据的逻辑结构,设计表需明确字段名、数据类型、约束条件等,设计一个员工表employees
,包含员工ID、姓名、部门、入职日期和薪资等字段,常见数据类型如下:
数据类型 | 描述 | 示例 |
---|---|---|
INT | 整数 | age INT |
VARCHAR(n) | 可变长度字符串,n为最大长度 | name VARCHAR(50) |
DATE | 日期(年-月-日) | hire_date DATE |
DECIMAL(m,d) | 精确小数,m为总位数,d为小数位 | salary DECIMAL(10,2) |
BOOLEAN | 布尔值(TRUE/FALSE) | is_active BOOLEAN |
创建表
使用CREATE TABLE
语句创建表,并定义字段和约束:
CREATE TABLE employees ( employee_id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, department VARCHAR(30), hire_date DATE NOT NULL, salary DECIMAL(10,2), is_active BOOLEAN DEFAULT TRUE );
PRIMARY KEY
:主键约束,确保字段值唯一且非空,每个表只能有一个主键。NOT NULL
:约束字段值不能为空。DEFAULT
:设置默认值,如is_active
默认为TRUE
。
添加约束
约束用于保证数据的完整性和一致性,常见约束包括:
唯一约束(UNIQUE):确保字段值唯一,但允许空值,例如添加邮箱字段:
ALTER TABLE employees ADD CONSTRAINT unique_email UNIQUE (email);
外键约束(FOREIGN KEY):建立表间关联,例如创建部门表
departments
,并在员工表中添加外键:CREATE TABLE departments ( department_id INT PRIMARY KEY, department_name VARCHAR(30) NOT NULL ); ALTER TABLE employees ADD CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id);
检查约束(CHECK):限制字段值范围,例如确保薪资大于0:
ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary > 0);
修改表结构
创建表后,可使用ALTER TABLE
语句修改表结构:
- 添加字段:
ALTER TABLE employees ADD COLUMN phone VARCHAR(20);
- 修改字段类型:
ALTER TABLE employees MODIFY COLUMN name VARCHAR(60);
- 删除字段:
ALTER TABLE employees DROP COLUMN phone;
删除数据库或表
若需删除数据库或表,使用DROP
语句:
DROP TABLE employees; -- 删除表 DROP DATABASE company_db; -- 删除数据库
注意:DROP
操作不可逆,会永久删除数据,需谨慎使用。
数据库管理最佳实践
- 命名规范:使用有意义的名称,避免保留字(如
order
、key
)。 - 备份:定期备份数据库,防止数据丢失。
- 索引优化:对查询频繁的字段(如外键、条件字段)创建索引,提高查询速度:
CREATE INDEX idx_name ON employees(name);
相关问答FAQs
Q1: 如何查看已创建的数据库和表?
A1: 使用以下命令查看数据库列表和表列表:
- 查看所有数据库:
SHOW DATABASES;
- 查看当前数据库的表:
SHOW TABLES;
- 查看表结构:
DESCRIBE employees;
或SHOW COLUMNS FROM employees;
Q2: 如何修改数据库的字符集?
A2: 若需修改已存在数据库的字符集,可使用ALTER DATABASE
语句:
ALTER DATABASE company_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
此操作会影响数据库中所有新创建的表,但已存在的表字符集需单独修改。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复