目录
mysql简介
MySQL 是一个开源的关系型数据库管理系统(RDBMS),由瑞典公司 MySQL AB 开发,后来被 Sun Microsystems 收购,最后又被 Oracle Corporation 收购。MySQL 因其高性能、易用性、可靠性和可扩展性而广受欢迎,特别是在 Web 应用程序中。
以下是 MySQL 的一些主要特点和简介:
开源:MySQL 是一个开源项目,允许用户免费使用、修改和分发它。
跨平台:MySQL 可以在多种操作系统上运行,包括 Windows、Linux、macOS 等。
关系型数据库:MySQL 支持标准的 SQL 语言,提供完整的 RDBMS 功能。
高性能:MySQL 经过优化,可以处理大量的并发连接和数据操作。
易用性:MySQL 提供了多种图形化工具(如 phpMyAdmin、MySQL Workbench 等)来简化数据库的管理和操作。
可扩展性:通过分表、分区、读写分离等技术,MySQL 可以轻松应对大规模数据的存储和查询需求。
安全性:MySQL 提供了多种安全特性,如用户权限管理、数据加密、审计日志等。
复制和集群:MySQL 支持主从复制和集群技术,可以实现数据备份、负载均衡和高可用性。
存储引擎:MySQL 支持多种存储引擎,如 InnoDB、MyISAM、Memory 等,每种引擎都有其特定的使用场景和优势。其中,InnoDB 是最常用的存储引擎,支持事务处理和外键约束。
与其他语言的集成:MySQL 提供了丰富的 API 和驱动程序,可以与多种编程语言(如 PHP、Java、Python 等)进行集成。
MySQL 在许多领域都有广泛的应用,包括 Web 开发、数据分析、电子商务、内容管理系统(CMS)等。由于其强大的功能和良好的性能,MySQL 已成为 Web 开发中最常用的数据库系统之一。
在咱们使用之前得先安装mysql
学习过程
MySQL 安装
所有平台的 MySQL 下载地址为: mysql下载安装。 挑选你需要的 MySQL Community Server 版本及对应的平台。
以下我是用windows系统来使用mysql
MySQL 管理
启动及关闭 MySQL 服务器
Windows 系统下
启动 MySQL 服务器:
1、通过 “服务” 管理工具: 打开"运行"对话框(Win + R),输入 services.msc,找到"MySQL"服务,右击选择"启动"。
2、通过命令提示符: 打开命令提示符(以管理员身份),输入以下命令:
net start mysql
关闭MySQL服务器:
1、通过 “服务” 管理工具:同样打开"运行"对话框,输入 services.msc,找到 “MySQL” 服务,右击选择"停止"。
2、通过命令提示符: 打开命令提示符(以管理员身份),输入以下命令:
net stop mysql
连接好mysql服务后咱们就可以成功进入到mysql数据库中
接下来咱们就可以尽情的编写代码创建数据库了
MySQL 创建数据库
我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
建数据库的基本语法如下:
CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];
如果你希望在创建数据库时指定一些选项,可以使用 CREATE DATABASE 语句的其他参数,例如,你可以指定字符集和排序规则:
CREATE DATABASE mydatabase
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
实例:
MySQL 删除数据库
使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限。
在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。
drop 命令删除数据库
drop 命令格式:
– 直接删除数据库,不检查是否存在
DROP DATABASE <database_name>;
或
DROP DATABASE [IF EXISTS] <database_name>;
参数说明:
IF EXISTS 是一个可选的子句,表示如果数据库存在才执行删除操作,避免因为数据库不存在而引发错误。
database_name 是你要删除的数据库的名称。
例如删除名为Mybook的数据库:
-- 直接删除数据库,不检查是否存在
mysql> DROP DATABASE Mybook;
-- 删除数据库,如果存在的话
DROP DATABASE IF EXISTS Mybook;
注意: 在执行删除数据库操作前,请确保你确实想要删除数据库及其所有数据,因为该操作是不可逆的。为了避免误操作,通常建议在执行删除之前备份数据库。
MySQL 选择数据库
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。
从命令提示窗口中选择 MySQL 数据库
在 mysql> 提示窗口中可以很简单的选择特定的数据库。
在 MySQL 中,要选择要使用的数据库,可以使用 USE 语句,以下是基本的语法:
USE database_name;
参数说明:
database_name 是你要选择的数据库的名称。
选择来数据库后,你的后续 SQL 查询和操作在指定的数据库 database_name 上执行。
实例
以下实例选取了数据库Mybook:
执行以上命令后,你就已经成功选择了 Mybook 数据库,在后续的操作中都会在 Mybook 数据库中执行。
注意:
请确保选择的数据库存在,否则你将收到错误消息。
你可以使用 SHOW DATABASES; 查询可用的数据库,确保你要选择的数据库在列表中。
MySQL 数据类型
MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型
MySQL 支持所有标准 SQL 数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。
作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 Bytes | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 Bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 Bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 Bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 Bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 Bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 |
DOUBLE | 8 Bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
更多的数据类型请查询有关资料
MySQL 创建数据表
创建 MySQL 数据表需要以下信息:
表名
表字段名
定义每个表字段的数据类型
语法
以下为创建 MySQL 数据表的 SQL 通用语法:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);
参数说明:
table_name 是你要创建的表的名称。
column1, column2, … 是表中的列名。
datatype 是每个列的数据类型。
以下是一个具体的实例,创建一个用户表 users:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
birthdate DATE,
is_active BOOLEAN DEFAULT TRUE
);
实例解析:
id: 用户 id,整数类型,自增长,作为主键。
username: 用户名,变长字符串,不允许为空。
email: 用户邮箱,变长字符串,不允许为空。
birthdate: 用户的生日,日期类型。
is_active: 用户是否已经激活,布尔类型,默认值为 true。
以上只是一个简单的实例,用到了一些常见的数据类型包括 INT, VARCHAR, DATE, BOOLEAN,你可以根据实际需要选择不同的数据类型。AUTO_INCREMENT 关键字用于创建一个自增长的列,PRIMARY KEY 用于定义主键。
执行成功后,就可以通过命令行查看表结构:
MySQL 删除数据表
MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
语法
以下为删除 MySQL 数据表的通用语法:
– 直接删除表,不检查是否存在
DROP TABLE table_name ;
或
DROP TABLE [IF EXISTS] table_name;
参数说明:
table_name 是要删除的表的名称。
IF EXISTS 是一个可选的子句,表示如果表存在才执行删除操作,避免因为表不存在而引发错误。
-- 删除表,如果存在的话
DROP TABLE IF EXISTS mytable;
-- 直接删除表,不检查是否存在
DROP TABLE mytable;
实例
以下实例删除了数据表users:
MySQL 插入数据
MySQL 表中使用 INSERT INTO 语句来插入数据。
你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。
语法
以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
参数说明:
table_name 是你要插入数据的表的名称。
column1, column2, column3, … 是表中的列名。
value1, value2, value3, … 是要插入的具体数值。
如果数据是字符型,必须使用单引号 ’ 或者双引号 ",如: ‘value1’, “value1”。
一个简单的实例,插入了一行数据到名为 users 的表中:
INSERT INTO users (username, email, birthdate, is_active)
VALUES ('test', 'test@runoob.com', '1990-01-01', true);
username: 用户名,字符串类型。
email: 邮箱地址,字符串类型。
birthdate: 用户生日, 日期类型。
is_active: 是否已激活,布尔类型。
如果你要插入多行数据,可以在 VALUES 子句中指定多组数值:
INSERT INTO users (username, email, birthdate, is_active)
VALUES
('test1', 'test1@runoob.com', '1985-07-10', true),
('test2', 'test2@runoob.com', '1988-11-25', false),
('test3', 'test3@runoob.com', '1993-05-03', true);
以上代码将在 users 表中插入三行数据。
实例:
接下来我们可以通过以下语句查看数据表数据:
select * from users;
实例:
MySQL 查询数据
MySQL 数据库使用 SELECT 语句来查询数据。
你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过 PHP 脚本来查询数据。
语法
以下为在 MySQL 数据库中查询数据通用的 SELECT 语法:
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]]
[LIMIT number];
参数说明:
column1, column2, … 是你想要选择的列的名称,如果使用 * 表示选择所有列。
table_name 是你要从中查询数据的表的名称。
WHERE condition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行。
ORDER BY column_name [ASC | DESC] 是一个可选的子句,用于指定结果集的排序顺序,默认是升序(ASC)。
LIMIT number 是一个可选的子句,用于限制返回的行数。
MySQL SELECT 语句简单的应用实例:
-- 选择所有列的所有行
SELECT * FROM users;
-- 选择特定列的所有行
SELECT username, email FROM users;
-- 添加 WHERE 子句,选择满足条件的行
SELECT * FROM users WHERE is_active = TRUE;
-- 添加 ORDER BY 子句,按照某列的升序排序
SELECT * FROM users ORDER BY birthdate;
-- 添加 ORDER BY 子句,按照某列的降序排序
SELECT * FROM users ORDER BY birthdate DESC;
-- 添加 LIMIT 子句,限制返回的行数
SELECT * FROM users LIMIT 10;
SELECT 语句可以是灵活的,我们可以根据实际需求组合和使用这些子句,比如同时使用 WHERE 和 ORDER BY 子句,或者使用 LIMIT 控制返回的行数。
在 WHERE 子句中,你可以使用各种条件运算符(如 =, <, >, <=, >=, !=),逻辑运算符(如 AND, OR, NOT),以及通配符(如 %)等。
关于mysql的使用咱们还可以使用可视化工具来方便我们的操作
总结
以上就是我在学习MySQL过程中的一些心得体会,通过这段时间的学习,我掌握了一些MySQL的基本操作,数据库设计、SQL语句编写技巧以及备份与恢复等方面的知识,将在我未来的项目中发挥重要作用。我将继续学习和探索更多数据库技术,不断提升自己的能力。