一、学习知识点概要

(一)数据库基础概念
- 数据库(DB)、数据库管理系统(DBMS)定义
- 表(Table)结构:列、行、主键概念及规则
(二)SQL 语句分类
- DDL(数据定义语言):含 CREATE、DROP、ALTER 操作
- DML(数据操纵语言):含 SELECT、INSERT、UPDATE、DELETE 操作
- DCL(数据控制语言):含 COMMIT、ROLLBACK、GRANT/REVOKE 操作
(三)数据库与表的创建
- 数据库创建(CREATE DATABASE)语法
- 表创建(CREATE TABLE)语法,含数据类型(INTEGER、CHAR 等 )、约束(NOT NULL、PRIMARY KEY )设置
(四)表的维护操作
表删除(DROP TABLE )、结构修改(ALTER TABLE 增删列 )、清空(TRUNCATE TABLE )
(五)数据操作(DML)
- 更新(UPDATE)语法、多列更新及 NULL 清空规则
- 插入(INSERT)语法,含全列省略、多行插入、默认值 / 复制数据插入方式
二、学习内容
(一)数据库基础概念
- 数据库(DB):是存储大量数据,经计算机加工后可高效访问的数据集合 ,像一个 “数据仓库”,有序存放各类信息。
- 数据库管理系统(DBMS):管理数据库的计算机系统,能对数据库、表等对象进行创建、删除、修改等操作,是用户和数据库间的 “桥梁” 。
- 表(Table)结构
- 列(Column):表的字段,是表数据的基本组成单元,比如 “商品表” 里的 “商品名称”“销售单价” 列 。
- 行(Row):表的一条记录,对应实际业务里的一个个体数据,如 “商品表” 中一行就是一个商品的完整信息 。
- 主键(Primary Key):唯一标识行的列,需满足非空、不重复、不更新重用,确保能精准定位某一行数据,像 “商品编号” 设为主键,可唯一找对应商品记录 。
(二)SQL 语句分类
- DDL(数据定义语言):操作数据库、表结构 。
- CREATE:创建数据库、表,比如
CREATE DATABASE shop;创建名为 shop 的数据库 。 - DROP:删除数据库、表,如
DROP TABLE product;删除 product 表 。 - ALTER:修改数据库、表结构,像
ALTER TABLE product ADD COLUMN product_name_pinyin VARCHAR(100);给 product 表加新列 。
- CREATE:创建数据库、表,比如
- DML(数据操纵语言):操作表记录 。
- SELECT:查询数据,用于从表中获取所需信息,如
SELECT * FROM product;查 product 表所有数据 。 - INSERT:插入数据,可全列省略、多行插入,例
INSERT INTO products VALUES ('0005','高压锅','厨房用具',6800,5000,'2009-01-15');。 - UPDATE:更新数据,需注意加 WHERE 条件避免全表更新,如
UPDATE product SET sale_price = sale_price * 10 WHERE product_type = '厨房用具';。 - DELETE:删除数据,结合 WHERE 删指定记录,如
DELETE FROM product WHERE product_id = '0008';。
- SELECT:查询数据,用于从表中获取所需信息,如
- DCL(数据控制语言):管理变更与权限 。
- COMMIT:确认对数据库的变更,让修改永久生效 。
- ROLLBACK:回滚变更,取消未提交的操作,恢复数据到之前状态 。
- GRANT/REVOKE:赋予 / 收回用户操作权限,控制用户对数据库对象的访问能力 。
(三)数据库与表的创建
- 数据库创建:用
CREATE DATABASE <名称>语法,如CREATE DATABASE shop;,创建后可在其中建表存数据 。 - 表的创建:
CREATE TABLE <表名>(<列名1> <数据类型> <约束>,…)。- 数据类型:
- INTEGER:存整数,不能有小数,像 “销售数量” 可用该类型 。
- CHAR:定长字符串,长度不足用半角空格补足,因浪费空间少用 。
- VARCHAR:可变长字符串,长度不足不补足,适合存长度不固定内容,如 “商品名称” 。
- DATE:存日期(年月日),规范日期数据存储 。
- 约束
- NOT NULL:列必须输入数据,保证数据完整性,如 “商品名称” 设为 NOT NULL,避免空值影响业务 。
- PRIMARY KEY:设为主键列,唯一标识行,如 “product_id” 设为主键,确保每行商品编号唯一 。
- 数据类型:
(四)表的维护操作
- 删除表:
DROP TABLE <表名>,如DROP TABLE product;,会彻底删除表及数据,操作要谨慎 。 - 修改表结构
- 添加列:
ALTER TABLE <表名> ADD COLUMN <列定义>,如ALTER TABLE product ADD COLUMN product_name_pinyin VARCHAR(100);。 - 删除列:
ALTER TABLE <表名> DROP COLUMN <列名>,如ALTER TABLE product DROP COLUMN product_name_pinyin;。
- 添加列:
- 清空表:
TRUNCATE TABLE <表名>,快速清空表数据,不同于 DELETE(可带条件删),它是整体清除 。
(五)数据操作(DML)
- 更新(UPDATE):语法
UPDATE <表名> SET 列=值 [WHERE 条件]。- 多列更新可用逗号分隔,如
UPDATE product SET sale_price = sale_price * 10, purchase_price = purchase_price / 2 WHERE product_type = '厨房用具';。 - 若要将列值设为 NULL(列允许时),直接写
SET 列=NULL,如UPDATE product SET regist_date = NULL WHERE product_id = '0008';,无 WHERE 会全表更新,需谨慎 。
- 多列更新可用逗号分隔,如
- 插入(INSERT):语法
INSERT INTO <表名>(列1,列2,…) VALUES(值1,值2,…)。- 全列省略时,值按列顺序赋给每一列,如
INSERT INTO products VALUES ('0005','高压锅','厨房用具',6800,5000,'2009-01-15');。 - 多行插入在支持的数据库(如 DB2、SQL Server 等 )中可批量写 VALUES,像
INSERT INTO products VALUES ('0002','打孔器','办公用品',500,320,'2009-09-11'),('0003','运动T恤','衣服',4000,2800,NULL);。 - 插入默认值可通过 CREATE TABLE 时设 DEFAULT 约束,如
CREATE TABLE products (sale_price INTEGER DEFAULT 0 …),插入时未赋值则用默认值 。 - 还能用
INSERT … SELECT从其他表复制数据,如INSERT INTO productcopy (product_id, …) SELECT product_id, … FROM Product;,快速迁移数据 。
- 全列省略时,值按列顺序赋给每一列,如
三、学习问题与解答
问题 1:创建表时,怎么选 CHAR 和 VARCHAR 数据类型?
解答:若存储的字符串长度固定,且长度短,如 “性别(男 / 女)”,用 CHAR;若长度不固定,像 “商品描述” 这类可能长短不一的内容,选 VARCHAR,它更节省空间(长度不足时不补足空格 )。
问题 2:执行 UPDATE 语句没加 WHERE,全表数据被改了,能恢复吗?
解答:若没执行 COMMIT(在事务里),可 ROLLBACK 回滚;若已 COMMIT,部分数据库可借助备份恢复,或用日志回退(不同 DBMS 恢复方式有差异,日常操作要养成加 WHERE 条件的习惯 )。
问题 3:INSERT 插入 NULL 时,有啥限制?
解答:要插入 NULL 的列不能设 NOT NULL 约束,否则插入失败,需先确认列约束再操作 。
四、学习思考与总结
数据库与表的基础概念是 SQL 操作根基,理解主键、行列结构,才能精准设计与操作;SQL 语句分类明确,需牢记语法场景,表创建时数据类型和约束设置影响数据质量,表维护与数据操作要谨慎,避免数据丢失混乱。学习时结合实际案例(如商品表操作),能让抽象的 SQL 语法变具体,理解更深刻 。多动手写代码,从简单的创建数据库、表,到插入、更新数据,逐步实践,发现问题再回头查知识点,强化记忆 。

被折叠的 条评论
为什么被折叠?



