【数据库技术】SQL概述与数据定义(DDL:CREATE/DROP/ALTER)

考点频率 :★★★★☆(选择题常考,是后续DML操作的基础)

难度 :⭐⭐

建议:掌握DDL的三个核心命令,重点理解数据类型、约束条件的定义方式

1️⃣ 什么是SQL?

SQL(Structured Query Language,结构化查询语言) 是关系数据库的标准语言,用于管理数据库中的数据。

打个比方 :SQL就像你和数据库之间的对话语言------你对数据库说"我要查这些数据"、"我要创建一张新表"、"我要更新这条记录",数据库听得懂并执行。没有SQL,你就只能通过图形界面点点点,无法精确控制。

SQL语言按功能分为四大类:

分类 英文 核心命令 作用
数据定义语言 DDL CREATE, DROP, ALTER 定义数据库结构(表、索引、视图等)
数据操纵语言 DML SELECT, INSERT, UPDATE, DELETE 对数据进行查询和更新
数据控制语言 DCL GRANT, REVOKE 控制用户权限
事务控制语言 TCL COMMIT, ROLLBACK, SAVEPOINT 管理事务

DDL是今天的主角,用于创建、修改、删除数据库对象(如表、索引、视图)。

2️⃣ 数据定义语言(DDL)

2.1 CREATE------创建数据库对象

CREATE TABLE 是最常用的DDL命令,用于创建一张新表。

基本语法

sql 复制代码
CREATE TABLE 表名 (
    列名1 数据类型 [约束条件],
    列名2 数据类型 [约束条件],
    ...
    [表级约束条件]
);

示例

sql 复制代码
CREATE TABLE 学生表 (
    学号 CHAR(8) PRIMARY KEY,
    姓名 VARCHAR(20) NOT NULL,
    性别 CHAR(1) CHECK (性别 IN ('男', '女')),
    年龄 INT CHECK (年龄 >= 0 AND 年龄 <= 120),
    班级号 CHAR(4),
    入学日期 DATE
);

常见数据类型(软考常考):

数据类型 说明 示例
INT 整数 年龄
CHAR(n) 定长字符串(n个字符) 学号 CHAR(8)
VARCHAR(n) 变长字符串(最多n个字符) 姓名 VARCHAR(20)
DATE 日期 出生日期
DECIMAL(p,s) 定点数(p位总长,s位小数) 金额
FLOAT 浮点数 科学计算

CHAR vs VARCHARCHAR(10) 占用固定10个字符空间,VARCHAR(10) 按实际长度分配。学号用CHAR(长度固定),姓名用VARCHAR(长度不固定)。

2.2 ALTER------修改表结构

ALTER TABLE 用于修改已存在的表结构。

操作类型 语法示例 说明
添加列 ALTER TABLE 表名 ADD 列名 数据类型 [约束]; 增加一个新字段
修改列 ALTER TABLE 表名 MODIFY 列名 新数据类型; 修改字段类型(不同DBMS语法不同)
删除列 ALTER TABLE 表名 DROP COLUMN 列名; 删除一个字段
添加约束 ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束; 增加约束条件
删除约束 ALTER TABLE 表名 DROP CONSTRAINT 约束名; 删除约束条件

示例

sql 复制代码
-- 添加一个字段
ALTER TABLE 学生表 ADD 联系电话 VARCHAR(15);

-- 修改字段类型(MySQL)
ALTER TABLE 学生表 MODIFY 年龄 SMALLINT;

2.3 DROP------删除数据库对象

DROP TABLE 用于删除整张表(包括表结构和所有数据)。

基本语法

sql 复制代码
DROP TABLE 表名;

示例

sql 复制代码
-- 删除学生表(数据也没了)
DROP TABLE 学生表;

DROP vs DELETE

  • DROP TABLE:删除表结构+所有数据(表彻底消失)
  • DELETE FROM 表名:只删除数据,表结构还在

