MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解 MySQL 的语法对数据库管理和操作非常重要。以下是 MySQL 语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据等内容。
数据类型 | 描述 |
---|---|
INT |
整数 |
FLOAT |
浮点数 |
VARCHAR |
变长字符串 |
CHAR |
固定长度字符串 |
TEXT |
大文本 |
DATE |
日期(格式:YYYY-MM-DD) |
DATETIME |
日期和时间(格式:YYYY-MM-DD HH:MM:SS) |
创建数据库
CREATE DATABASE db_name;
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,
...
);
table_name
: 表的名称。data_type
: 列的数据类型。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;
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
示例:
INSERT INTO students (id, name, age, enrollment_date) VALUES (1, 'John Doe', 20, '2023-09-01');
基本查询
SELECT column1, column2, ... FROM table_name;
示例:
SELECT name, age FROM students;
查询所有列
SELECT * FROM table_name;
使用条件过滤查询
SELECT column1, column2, ... FROM table_name WHERE condition;
示例:
SELECT * FROM students WHERE age > 18;
排序
SELECT * FROM table_name ORDER BY column1 [ASC|DESC];
示例:
SELECT * FROM students ORDER BY age DESC;
限制查询结果
SELECT * FROM table_name LIMIT number;
示例:
SELECT * FROM students LIMIT 5;
聚合函数
COUNT()
:返回记录数SUM()
:返回总和AVG()
:返回平均值MIN()
:返回最小值MAX()
:返回最大值示例:
SELECT COUNT(*) FROM students;
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
示例:
UPDATE students SET age = 21 WHERE id = 1;
DELETE FROM table_name WHERE condition;
示例:
DELETE FROM students WHERE id = 1;
内连接 (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;
索引用于提高查询速度。
创建索引
CREATE INDEX index_name ON table_name (column_name);
删除索引
DROP INDEX index_name ON table_name;
事务确保一组 SQL 操作要么全部执行,要么全部不执行。
开始事务
START TRANSACTION;
提交事务
COMMIT;
回滚事务
ROLLBACK;
视图是基于 SQL 查询的虚拟表。
创建视图
CREATE VIEW view_name AS SELECT columns FROM table_name WHERE condition;
删除视图
DROP VIEW view_name;
存储过程是一组预编译的 SQL 语句,封装起来可以复用。
创建存储过程
CREATE PROCEDURE procedure_name (parameters)
BEGIN
SQL_statements;
END;
调用存储过程
CALL procedure_name(parameters);
删除存储过程
DROP PROCEDURE procedure_name;
触发器在某个事件(如插入、更新或删除)发生时自动执行。
创建触发器
CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name
FOR EACH ROW
BEGIN
SQL_statements;
END;
删除触发器
DROP TRIGGER trigger_name;
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
赋予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
删除用户
DROP USER 'username'@'host';
EXPLAIN: 查看查询的执行计划。
EXPLAIN SELECT * FROM table_name;
SHOW PROCESSLIST: 查看当前运行的 SQL 查询。
SHOW PROCESSLIST;
这是 MySQL 的完整语法概述,适用于基本数据库操作、数据查询、表结构管理、索引、事务、存储过程等内容。通过学习和使用这些语法,能够有效管理和查询数据库。
参与评论
手机查看
返回顶部