学习 SQL(Structured Query Language)是掌握数据库操作的关键步骤。SQL 是一种用于管理和处理关系型数据库的标准语言,广泛应用于数据检索、插入、更新和删除等操作。以下是一些 SQL 基础语法的学习内容,并附有示例。
1. 基本结构
SQL 语句通常以关键字开头,如 SELECT, INSERT, UPDATE, DELETE 等。每个语句以分号 ; 结束。
sql
深色版本
1-- 查询所有用户
2SELECT * FROM users;

2. 数据库操作
创建数据库
sql
深色版本
1CREATE DATABASE mydatabase;

选择数据库
sql
深色版本
1USE mydatabase;

删除数据库
sql
深色版本
1DROP DATABASE mydatabase;

3. 表操作
创建表
sql
深色版本
1CREATE TABLE users (
2 id INT AUTO_INCREMENT PRIMARY KEY,
3 username VARCHAR(50) NOT NULL,
4 email VARCHAR(100) UNIQUE,
5 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
6);

查看表结构
sql
深色版本
1DESCRIBE users;

修改表
- 添加列
sql
深色版本
1ALTER TABLE users ADD COLUMN age INT;

- 删除列
sql
深色版本
1ALTER TABLE users DROP COLUMN age;

- 修改列
sql
深色版本
1ALTER TABLE users MODIFY COLUMN email VARCHAR(150);

删除表
sql
深色版本
1DROP TABLE users;

4. 数据操作
插入数据
sql
深色版本
1INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');

查询数据
- 基本查询
sql
深色版本
1SELECT * FROM users;

- 条件查询
sql
深色版本
1SELECT * FROM users WHERE username = 'john_doe';

- 排序
sql
深色版本
1SELECT * FROM users ORDER BY created_at DESC;

- 分页
sql
深色版本
1SELECT * FROM users LIMIT 10 OFFSET 0; -- 获取前10条记录

- 聚合函数
sql
深色版本
1SELECT COUNT(*) AS user_count FROM users;

- 分组
sql
深色版本
1SELECT age, COUNT(*) AS user_count FROM users GROUP BY age;

- 连接
sql
深色版本
1SELECT users.username, orders.order_id
2FROM users
3JOIN orders ON users.id = orders.user_id;

更新数据
sql
深色版本
1UPDATE users SET email = 'john_new@example.com' WHERE username = 'john_doe';

删除数据
sql
深色版本
1DELETE FROM users WHERE username = 'john_doe';

5. 索引
创建索引
sql
深色版本
1CREATE INDEX idx_email ON users(email);

删除索引
sql
深色版本
1DROP INDEX idx_email ON users;

6. 事务
开始事务
sql
深色版本
1START TRANSACTION;

提交事务
sql
深色版本
1COMMIT;

回滚事务
sql
深色版本
1ROLLBACK;

7. 视图
创建视图
sql
深色版本
1CREATE VIEW active_users AS
2SELECT * FROM users WHERE last_login > NOW() - INTERVAL 30 DAY;

查询视图
sql
深色版本
1SELECT * FROM active_users;

删除视图
sql
深色版本
1DROP VIEW active_users;

8. 存储过程
创建存储过程
sql
深色版本
1DELIMITER //
2
3CREATE PROCEDURE GetUsersByAge(IN min_age INT, IN max_age INT)
4BEGIN
5 SELECT * FROM users WHERE age BETWEEN min_age AND max_age;
6END //
7
8DELIMITER ;

调用存储过程
sql
深色版本
1CALL GetUsersByAge(18, 30);

9. 函数
创建函数
sql
深色版本
1DELIMITER //
2
3CREATE FUNCTION GetUserNameById(user_id INT) RETURNS VARCHAR(50)
4BEGIN
5 DECLARE username VARCHAR(50);
6 SELECT username INTO username FROM users WHERE id = user_id;
7 RETURN username;
8END //
9
10DELIMITER ;

调用函数
sql
深色版本
1SELECT GetUserNameById(1);

10. 用户权限管理
创建用户
sql
深色版本

1CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

授予权限
sql
深色版本
1GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';

撤销权限
sql
深色版本
1REVOKE ALL PRIVILEGES ON mydatabase.* FROM 'newuser'@'localhost';

删除用户
sql
深色版本
1DROP USER 'newuser'@'localhost';
