MySQL学习笔记:从基础到进阶
- IT业界
- 2025-09-02 08:18:01

一、数据库简介
数据库是按照数据结构来组织、存储和管理数据的仓库,MySQL 是一种常用的关系型数据库管理系统,以其开源、高效、可靠等特点广泛应用于各种 Web 应用开发中。
二、MySQL 数据库的安装与卸载安装 MySQL 需注意选择合适的版本,安装过程中配置好相关参数,如端口号、字符集等。卸载时要确保彻底删除相关文件和注册表信息,避免残留数据影响后续安装。
三、MySQL 数据库概念 数据库:存放数据的集合,可包含多个表。表:由行(记录)和列(字段)组成,用于存储具体的数据。字段:表中的列,定义数据的类型和约束。记录:表中的行,包含一组相关的数据值。 四、SQL 语言SQL(Structured Query Language)即结构化查询语言,用于数据库的通信和操作。
分类: 数据定义语言(DDL):用于创建、修改和删除数据库对象,如数据库、表等。数据操作语言(DML):用于对数据库中的数据进行增、删、改、查操作。数据控制语言(DCL):用于控制数据库的访问权限等。 五、数据库的操作(CURD) 创建数据库: CREATE DATABASE database_name; 查看数据库: SHOW DATABASES; 删除数据库: DROP DATABASE database_name; 修改数据库:较少直接修改数据库,通常通过修改数据库配置文件实现。 六、表结构操作(CURD) 创建表: CREATE TABLE table_name ( field1 type(length) constraint, field2 type(length) constraint, field3 type(length) constraint );注意事项:
表定义用小括号,结尾加分号。字段间用逗号分隔,最后一个字段后无逗号。字符串类型需指定长度,int 默认长度 11。 执行 SQL 语句: SELECT DATABASE();:查询当前使用的数据库。USE database_name;:选择要使用的数据库。执行创建表语句。 查看表信息: DESC table_name; 七、数据库的数据类型 数值类型:如INT(整数)、DOUBLE(浮点数)等。日期和时间类型:如DATE(日期)、DATETIME(日期时间)等。字符串类型:如VARCHAR(可变长度字符串)、CHAR(固定长度字符串)、TEXT(大文本)等。 八、单表的约束 主键约束(重要)代表记录的唯一标识。 关键字:primary key 通过该关键字声明某一列为主键。唯一 值就不能相同非空 值也不能为空被引用 (和外键一起来使用) create table dept( did int primary key auto_increment, dname varchar(30) ); create table emp( eid int primary key auto_increment, ename varchar(30), sal double, dno int ); insert into dept values (1,'研发部'); insert into dept values (2,'人事部'); insert into emp values (null,'聪聪',15000,1); insert into emp values (null,'邦邦',5000,1); insert into emp values (null,'美美',6000,2); insert into emp values (null,'小凤',8000,2); insert into emp values (null,'如花',8000,null); 问题: * 直接把研发部删除掉。delete from dept where did = 1; 能删除成功。 * 在现实生活中,不合理。如果你避免问题的发生,两个表之间设置关系。 1. 引入外键的约束 2. 添加外键 * 正常的情况下(一个部门有多个员工,一个员工只能属于一个部门) * 设置员工标签的dno字段,作为外键,指向部门表的主键。 * 修改员工的表,在员工添加外键。 * alter table emp add foreign key emp (dno) references dept (did); 3. 直接添加外键 * 在创建表的时候,指定外键 create table emp( eid int primary key auto_increment, ename varchar(30), sal double, dno int, foreign key emp(dno) references dept (did) ); 3.直接删除部门,这回不行了。 delete from dept where did = 1;对于外键的设置,一对多的情况下,在多的一方增加字段作为外键指向一的那一方的主键。比如上面例子中的员工和部门。
九、删除和查看表 删除表: DROP TABLE table_name; 查看表: SHOW TABLES; 十、修改表 添加字段: ALTER TABLE table_name ADD column_name type; 修改字段: ALTER TABLE table_name MODIFY column_name new_type; 删除字段: ALTER TABLE table_name DROP column_name; 十一、数据的操作(CRUD) 插入数据(INSERT): INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...); 修改数据(UPDATE): UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; 删除数据(DELETE): DELETE FROM table_name WHERE condition; 查询数据(SELECT): 基本查询: SELECT column1, column2 FROM table_name; 使用运算和别名: SELECT column1 + column2 AS sum_result FROM table_name; 使用 WHERE 条件过滤: SELECT * FROM table_name WHERE column_name = value; WHERE 子句中的运算:如比较运算(<, >, <=, >=, <>)、逻辑运算(AND, OR, NOT)等。ORDER BY 排序 SELECT * FROM table_name ORDER BY column_name ASC|DESC; 十二、聚集函数 COUNT 记数: SELECT COUNT(column_name) FROM table_name; SUM 求和: SELECT SUM(column_name) FROM table_name; AVG 求平均值: SELECT AVG(column_name) FROM table_name; MAX 求最大值: SELECT MAX(column_name) FROM table_name; MIN 求最小值: SELECT MIN(column_name) FROM table_name; 十三、分组(GROUP BY) 使用 GROUP BY 字段进行分组: SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1; HAVING 过滤分组结果: SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;HAVING 和 WHERE 均可实现过滤,但 HAVING 可使用聚集函数,WHERE 不能,HAVING 通常跟在 GROUP BY 之后。
十四、多表查询 内连接: 显式内连接: SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; 隐式内连接: SELECT * FROM table1, table2 WHERE table1.column = table2.column; 外连接: 左外连接: SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.column = table2.column; 右外连接: SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.column = table2.column;子查询:在一个查询中嵌套另一个查询,如:
SELECT * FROM table1 WHERE column > (SELECT AVG(column) FROM table1); 十五、表的设计 一对多关系:一个表中的一条记录对应另一个表中的多条记录。多对多关系:两个表中的多条记录相互对应,通常通过中间表实现。一对一关系:两个表中的记录一一对应,较少使用。MySQL学习笔记:从基础到进阶由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“MySQL学习笔记:从基础到进阶”
下一篇
SVM对偶问题