考点频率 :★★★★☆(选择题常考,是后续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 VARCHAR :
CHAR(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
解析 :SELECT、INSERT、UPDATE 都属于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 #数据库技术基础 #软考备考