MySQL入门很简单-学习笔记_20110913.pdf
### MySQL入门知识点详解 #### 一、数据库概述 1. **数据存储方式**:数据库是组织、存储和处理数据的一种重要工具。早期的数据存储方式包括文件系统,但是随着数据量的增长,这种简单的方式逐渐暴露出许多问题,如数据冗余、不一致性等。 2. **数据库泛型**:数据库可以按照不同的标准进行分类。比如按数据模型分类,有关系型数据库、层次数据库、网状数据库等;按应用领域分类,有事务处理系统、办公信息系统、管理信息系统、决策支持系统等。 3. **SQL语言**:SQL(Structured Query Language)是一种用于管理和处理数据库的标准计算机语言。它被用来执行各种任务,如插入数据、更新数据、删除数据、查询数据等。SQL语言可以进一步细分为数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等。 4. **为什么要使用MySQL**: - 开源免费:MySQL是一款开源的关系型数据库管理系统,这使得其使用成本大大降低。 - 高性能:MySQL在处理大量数据时能够保持较高的运行速度。 - 易于使用:MySQL提供了用户友好的图形界面工具和命令行工具,使得数据库的管理变得非常方便。 - 跨平台支持:MySQL可以在多种操作系统平台上运行,包括Windows、Linux等。 5. **常见数据库系统**:除了MySQL之外,还有许多其他的数据库系统,如Oracle、Microsoft SQL Server、PostgreSQL、MongoDB等。 #### 二、安装与配置MySQL 1. **Windows平台下的安装与配置** - **msi安装包**:通过msi安装包安装MySQL是最常见的安装方式之一。这种方式简单快捷,适合初学者使用。 - **安装步骤**:下载MySQL的安装程序,双击运行安装向导,按照提示完成安装过程即可。 - **卸载步骤**:可以通过控制面板中的“卸载程序”功能来卸载MySQL。 - **zip文件**:对于需要自定义安装路径或组件的情况,可以选择使用zip文件进行安装。 - **安装步骤**:解压缩MySQL的zip文件到指定的位置,并进行必要的环境配置。 - **卸载步骤**:手动删除MySQL的安装目录及相关配置文件。 2. **命令常用参数及使用方法** - **mysql**:mysql命令用于启动MySQL客户端。 - 常用参数:`-u`(指定用户名),`-p`(指定密码),`-h`(指定服务器地址)。 - **mysqladmin**:mysqladmin命令用于执行MySQL数据库管理操作,如启动、停止服务等。 - 常用参数:`-u`(指定用户名),`-p`(指定密码),`-h`(指定服务器地址),`ping`(检查服务器是否可用)。 3. **Linux平台下的安装与配置** - **RPM文件安装**:适用于基于RPM包管理系统的Linux发行版,如Red Hat、Fedora等。 - **二进制文件安装**:适用于那些对版本有特定需求或希望更灵活地控制安装过程的情况。 - **源码文件安装**:允许用户完全自定义编译选项,但安装过程较为复杂。 #### 三、MySQL数据类型 1. **整数类型**:包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。 2. **浮点数**:包括FLOAT和DOUBLE。 3. **日期和时间**:包括DATE、TIME、DATETIME、TIMESTAMP等。 4. **字符串**:包括CHAR、VARCHAR、TEXT等。 5. **二进制**:包括BINARY、VARBINARY、BLOB等。 #### 四、操作数据库 1. **显示、创建、删除数据库**:使用`SHOW DATABASES;`命令查看现有数据库列表;使用`CREATE DATABASE database_name;`命令创建新的数据库;使用`DROP DATABASE database_name;`命令删除数据库。 2. **数据库存储引擎**:MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,不同引擎的特点和用途不同。 #### 五、创建、修改和删除表 1. **创建表** - **语法形式**:`CREATE TABLE table_name (column1 datatype, column2 datatype, ...);` - **设置主键**:`PRIMARY KEY (column_name);` - **设置外键**:`FOREIGN KEY (column_name) REFERENCES other_table(other_column);` - **设置非空约束**:`NOT NULL;` - **设置唯一性约束**:`UNIQUE(column_name);` - **设置属性值自动增加**:`AUTO_INCREMENT;` - **设置属性的默认值**:`DEFAULT value;` 2. **查看表结构** - **DESCRIBE**:`DESCRIBE table_name;` - **SHOW CREATE TABLE**:`SHOW CREATE TABLE table_name;` 3. **修改表** - **修改表名**:`RENAME TABLE old_table_name TO new_table_name;` - **修改字段的数据类型**:`ALTER TABLE table_name MODIFY column_name new_data_type;` - **字段及数据类型的增删改移**:使用`ALTER TABLE`命令进行相应的操作。 - **更改表的存储引擎**:`ALTER TABLE table_name ENGINE = engine_name;` - **删除表的外键约束**:`ALTER TABLE table_name DROP FOREIGN KEY constraint_name;` 4. **删除表** - **删除没有被关联的普通表**:`DROP TABLE table_name;` - **删除被其他表关联的父表**:需要先删除与之相关的外键约束,然后才能删除该表。 #### 六、索引 1. **索引简介** - **含义和特点**:索引是帮助MySQL高效获取数据的数据结构,类似于书籍的目录。 - **分类**:主要有普通索引、唯一性索引、全文索引、空间索引等。 - **设计原则**:索引并不是越多越好,过多的索引会影响写入速度。 2. **创建索引** - **创建表的时候创建索引**:可以在创建表的同时添加索引。 - **在已经存在的表上创建索引**:使用`ALTER TABLE`或`CREATE INDEX`命令。 - **用ALTERTABLE语句来创建索引**:更加灵活。 3. **删除索引**:使用`DROP INDEX`或`ALTER TABLE`命令。 #### 七、视图 1. **视图简介**:视图是一种虚拟表,其内容由查询语句定义,不实际存储数据。 2. **创建视图**:使用`CREATE VIEW`命令。 3. **查看视图**:使用`SHOW CREATE VIEW`命令。 4. **修改视图**:使用`ALTER VIEW`命令。 5. **更新视图**:可以直接通过视图进行更新操作。 6. **删除视图**:使用`DROP VIEW`命令。 #### 八、触发器 1. **创建触发器**:触发器是一种存储过程,它会在特定的数据库事件(如INSERT、UPDATE、DELETE)发生后自动执行。 - **创建只有一个执行语句的触发器**:简单的触发器。 - **创建有多个执行语句的触发器**:复杂的触发器。 2. **查看触发器**:使用`SHOW TRIGGERS`命令。 3. **触发器的使用**:触发器可以用来执行复杂的业务逻辑。 4. **删除触发器**:使用`DROP TRIGGER`命令。 #### 九、查询数据 1. **基本查询语句**:`SELECT column_name(s) FROM table_name;` 2. **单表查询**:查询单个表中的数据。 3. **使用集合函数查询**:如COUNT()、SUM()、AVG()等。 4. **连接查询** - **内连接查询**:`SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;` - **外连接查询**:LEFT JOIN、RIGHT JOIN等。 5. **子查询**:在一个查询语句中嵌套另一个查询语句。 6. **合并查询结果**:使用`UNION`操作符。 7. **为表和字段取别名**:使用`AS`关键字。 8. **使用正则表达式查询**:使用LIKE或REGEXP操作符。 #### 十、插入、更新与删除数据 1. **插入数据** - **为表的所有字段插入数据**:`INSERT INTO table_name VALUES (value1, value2, ...);` - **为表的指定字段插入数据**:`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);` - **同时插入多条数据**:`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...), (value1, value2, ...);` - **将查询结果插入表中**:`INSERT INTO table_name (column1, column2, ...) SELECT column1, column2, ... FROM another_table;` 2. **更新数据**:`UPDATE table_name SET column_name = new_value WHERE condition;` 3. **删除数据**:`DELETE FROM table_name WHERE condition;` 以上内容涵盖了MySQL入门所需的基本知识点,从安装配置到具体的操作实践都有涉及。对于初学者来说,这些知识点足够建立起对MySQL的基础认识,并能够进行简单的数据库操作。
剩余52页未读,继续阅读
- yangsigma2013-01-30写的很好,这个值得参考,很有价值
- sinat_155964952015-05-27很全很实用,学习了!
- tom_cate2012-12-07写得很详细啊,学习了。
- lanaz2015-01-09介绍得很系统,学习到了,谢谢!
- Faraman2012-12-14还可以 适合快速入门
- 粉丝: 1019
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 发那科系统整套梯形图设计 FANUC全套PMC设计 发那科标 准PLC 完美解决方案 ##带中文解释## 内容很全 请仔细看完: 1.刀库程序设计(斗笠 圆盘 夹臂 机械手 伞型 都包
- stm32 gd32爱玛电动车控制器资料 电动车控制器原理图、PCB和程序 大厂成熟电机foc控制 送eg89m52的原理图和pcb
- 基于Go语言的现代化开源K8s面板——1Panel官方出品KubePi设计源码
- 基于JavaScript的Sewise Player网页HTML5视频播放器设计源码
- 小神农V7(修复眼镜).zip
- 基于Vue框架的银行科技岗AI云账户系统前端设计源码
- Screenshot_2025-01-15-00-13-41-471_com.tencent.mtt.jpg
- Screenshot_2025-01-15-00-08-47-906_com.tencent.mobileqq.jpg
- 250467c518b0a66217a647d11a6a9c831736870765675.jpg
- 基于Tcl语言的GNU TeXmacs插件集合设计源码
- Screenshot_2025-01-15-00-04-33-283_com.kuaishou.nebula.jpg
- 基于Vue框架的easy-send局域网文本文件共享小工具设计源码
- 基于JavaScript和微信小程序技术的钓场信息预约与管理小程序设计源码
- PSO-RBF和RBF粒子群优化径向基神经网络多输入多输出预测(Matlab完整源码和数据)
- 三菱fx3u+485ADP-MB与3台台达变频器modbus通讯程序 功能:通过三菱fx3u 485ADP-MB板对3台台达变频器进行modbus通讯,实现频率设定,启停控制,输出频率读取,输出电压读
- 除尘程序 写的FB块了,可以直接调用