3️⃣ 完整性约束

CREATE TABLE 中的约束条件分为列级约束表级约束

约束类型 作用 示例
PRIMARY KEY 主键约束(唯一+非空) 学号 CHAR(8) PRIMARY KEY
FOREIGN KEY 外键约束(参照完整性) FOREIGN KEY (班级号) REFERENCES 班级表(班级号)
UNIQUE 唯一约束 身份证号 VARCHAR(18) UNIQUE
NOT NULL 非空约束 姓名 VARCHAR(20) NOT NULL
CHECK 检查约束(用户定义完整性) 年龄 INT CHECK (年龄 >= 0 AND 年龄 <= 120)
DEFAULT 默认值 性别 CHAR(1) DEFAULT '男'

完整示例(带多种约束):

sql 复制代码
CREATE TABLE 选课表 (
    学号 CHAR(8),
    课程号 CHAR(4),
    成绩 INT CHECK (成绩 >= 0 AND 成绩 <= 100),
    PRIMARY KEY (学号, 课程号),                    -- 表级主键(组合)
    FOREIGN KEY (学号) REFERENCES 学生表(学号),    -- 表级外键
    FOREIGN KEY (课程号) REFERENCES 课程表(课程号) -- 表级外键
);

4️⃣ 经典例题

例题1:以下哪个命令属于数据定义语言(DDL)?

A. SELECT

B. INSERT

C. DROP

D. UPDATE

解析SELECTINSERTUPDATE 都属于DML(数据操纵语言)DROP 属于DDL(数据定义语言) 。选 C


例题2:创建一张"员工"表,包含字段:员工号(主键)、姓名(非空)、年龄(0-100)、部门号(外键,引用部门表的部门号)。请写出CREATE TABLE语句。

解析

sql 复制代码
CREATE TABLE 员工 (
    员工号 CHAR(6) PRIMARY KEY,
    姓名 VARCHAR(20) NOT NULL,
    年龄 INT CHECK (年龄 >= 0 AND 年龄 <= 100),
    部门号 CHAR(4),
    FOREIGN KEY (部门号) REFERENCES 部门表(部门号)
);

答案:如上。

5️⃣ 记忆口诀

DDL三兄弟:建(CREATE)删(DROP)改(ALTER)。

CREATE建表定结构,DROP整张表全丢。

ALTER改结构,加列删列改类型。

约束口诀

主键唯一且非空,外键参照不能空。

非空唯一加检查,数据完整有保障。

6️⃣ 小测验(评论区对答案)

下列关于SQL语言的叙述中,错误的是( )。

A. CREATE TABLE 属于数据定义语言(DDL)

B. ALTER TABLE 可以修改表的结构

C. DROP TABLE 只删除表中的数据,不删除表结构

D. 约束条件可以在创建表时定义,也可以通过ALTER添加

🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #SQL #DDL #CREATE #DROP #ALTER #数据库技术基础 #软考备考

相关推荐
一条破秋裤29 分钟前
STM32 学习笔记:GPIO 输出原理与硬件设计
笔记·stm32·学习
数据库小学妹30 分钟前
关系型数据库内置图查询来了:SQL/PGQ标准怎么用
数据库·图数据库·关系型数据库·图查询·数据库新特性
pnoker1 小时前
IoT DC3 时序存储选型:四款数据库可插拔
数据库·物联网·postgresql·时序数据库·influxdb·tdengine·iotdb
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发进阶 阅读笔记 24
spring boot·笔记·后端
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 22
javascript·spring boot·笔记
黑臂麒麟1 小时前
HarmonyOS鸿蒙实战应用6:随手账本——Preferences本地持久化
数据库·华为·app·鸿蒙
一条破秋裤1 小时前
STM32 学习笔记:OLED 调试工具与 Keil 在线调试
笔记·stm32·学习
2601_962174171 小时前
小试牛刀-SpringBoot集成SOL链
数据库·spring boot·后端