数据库常用语法总结
数据库是现代应用程序中不可或缺的一部分,用于存储和管理大量结构化数据。本文将总结一些常用的 SQL 语法,帮助初学者和经验丰富的开发者更好地理解和使用数据库。
1. 创建数据库
创建一个新的数据库非常简单,使用以下语法:
CREATE DATABASE database_name;
例如,创建一个名为 test_db
的数据库:
CREATE DATABASE test_db;
2. 选择数据库
在执行操作之前,需要选择要操作的数据库:
USE database_name;
例如,选择 test_db
数据库:
USE test_db;
3. 创建表
创建表时需要定义表的结构,包括列名、数据类型和约束条件:
CREATE TABLE table_name (
column1_name column1_type constraint1,
column2_name column2_type constraint2,
...
);
例如,创建一个名为 users
的表,包含 id
、name
和 email
列:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE NOT NULL
);
4. 插入数据
向表中插入数据使用 INSERT INTO
语句:
INSERT INTO table_name (column1_name, column2_name, ...) VALUES (value1, value2, ...);
例如,向 users
表中插入一条数据:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
5. 查询数据
查询表中的数据使用 SELECT
语句:
SELECT column1_name, column2_name, ... FROM table_name WHERE condition;
例如,查询 users
表中所有数据:
SELECT * FROM users;
查询 users
表中 name
为 ‘Alice’ 的数据:
SELECT * FROM users WHERE name = 'Alice';
6. 更新数据
更新表中的数据使用 UPDATE
语句:
UPDATE table_name SET column1_name = value1, column2_name = value2, ... WHERE condition;
例如,更新 users
表中 id
为 1 的用户的 email
:
UPDATE users SET email = 'alice_new@example.com' WHERE id = 1;
7. 删除数据
删除表中的数据使用 DELETE
语句:
DELETE FROM table_name WHERE condition;
例如,删除 users
表中 id
为 1 的用户:
DELETE FROM users WHERE id = 1;
8. 删除表
删除表使用 DROP TABLE
语句:
DROP TABLE table_name;
例如,删除 users
表:
DROP TABLE users;
9. 修改表结构
修改表结构使用 ALTER TABLE
语句:
ALTER TABLE table_name ADD column_name column_type;
ALTER TABLE table_name DROP column_name;
ALTER TABLE table_name MODIFY column_name column_type;
例如,向 users
表中添加一个 age
列:
ALTER TABLE users ADD age INT;
删除 users
表中的 age
列:
ALTER TABLE users DROP age;
修改 users
表中的 name
列的类型为 VARCHAR(200)
:
ALTER TABLE users MODIFY name VARCHAR(200);
10. 索引
创建索引以提高查询性能:
CREATE INDEX index_name ON table_name (column_name);
例如,为 users
表的 email
列创建索引:
CREATE INDEX idx_email ON users (email);
删除索引:
DROP INDEX index_name ON table_name;
例如,删除 users
表的 idx_email
索引:
DROP INDEX idx_email ON users;
11. 聚合函数
聚合函数用于对一组值进行计算并返回单个结果:
COUNT
:计算行数SUM
:计算总和AVG
:计算平均值MAX
:返回最大值MIN
:返回最小值
例如,计算 users
表中的总行数:
SELECT COUNT(*) FROM users;
计算 users
表中 age
列的总和:
SELECT SUM(age) FROM users;
12. 分组
使用 GROUP BY
语句将行分组,通常与聚合函数一起使用:
SELECT column_name, aggregate_function(column_name)
FROM table_name
GROUP BY column_name;
例如,按 age
列分组并计算每个年龄段的用户数:
SELECT age, COUNT(*) FROM users GROUP BY age;
13. 排序
使用 ORDER BY
语句对查询结果进行排序:
SELECT column_name, column2_name, ...
FROM table_name
ORDER BY column_name [ASC|DESC];
例如,按 name
列升序排序 users
表中的所有数据:
SELECT * FROM users ORDER BY name ASC;
按 age
列降序排序:
SELECT * FROM users ORDER BY age DESC;
14. 连接表
使用 JOIN
语句将多个表中的数据连接在一起:
INNER JOIN
:返回两个表中匹配的行LEFT JOIN
:返回左表中的所有行,以及右表中匹配的行RIGHT JOIN
:返回右表中的所有行,以及左表中匹配的行FULL OUTER JOIN
:返回两个表中的所有行
例如,假设有两个表 users
和 orders
,我们可以通过 user_id
进行连接:
SELECT users.name, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id;
15. 子查询
子查询是在另一个查询中的查询,通常用于条件过滤:
SELECT column_name, column2_name, ...
FROM table_name
WHERE column_name Operator (SELECT column_name FROM table_name WHERE condition);
例如,查询 users
表中购买了最大金额订单的用户:
SELECT users.name
FROM users
WHERE users.id = (SELECT user_id FROM orders ORDER BY order_amount DESC LIMIT 1);
16. 事务
事务用于确保一组操作的原子性、一致性、隔离性和持久性:
BEGIN TRANSACTION;
-- 执行多个 SQL 语句
COMMIT;
-- 或者
ROLLBACK;
例如,确保插入和更新操作一起成功或全部失败:
BEGIN TRANSACTION;
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
UPDATE users SET email = 'alice_new@example.com' WHERE id = 1;
COMMIT;
如果在事务执行过程中发生错误,可以回滚事务:
BEGIN TRANSACTION;
-- 执行 SQL 语句
ROLLBACK;
17. 视图
视图是一个虚拟表,其内容由查询定义:
CREATE VIEW view_name AS
SELECT column_name, column2_name, ...
FROM table_name
WHERE condition;
例如,创建一个视图 user_orders
,包含用户及其订单信息:
CREATE VIEW user_orders AS
SELECT users.name, orders.order_date, orders.order_amount
FROM users
INNER JOIN orders ON users.id = orders.user_id;
查询视图:
SELECT * FROM user_orders;
18. 存储过程
存储过程是一组 SQL 语句,可以预先编译并存储在数据库中,通过调用名称来执行:
DELIMITER //
CREATE PROCEDURE procedure_name()
BEGIN
-- 执行 SQL 语句
END //
DELIMITER ;
例如,创建一个存储过程 get_all_users
,返回所有用户的名称:
DELIMITER //
CREATE PROCEDURE get_all_users()
BEGIN
SELECT name FROM users;
END //
DELIMITER ;
调用存储过程:
CALL get_all_users();
希望你喜欢这篇文章!请点关注和收藏吧。你的关注和收藏会是我努力更新的动力,祝关注和收藏的帅哥美女们今年都能暴富。如果有更多问题,随时欢迎评论区留言
。