MySQL基本 SQL 语法
MySQL 基本 SQL 语法
MySQL 是一种功能强大的关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)进行数据管理和操作。本文将详细介绍 MySQL 中的基本 SQL 语法,包括数据库和表的创建、数据的插入、更新和删除、查询数据、连接查询、子查询与联合查询,配合示例代码帮助你理解。
一、数据库与表的创建
1. 创建数据库
在 MySQL 中,首先需要创建数据库。使用 CREATE DATABASE 语句可以创建一个新数据库。
sql
CREATE DATABASE example_db;2. 创建表
创建数据库后,可以在该数据库中创建表。使用 CREATE TABLE 语句。
sql
USE example_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT NOT NULL,
email VARCHAR(100)
);- AUTO_INCREMENT:表示该字段会自动增加,通常用于主键。
- PRIMARY KEY:指定该字段为主键,保证唯一性。
- VARCHAR(n):表示变长字符串,
n是字符串的最大长度。
二、数据的插入、更新与删除
1. 插入数据
使用 INSERT 语句向表中插入数据。
sql
INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');
INSERT INTO users (name, age, email) VALUES ('Bob', 25, 'bob@example.com');2. 更新数据
使用 UPDATE 语句更新表中的数据。
sql
UPDATE users SET age = 31 WHERE name = 'Alice';3. 删除数据
使用 DELETE 语句从表中删除数据。
sql
DELETE FROM users WHERE name = 'Bob';三、查询数据
1. 基本查询
使用 SELECT 语句查询数据。
sql
SELECT * FROM users;2. 条件查询
使用 WHERE 子句进行条件查询。
sql
SELECT * FROM users WHERE age > 25;3. 排序查询
使用 ORDER BY 子句对结果进行排序。
sql
SELECT * FROM users ORDER BY age DESC; -- 降序排列4. 分组查询
使用 GROUP BY 子句对结果进行分组,并结合聚合函数。
sql
SELECT age, COUNT(*) as count FROM users GROUP BY age;四、连接查询
1. 内连接(INNER JOIN)
内连接用于返回两个表中匹配的记录。
sql
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
product VARCHAR(100),
FOREIGN KEY (user_id) REFERENCES users(id)
);
INSERT INTO orders (user_id, product) VALUES (1, 'Laptop'), (1, 'Phone'), (2, 'Tablet');
SELECT users.name, orders.product
FROM users
INNER JOIN orders ON users.id = orders.user_id;2. 左连接(LEFT JOIN)
左连接用于返回左表的所有记录,以及右表中匹配的记录。
sql
SELECT users.name, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id;3. 右连接(RIGHT JOIN)
右连接用于返回右表的所有记录,以及左表中匹配的记录。
sql
SELECT users.name, orders.product
FROM users
RIGHT JOIN orders ON users.id = orders.user_id;五、子查询与联合查询
1. 子查询
子查询是嵌套在其他查询中的查询。
sql
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE product = 'Laptop');2. 联合查询(UNION)
使用 UNION 将多个查询的结果合并为一个结果集。
sql
SELECT name FROM users
UNION
SELECT product FROM orders;3. 联合查询注意事项
- 所有查询的列数必须相同。
- 列的顺序和数据类型也必须匹配。
六、示例综合
以下是一个综合示例,将上述所有内容结合在一起。
sql
-- 创建数据库
CREATE DATABASE example_db;
USE example_db;
-- 创建用户表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT NOT NULL,
email VARCHAR(100)
);
-- 创建订单表
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
product VARCHAR(100),
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- 插入数据
INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');
INSERT INTO users (name, age, email) VALUES ('Bob', 25, 'bob@example.com');
INSERT INTO orders (user_id, product) VALUES (1, 'Laptop'), (1, 'Phone'), (2, 'Tablet');
-- 查询用户及其订单
SELECT users.name, orders.product
FROM users
INNER JOIN orders ON users.id = orders.user_id;
-- 查询年龄大于 25 的用户
SELECT * FROM users WHERE age > 25;
-- 更新用户信息
UPDATE users SET age = 31 WHERE name = 'Alice';
-- 删除订单
DELETE FROM orders WHERE product = 'Tablet';
-- 使用子查询
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE product = 'Laptop');
-- 使用联合查询
SELECT name FROM users
UNION
SELECT product FROM orders;总结
通过本文,你学习了 MySQL 的基本 SQL 语法,包括数据库与表的创建、数据的插入、更新与删除、查询数据、连接查询、子查询与联合查询。掌握这些基本操作,可以帮助你有效地管理和操作 MySQL 数据库中的数据。