MySQL从入门到实战:数据库原理、SQL基础与多表查询详解

发布时间:2026/6/10 12:44:15

MySQL从入门到实战:数据库原理、SQL基础与多表查询详解 MySQL从入门到实战数据库原理、SQL基础与多表查询详解一、数据库基础知识1.1 数据的分类结构化数据可用二维表逻辑表达有固定格式和有限长度。如关系数据库中的表。半结构化数据不符合关系型数据模型但包含标记分隔语义。如JSON、XML。非结构化数据无固定结构整体存储。如音视频、二进制文件。1.2 数据管理发展三个主要阶段阶段时间特点人工管理50年代中期以前科学计算无管理软件批处理文件系统50年代后期-60年代中期磁盘出现文件形式管理可长期保存数据库系统60年代后期至今大容量磁盘数据模型独立性强冗余低1.3 数据库管理系统DBMS核心功能数据定义DDL、数据操作DML、数据组织与存储、运行管理、维护、保护、通信。数据库语言DDLCREATE DROP ALTERDMLINSERT DELETE UPDATEDQLSELECTDCLGRANT REVOKETCLBEGIN COMMIT ROLLBACK1.4 关系型数据库理论E-R模型实体矩形、属性椭圆、联系菱形。联系类型1:1 1:n m:n。三大范式1NF原子性每个字段不可再分。2NF消除部分依赖针对联合主键。3NF消除传递依赖。二、MySQL安装与基本使用2.1 MySQL历史与分支创始人 Michael “Monty” Widenius主要分支官方MySQL、Percona Server、MariaDB2.2 MySQL多实例同一台服务器运行多个MySQL进程不同端口3306、3307等。优点节约硬件资源便于对比测试。缺点资源抢占存在单点风险。2.3 MySQL主要组成程序类型常用程序服务端mysqld_safe mysqld mysqld_multi客户端mysql mysqldump mysqladmin管理工具myisamchk myisampack2.4 MySQL客户端常用选项mysql-uroot-p-h127.0.0.1-P3306-Ddatabase_name常用选项-u -p -h -P -e --prompt -HHTML输出 -XXML输出交互式命令\s查看状态\u切换数据库\!执行系统命令source执行SQL脚本。2.5 mysqladmin工具用途管理MySQL服务器创建/删除数据库修改密码刷新日志关闭服务等常用命令mysqladmin status mysqladmin create db_name mysqladmin drop db_name mysqladmin passwordnewpassmysqladmin flush-logs mysqladminshutdown三、SQL语言3.1 数据类型重点分类类型说明整数TINYINT INT BIGINT有符号/无符号浮点FLOAT DOUBLE近似值定点数DECIMAL精确小数适合金额日期时间DATE TIME DATETIME TIMESTAMP YEAR字符串CHAR(n) VARCHAR(n) TEXTCHAR定长VARCHAR变长枚举ENUM从固定值中选择一个集合SET可多选二进制BLOB BINARY3.2 DDL数据定义语言创建数据库CREATEDATABASEIFNOTEXISTSdb_nameCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;修改数据库ALTER DATABASE删除数据库DROP DATABASE创建表CREATETABLEstudent(idINTUNSIGNEDAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(20)NOTNULL,ageTINYINTUNSIGNED,genderENUM(M,F)DEFAULTM)ENGINEInnoDBDEFAULTCHARSETutf8mb4;复制表结构CREATE TABLE new_tbl LIKE old_tbl;复制表数据CREATE TABLE new_tbl AS SELECT ... FROM old_tbl;查看表结构DESC tbl_name;或SHOW CREATE TABLE tbl_name;修改表ALTER TABLE tbl_name ADD/DROP/MODIFY/CHANGE COLUMN ...删除表DROP TABLE tbl_name;3.3 DML数据操作语言INSERTINSERTINTOstudent(name,age)VALUES(张三,20);INSERTINTOstudentVALUES(NULL,李四,22,M);INSERTINTOstudentSETname王五,age21;UPDATE务必加WHERE条件否则全表更新。UPDATEstudentSETage23WHEREid1;DELETE物理删除建议逻辑删除使用标记字段。DELETEFROMstudentWHEREid10;-- 逻辑删除示例UPDATEstudentSETis_del1WHEREid10;TRUNCATE清空表DDL操作无法回滚效率高。3.4 DQL数据查询语言基本SELECTSELECTcol1,col2FROMtableWHEREcondition;去重SELECT DISTINCT age FROM student;条件过滤WHERE支持!,,BETWEEN,IN,LIKE,IS NULL模糊匹配%任意多个字符_单个字符。排序ORDER BY col ASC|DESC分页LIMIT offset, row_count分组与聚合SELECTgender,COUNT(*),AVG(age)FROMstudentGROUPBYgenderHAVINGCOUNT(*)2;常用聚合函数COUNT() SUM() AVG() MAX() MIN()3.5 多表查询重点含“王者荣耀”案例交叉连接 CROSS JOIN笛卡尔积慎用。内连接 INNER JOIN返回两边匹配的记录。SELECT*FROMtable1INNERJOINtable2ONtable1.idtable2.tid;左连接 LEFT JOIN左表全部右表匹配不上显示NULL。右连接 RIGHT JOIN右表全部。全连接MySQL不支持使用LEFT JOIN UNION RIGHT JOIN模拟。自连接一张表自己连接自己如员工-领导关系。联合查询 UNION / UNION ALL上下合并结果集UNION去重UNION ALL不去重。外键保证数据完整性级联删除/置空。四、用户与权限管理用户组成用户名 主机如rootlocalhost主机支持%通配符。创建用户CREATE USER userhost IDENTIFIED BY password;重命名RENAME USER old TO new;删除用户DROP USER userhost;修改密码-- MySQL 8.0ALTERUSERrootlocalhostIDENTIFIEDBYnewpass;SETPASSWORDFORuserhostnewpass;授权GRANTSELECT,INSERTONdb.*TOuserhostWITHGRANTOPTION;权限类别管理类CREATE USER SHUTDOWN、库/表级别ALTER CREATE、数据操作SELECT UPDATE DELETE、字段级别等。查看权限SHOW GRANTS FOR userhost;撤销权限REVOKE DELETE ON db.* FROM userhost;刷新权限FLUSH PRIVILEGES;五、LAMP搭建WordPress简略安装Apache PHP MySQL。下载WordPress配置虚拟主机创建数据库和用户。浏览器完成安装。

相关新闻