MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解 MySQL 的语法对数据库管理和操作非常重要。以下是 MySQL 语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据等内容。
1. 基础概念
-
数据库 (Database): 数据库是存储数据的容器,里面可以包含多个表。
-
表 (Table): 表是数据库中的核心元素,包含行(记录)和列(字段)。
-
行 (Row): 一行数据代表表中的一条记录。
-
列 (Column): 列是数据的属性,每个列都有一个特定的数据类型。
-
数据类型 (Data Types): 定义列中数据的类型,如整数、浮点数、字符串、日期等。
数据类型 描述 INT
整数 FLOAT
浮点数 VARCHAR
变长字符串 CHAR
固定长度字符串 TEXT
大文本 DATE
日期(格式:YYYY-MM-DD) DATETIME
日期和时间(格式:YYYY-MM-DD HH:MM:SS)
2. 数据库和表管理
-
数据库
-
连接数据库
mysql -u 用户名 -p
-
创建数据库
CREATE DATABASE db_name;
-
选择数据库
USE db_name;
-
查看现有数据库
SHOW DATABASES;
-
删除数据库
DROP DATABASE db_name;
-
-
表
-
创建表
CREATE TABLE table_name ( column_name1 data_type constraints, column_name2 data_type constraints, ... );
constraints
: 列的约束,如PRIMARY KEY
、NOT NULL
等。
CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, enrollment_date DATE );
-
查看表结构
DESCRIBE table_name;
-
删除表
DROP TABLE table_name;
-
修改表结构
- 添加新列:
ALTER TABLE table_name ADD new_column_name data_type;
- 修改列类型:
ALTER TABLE table_name MODIFY column_name new_data_type;
- 删除列:
ALTER TABLE table_name DROP COLUMN column_name;
- 添加新列:
-
3. 表 操作
3.1 基本操作
- 查询
SELECT column1, column2, ... FROM table_name; # 条件过滤 SELECT column1, column2, ... FROM table_name WHERE condition; # 排序 SELECT * FROM table_name ORDER BY column1 [ASC|DESC]; # 限制个数 SELECT * FROM table_name LIMIT number;
- 插入数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
3.2 聚合函数
COUNT()
:返回记录数SUM()
:返回总和AVG()
:返回平均值MIN()
:返回最小值MAX()
:返回最大值
示例:
SELECT COUNT(*) FROM students;
3.3 更新数据
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
示例:
UPDATE students SET age = 21 WHERE id = 1;
3.4 删除数据
DELETE FROM table_name WHERE condition;
示例:
DELETE FROM students WHERE id = 1;
4. 连接 (JOIN) 操作
-
内连接 (INNER JOIN): 返回两个表中匹配的记录。
SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
-
左连接 (LEFT JOIN): 返回左表中的所有记录,即使右表中没有匹配。
SELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
-
右连接 (RIGHT JOIN): 返回右表中的所有记录,即使左表中没有匹配。
SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
5. 视图和索引 (Index)
-
索引
-
创建索引
CREATE INDEX index_name ON table_name (column_name);
-
删除索引
DROP INDEX index_name ON table_name;
-
-
视图
-
创建视图
CREATE VIEW view_name AS SELECT columns FROM table_name WHERE condition;
-
删除视图
DROP VIEW view_name;
-
6. 事务 (Transaction)
事务确保一组 SQL 操作要么全部执行,要么全部不执行。
-
开始事务
START TRANSACTION;
-
提交事务
COMMIT;
-
回滚事务
ROLLBACK;
7. 触发器 (Trigger)
触发器在某个事件(如插入、更新或删除)发生时自动执行。
-
创建触发器
CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name FOR EACH ROW BEGIN SQL_statements; END;
-
删除触发器
DROP TRIGGER trigger_name;
这是 MySQL 的完整语法概述,适用于基本数据库操作、数据查询、表结构管理、索引、事务、存储过程等内容。通过学习和使用这些语法,能够有效管理和查询数据库。