本文共 1700 字,大约阅读时间需要 5 分钟。
数据库是存储和管理数据的容器,主要包括表、视图、存储过程、函数、触发器、索引等数据库对象。数据库可以分为两大类:
系统数据库由数据库管理系统自带,通常不可修改,主要包括:
information_schema
:存储数据库对象的信息,如用户表、列信息、权限、字符集、分区等。performance_schema
:记录数据库服务器性能参数信息。mysql
:存储数据库用户权限信息。test
:可供任何用户使用的测试数据库。用户数据库是由用户自定义创建的数据库,通常一个项目使用一个用户数据库。数据库名可以使用CREATE DATABASE
命令创建,删除使用DROP DATABASE
命令。
使用SHOW DATABASES
命令查看所有数据库,USE database_name
命令切换到指定数据库。
SHOW TABLES
命令可以列出指定数据库中的所有表。
CREATE DATABASE database_name
创建数据库,DROP DATABASE database_name
删除数据库。
MySQL支持多种存储引擎,主要有MyISAM
和InnoDB
两种。MyISAM
适合需要高插入、查询速度但不需要事务支持的场景,而InnoDB
支持事务和外键,适合需要数据一致性和复杂约束的应用。
MySQL提供丰富的数据类型,主要包括:
INT
、BIGINT
FLOAT
、DOUBLE
、DECIMAL
CHAR
、VARCHAR
、TEXT
DATE
、TIMESTAMP
、TIME
、YEAR
BINARY
、VARBINARY
、BLOB
等BIT
DECIMAL
类型推荐用于存储高精度的金额或货币数据。
CREATE TABLE
命令用于创建表,格式如下:
CREATE TABLE 表名( 列名1 列类型 [约束], 列名2 列类型 [约束], ...);
在表名中使用关键字时需加反引号,建议使用t_
作为表名前缀。
使用DESC
命令查看表结构,SHOW CREATE TABLE
命令查看表的创建语句。
使用DROP TABLE
命令删除表。
表约束可以对单个列进行限制,常见约束包括:
NOT NULL
DEFAULT
UNIQUE
PRIMARY KEY
AUTO_INCREMENT
FOREIGN KEY
SELECT
语句用于从表中检取数据,语法如下:
SELECT [列名列表] [DISTINCT] FROM 表名;
DISTINCT
关键字用于去重。
使用WHERE
子句对结果进行过滤,语法如下:
SELECT [列名列表] FROM 表名 WHERE 条件;
支持多种比较运算符和逻辑运算符。
BETWEEN
和IN
用于限制查询范围,IS NULL
用于查找空值,LIKE
用于文本匹配。
ORDER BY
子句用于对结果进行排序,语法如下:
SELECT [列名列表] FROM 表名 ORDER BY 列名 [ASC/DESC];
MySQL支持逻辑分页和物理分页,推荐使用物理分页:
SELECT * FROM 表名 LIMIT 开始位置, 每页大小;
内连接用于将两个或多个表的数据结合,常用JOIN
关键字:
SELECT * FROM 表名A JOIN 表名B ON 表名A.列 = 表名B.列;
隐式内连接和显式内连接效果相同。
外连接用于关联不相关的表,结果可能包含NULL
值。
外键约束用于维护数据库的数据一致性,主要包括:
在使用外键时,需确保目标表的引擎支持外键(如InnoDB)。
转载地址:http://ycbfk.baihongyu.com/