数据库第3章 数据库定义 笔记
一、SQL与数据库定义语言(DDL)
SQL分为四大类:
1. DDL(数据定义语言):负责建、删、改数据库和表结构
2. DML(数据操纵语言):负责增删改查表里的数据
3. DQL(数据查询语言):核心就是SELECT查询
4. DCL(数据控制语言):权限、角色管理
第3章核心就是DDL操作。
1. 数据库的定义、修改、删除
- 创建数据库
CREATE DATABASE IF NOT EXISTS student_db;
- 查看所有数据库
SHOW DATABASES;
- 使用/切换指定数据库
USE student_db;
- 修改数据库字符集
ALTER DATABASE student_db CHARACTER SET utf8mb4;
-删除数据库
DROP DATABASE IF EXISTS student_db;
2. 数据表的定义(建表)
建表基础语法,必须先选好数据库
CREATE TABLE IF NOT EXISTS student(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学生学号主键',
name VARCHAR(20) NOT NULL COMMENT '学生姓名',
age INT COMMENT '学生年龄',
gender VARCHAR(4) DEFAULT '男' COMMENT '性别',
major VARCHAR(30) COMMENT '专业',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) COMMENT = '学生信息表';
常用字段约束
- 主键: PRIMARY KEY 唯一非空,一张表只有一个
- 非空: NOT NULL 字段不能为空
- 唯一: UNIQUE 字段值不能重复
- 默认值: DEFAULT 没填内容时自动填充预设值
- 自增: AUTO_INCREMENT 数值自动+1
- 注释: COMMENT 给字段/表加说明
3. 修改数据表结构
-- 添加新字段
ALTER TABLE student ADD phone VARCHAR(11);
-- 修改字段类型和名称
ALTER TABLE student CHANGE phone tel VARCHAR(11);
-- 修改字段属性
ALTER TABLE student MODIFY age TINYINT NOT NULL;
-- 删除字段
ALTER TABLE student DROP COLUMN tel;
-- 修改表名
ALTER TABLE student RENAME TO stu_info;
4. 删除 & 清空表
-- 整张表直接删除
DROP TABLE IF EXISTS stu_info;
-- 清空表里所有数据,保留表结构
TRUNCATE TABLE student;
数据库第4章 数据库操作 笔记
本章核心是DML数据操纵语言,对表里的数据做增、删、改、基础查询。
一、数据插入(INSERT)
1. 全字段插入
INSERT INTO student(id,name,age,gender,major)
VALUES(1,'张三',19,'男','人工智能技术应用');
2. 省略自增主键、部分字段插入
INSERT INTO student(name,age,major)
VALUES('李四',20,'人工智能技术应用');
3. 批量一次性插入多条数据
INSERT INTO student(name,age,major)
VALUES
('王五',19,'软件技术'),
('赵六',21,'大数据技术');
二、数据更新修改(UPDATE)
非常重要:UPDATE必须加WHERE条件!不然会修改全表所有数据!
-- 单条数据修改
UPDATE student
SET age = 20 , major = '计算机应用'
WHERE name = '张三';
-- 批量条件修改
UPDATE student
SET age = age + 1
WHERE gender = '男';
三、数据删除(DELETE)
同样必须加WHERE条件,否则清空全表!
-- 删除指定一条数据
DELETE FROM student WHERE name = '赵六';
-- 删除符合条件的一批数据
DELETE FROM student WHERE age > 22;
DELETE 和 TRUNCATE 区别
对比项 DELETE TRUNCATE
作用 删除部分/全部数据 清空整张表全部数据
可回滚 可以事务回滚恢复 无法回滚
自增 自增ID不会重置 自增ID会从头重置
四、基础数据查询(基础DQL)
1. 查询整张表所有数据
SELECT * FROM student;
2. 查询指定字段
SELECT name,age,major FROM student;
3. 条件查询(WHERE过滤)
-- 单条件
SELECT * FROM student WHERE age = 19;
-- 多条件 AND 同时满足 / OR 满足其一
SELECT * FROM student
WHERE age >=18 AND major = '人工智能技术应用';
4. 排序查询
-- 升序 ASC(默认) 降序 DESC
SELECT * FROM student ORDER BY age DESC;
