1.介绍和安装
1.1 MySQL简介
MySQL是一款流行的开源关系型数据库管理系统(RDBMS),广泛用于存储和管理结构化数据。它提供了强大的数据管理功能,包括创建、查询、更新和删除数据,适用于各种应用领域,从Web应用到企业级系统,以其高性能、可靠性和开源性质而备受欢迎。
1.2 数据库基础概念
- 数据库服务器:运行数据库管理软件的计算机
- 数据库管理软件:Mysql、Oracle、SqlServer、db2等
- 库:可以把库理解为一个文件夹
- 表:可以把表理解为文件夹中的一个文件比如excel文件
- 记录:一组数据构成一条记录,相当于文件中的一行内容
- 数据:表述事物特征的符号
1.3 MySQL的优势和应用领域
MySQL是一种开源的关系型数据库管理系统(RDBMS),它具有许多优势,使其在各种应用领域中被广泛使用。
1.3.1 MySQL的优势:
-
开源性: MySQL是开源软件,允许用户自由获取、使用和修改源代码,降低了成本,并促进了社区的合作和发展。
-
跨平台性: MySQL可在多个操作系统上运行,包括Windows、Linux、macOS等,使其在不同环境中都能轻松部署和使用。
-
性能优化: MySQL经过多年的发展和优化,具有良好的性能,支持高并发、大规模数据处理,并提供了多种优化策略。
-
事务支持: MySQL支持事务,遵循ACID(原子性、一致性、隔离性、持久性)属性,确保数据的完整性和一致性。
-
灵活性: MySQL支持多种存储引擎,如InnoDB、MyISAM等,用户可以根据具体需求选择合适的引擎,从而灵活应对不同场景的要求。
-
高度可定制性: MySQL允许用户通过存储过程、触发器等方式进行高度定制,满足复杂业务逻辑的需求。
-
安全性: MySQL提供了强大的安全功能,包括访问控制、用户权限管理、SSL支持等,确保数据库中的数据得到有效保护。
-
社区支持: 由于其开源性质,MySQL拥有庞大的用户社区,用户可以通过社区获取支持、分享经验,解决问题。
1.3.2 MySQL的应用领域:
-
Web应用程序: MySQL常用于支持各类Web应用程序的后端数据库,包括电子商务平台、博客、社交媒体等。
-
企业应用: MySQL适用于企业级应用,如客户关系管理(CRM)、企业资源规划(ERP)等系统。
-
移动应用: MySQL作为后端数据库,广泛用于移动应用的数据存储,支持移动应用的后台服务。
-
大数据环境: MySQL可与大数据平台集成,用于存储和管理大规模数据,与Hadoop、Spark等配合使用。
-
嵌入式系统: MySQL可以被嵌入到各种设备和嵌入式系统中,提供可靠的数据存储支持。
-
云计算环境: MySQL在云计算平台上得到广泛应用,如Amazon RDS、Google Cloud SQL等。
-
开发和测试: 由于其轻量级和易于部署的特性,MySQL常用于开发和测试环境,以便开发人员在本地快速搭建数据库。
总体而言,MySQL由于其稳定性、灵活性和开源特性,适用于各种规模和类型的应用场景。
2.MySQL客户端工具的使用
2.1 常用的MySQL客户端工具
常见的MySQL客户端工具包括MySQL Workbench、Navicat for MySQL、HeidiSQL等。选择适合你需求和操作系统的工具,并按照相应的安装步骤进行安装。
2.2 MySQL连接
1.本机使用mysql自带客户端连接
[root@test-mysql ~]# docker exec -it test-mysql /bin/bash
root@55233fab64ce:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 182
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
-P # 指定远程数据库端口
-h # 指定远程数据库地址
-u # 指定远程数据库账户
-p # 指定远程数据库密码
2.使用mysql客户端工具连接,这里使用的是Navicat
3.基本语法和数据类型
3.1 命名规范
3.1.1 数据库命名规范
采用26个英文字母(区分大小写)和0-9的自然数(一般不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’'分隔,一个项目一个数据库,多个项目慎用同一个数据库
3.1.2 数据库表命名规范
- 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’'分隔
- 全部小写命名,禁止出现大写
- 禁止使用数据库关键字,如:name,time ,datetime,password等
- 表名称不应该取得太长(一般不超过三个英文单词)
- 表的名称一般使用名词或者动宾短语
- 用单数形式表示名称,例如,使用employee,而不是 employees 明细表的名称为:主表的名称+字符dtl(detail缩写)例如:采购定单的名称为:po_order,则采购定单的明细表为:po_orderdtl
- 表必须填写描述信息(使用SQL语句建表时)
3.1.3 数据库字段命名规范
(1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’'分隔
(2)全部小写命名,禁止出现大写
(3)字段必须填写描述信息
(4)禁止使用数据库关键字,如:name,time ,datetime password 等
(5)字段名称一般采用名词或动宾短语
(6)采用字段的名称必须是易于理解,一般不超过三个英文单词
(7)在命名表的列时,不要重复表的名称 例如,在名employe的表中避免使用名为employee_lastname的字段
(8)不要在列的名称中包含数据类型
(9)字段命名使用完整名称,禁止缩写## 3.2 初始SQL
SQL语句就是数据库管理软件针对操作数据库、表、字段而提供的专门的脚本语言。主要涉及到对数据库、表、字段的曾山改查等操作。
SQL 语句及其种类
- DDL(数据定义语言)
- create ==> 创建数据库或者表等对象
- drop ==> 删除数据库或者表等对象
- alter ==> 修改数据库或者表等对象的结构
- DML(数据操作语言)
- select ==> 查询表中数据
- insert ==> 向表中插入数据
- update ==> 更新表中数据
- delete ==> 删除表中数据
- DCL(数据控制语言)
- commit ==> 决定对数据库中的数据进行变更
- rollback ==> 取消对数据库中的数据进行变更
- grant ==> 赋予用户操作权限
- revoke ==> 取消用户的操作权限
3.1.4 SQL语言编码规范
4.1大小写规范
(1)所有关键字必须大写,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等
(2)所有函数及其参数中除用户变量以外的部分必须大写
(3)在定义变量时用到的数据类型必须小写
4.2注释
注释可以包含在批处理中,在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性,本规范建议:
(1)注释以英文为主,实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用,为避免后续版本执行过程中发生某些异常错误,建议使用英文注释
(2)注释尽可能详细、全面创建每一数据对象前,应具体描述该对象的功能和用途,传入参数的含义应该有所说明,如果取值范围确定,也应该一并说明,取值有特定含义的变量(如boolean类型变量),应给出每个值的含义
(3)注释语法:单行注释、多行注释
单行注释:注释前有两个连字符(–)对变量、条件子句可以采用该类注释
多行注释:符号之间的内容为注释内容,对某项完整的操作建议使用该类注释
(4)注释简洁,同时应描述清晰
(5)函数注释:
编写函数文本–如触发器、存储过程以及其他数据对象–时,必须为每个函数增加适当注释,该注释以多行注释为主,主要结构如下:
CREATE PROCEDURE sp_xxx
3.3 常用数据类型
3.3.1 数值类型
类型 | 字节 |
---|---|
- 浮点型
- 字符串类型
- 日期和时间类型
- 符合类型
4.数据库基本操作
4.1 库操作
4.2 表操作
4.3 表字段操作
-
库名、表名、字段名必须使用小写字母并采用下划线分割
-
库名、表名、字段名禁止超过32个字符,须见名知意;
-
库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过32;
-
库名、表名、字段名禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来);
-
临时库、临时表名必须以tmp_为前缀并以日期为后缀;
-
备份库、备份表名必须以bak为前缀并以日期为后缀;
-
所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)。