MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,尤其在WEB应用方面,MySQL是最佳的选择之一。MySQL使用SQL语言作为访问数据库的标准语言,采用双授权政策,分为社区版和商业版。由于其体积小、速度快、总体拥有成本低,尤其是开放源码的特点,MySQL被广泛用于中小型和大型网站的开发中。
MySQL的主要优势
性能优越:能够处理大量数据,保持高效的查询和读写操作。
开源与易用:开源性质使得开发者可以免费使用并定制,同时易于上手。
灵活性:支持多种存储引擎,如InnoDB、MyISAM等,满足不同业务需求。
高可用性:支持主从复制、集群等多种高可用方案,确保数据可靠性与连续性。
可扩展性:支持各种分表、分库方案,轻松扩展以满足大规模数据存储需求。
安全性:提供SSL加密、访问控制列表、数据加密等安全特性,保障数据安全。
数据库分类
关系型数据库:SQL(Structured Query Language)
MySQL、Oracle、Sql Server、DB2、SQLlite
通过表和表之间,行和列之间的关系进行数据的存储
通过外键关联来建立表与表之间的关系
非关系型数据库:NoSQL(Not Only SQL)
Redis、MongoDB
指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。
字符串
时间日期
下面是对MySQL数据库的一些基础知识点总结:
一、创建与管理数据库
1.创建数据库
使用CREATE DATABASE或CREATE SCHEMA命令可以创建数据库。语法格式如下。
CREATE {DATABASE| SCHEMA [IF NOT EXISTS] 数据库名
[[DEFAULT]CHARACTER SET 字符集名
| [DEFAULT] COLLATE 校对规则名]
2.打开数据库
创建了数据库之后,使用USE命令可指定当前数据库。语法格式如下。
USE 数据库名
3.修改数据库
数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE 命令。语法格式如下。
ALTER {DATABASE | SCHEMA} [数据库名]
[[DEFAULT] CHARACTER SET 字符集名
| [DEFAULT] COLLATE 校对规则名]
4.删除数据库
如果需要删除已经创建的数据库,可使用DROP DATABASE 命令。语法格式如下。
DROP DATABASE [IF EXISTS] 数据库名
5.显示数据库
如果需要显示服务器中已建立的数据库,可以使用SHOW DATABASES 命令。语法格式如下。
SHOW DATABASES
二、创建与管理数据库表
1.创建表
使用CREATE TABLE 命令可以创建表。语法格式如下。
CREATE TABLE [IF NOT EXISTS]表名
(列名 数据类型 [NOT NULL | NULL] [DEFAULT 列默认值]…)
ENGINE = 存储引擎
2.修改表结构
ALTER TABLE命令可以用于更改原有表的结构。例如,可以增加或删减列、创建或取消索引、更改原有列的类型、重新命名列或表,还可以更改表的评注和表的类型。语法格式如下。
ALTER [IGNORE] TABLE表名
ADD [COLUMN] 列名 [FIRST | AFTER列名] /*添加列*/
| ALTER [COLUMN]列名
{SET DEFAULT 默认值 DROP DEFAULT} /*修改默认值*/
| CHANGE [COLUMN]旧列名 列定义 /*对列重命名*/
[FIRST | AFTER 列名]
| MODIFY [COLUMN]列定义[FIRST | AFTER 列名] /*修改列类型*/
| DROP [COLUMN]列名 /*删除列*/
| RENAME [TO] 新表名 /*重命名该表*/
3.复制表
当需要建立的数据库表与已有的数据库表结构相后时,可以通过复制表的结构和数据的方法新建数据库表。语法格式如下。
CREATE TABLE [IF NOT EXISTS]新表名
[ LIKE 参照表名]
| [AS (select 语句)]
4.删除表
需要删除一个表时,可以使用DROP TABLE语句。语法格式如下。
DROP TABLE [IF EXISTS] 表名1 [,表名2 ] …
5.显示数据表信息
(1)显示数据表文件名
SHOW TABLES 命令用于显显示已经建立的数据表文件。语法格式如下。
SHOW TABLES
(2)显示数据表结构
DESCRIBE语句用于显示表中各列的信息。语法格式如下。
{DESCRIBE | DESC} 表名 [列名|通配符]
三、数据操作
1.数据插入
一旦创建了数据库和表,下一步就是向表里插入数据。通过INSERT或 REPLACE语句可以向表中插入一行或多行数据。语法格式如下。
INSERT [IGNORE] [INTO] 表名[(列名,…)]
VALUES ({表达式| DEFAULT},…),(…) ,…
| SET 列名={表达式| DEFAULT}, …
2.数据修改
1.单表数据修改
语法格式如下。
UPDATE [IGNORE] 表名
SET 列名1=表达1 [,列名2=表达式2 …]
[WHERE 条件]
2.多表数据修改
语法格式如下。
UPDATE [IGNORE] 表名列表
SET 列名 1=表达式1 [,列名2=表达式2 …]
[WHERE 条件]
3.数据删除
1.从单个表中删除行
语法格式如下。
DELETE [IGNORE] FROM 表名
[WHERE 条件]
2.从多个表中删除行
语法格式如下。
DELETE [IGNORE] 表名1[.*] [,表名2 [.*] …]
FROM 表名列表
[WHERE 条件]
或
DELETE [IGNORE]
FROM 表名1[.*] [,表名2 [.*] …]
USING 表名列表
[WHERE 条件]
4.使用 TRUNCATE TABLE语句删除表数据
使用DELETE语句删除记录时,每次删除一行,并在事务日志中为所删除的每行进行记录,当要删除表中所有记录,且记录很多时,命令执行较慢。这时使用TRUNCATE TABLE语句会更加快捷。TRUNCATE TABLE语句也称为清除表数据语句。语法格式如下。
TRUNCATE TABLE 表名
四、数据查询
1.单表查询
SELECT语句可以实现对表的选择、投影及连接操作。即SELECT语句可以根据用户的需要从一个或多个表中选出匹配的行和列,结果通常是生成一个临时表。
SELECT语法格式如下。
SELECT [ALL | DISTINCT] 输出列表达式,…
[FROM 表名1 [,表名2] …] /*FROM子句*/
[WHERE条件 /*WHERE 子句*/
[GROUP BY{列名|表达式|列编号}
[ASC | DESC],… /* GROUP Y子句*/
[HAVING条件] /* HAVING 子句*/
[ORDER BY{列名|表达式|列编号}
[ASC | DESC] ,…] /*ORDER BY子句*/
[LIMIT {[偏移量,] 行数|行数OFFSET 偏移量}] /*LIMIT 子句*/
2.多表查询
前面介绍了如何使用SELECT子句选择列,下i面讨论 SELECT的查询对象(即数据源)的构成形式。SELECT的查询对象由FROM子句指旨定。
FROM子句格式如下。
FROM 表名1_[[AS] 别名1 ] [ ,表名2[ [AS] 别名2]] … /*查询表*/
| JOIN 子句 /*连接表*/
3.条件查询
运算符
通过学习了MySQL让我对数据库技术有了更深入的了解,也让我对数据处理和分析有了更全面的认识。我认为在之后的学习与工作过程中,MySQL会是我编程的工具之一。我希望通过自己往后的学习与琢磨能进一步探索MySQL的高级功能和应用场景,不断提升自己的技能水平。