SQL常用命令使用方法
封面图
•
2025-12-22
•
SQL Server
308
0
0
0
SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准化语言。下面是一些**SQL常用命令**及其使用方法,适用于大多数关系型数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)。 --- ## 一、数据查询(SELECT) ### 1. 查询所有数据 ```sql SELECT * FROM 表名; ``` - `*` 表示所有列。 ### 2. 查询指定列 ```sql SELECT 列1, 列2 FROM 表名; ``` ### 3. 条件查询(WHERE) ```sql SELECT * FROM 表名 WHERE 条件; ``` - 示例:`SELECT * FROM employees WHERE salary > 5000;` ### 4. 排序(ORDER BY) ```sql SELECT * FROM 表名 ORDER BY 列名 ASC/DESC; ``` - `ASC` 是升序(默认),`DESC` 是降序。 ### 5. 去重(DISTINCT) ```sql SELECT DISTINCT 列名 FROM 表名; ``` ### 6. 限制结果数量(LIMIT / TOP) ```sql SELECT * FROM 表名 LIMIT 数量; -- MySQL、PostgreSQL SELECT TOP 数量 * FROM 表名; -- SQL Server ``` --- ## 二、数据操作(INSERT, UPDATE, DELETE) ### 1. 插入数据(INSERT) ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` - 示例: ```sql INSERT INTO employees (name, salary) VALUES ('张三', 6000); ``` ### 2. 更新数据(UPDATE) ```sql UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件; ``` - 示例: ```sql UPDATE employees SET salary = 7000 WHERE name = '张三'; ``` ### 3. 删除数据(DELETE) ```sql DELETE FROM 表名 WHERE 条件; ``` - 示例: ```sql DELETE FROM employees WHERE id = 1; ``` > ⚠️ 注意:`DELETE` 会删除数据,但不会删除表结构;若要删除整个表,使用 `DROP TABLE`。 --- ## 三、表结构操作(CREATE, ALTER, DROP) ### 1. 创建表(CREATE TABLE) ```sql CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ... ); ``` - 示例: ```sql CREATE TABLE employees ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), salary DECIMAL(10, 2) ); ``` ### 2. 修改表结构(ALTER TABLE) ```sql ALTER TABLE 表名 ADD 列名 数据类型; ALTER TABLE 表名 DROP COLUMN 列名; ALTER TABLE 表名 MODIFY 列名 新数据类型; ``` ### 3. 删除表(DROP TABLE) ```sql DROP TABLE 表名; ``` --- ## 四、约束与索引 ### 1. 主键(PRIMARY KEY) ```sql CREATE TABLE 表名 ( id INT PRIMARY KEY, ... ); ``` ### 2. 外键(FOREIGN KEY) ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(id) ); ``` ### 3. 索引(INDEX) ```sql CREATE INDEX 索引名 ON 表名 (列名); ``` --- ## 五、聚合函数与分组(GROUP BY) ### 1. 聚合函数 - `COUNT()`:统计行数 - `SUM()`:求和 - `AVG()`:平均值 - `MAX()`:最大值 - `MIN()`:最小值 ### 2. 分组查询(GROUP BY) ```sql SELECT 列1, COUNT(*) AS 数量 FROM 表名 GROUP BY 列1; ``` ### 3. 过滤分组(HAVING) ```sql SELECT 列1, COUNT(*) AS 数量 FROM 表名 GROUP BY 列1 HAVING COUNT(*) > 10; ``` --- ## 六、连接查询(JOIN) ### 1. 内连接(INNER JOIN) ```sql SELECT a.列1, b.列2 FROM 表1 a INNER JOIN 表2 b ON a.列 = b.列; ``` ### 2. 左连接(LEFT JOIN) ```sql SELECT a.列1, b.列2 FROM 表1 a LEFT JOIN 表2 b ON a.列 = b.列; ``` ### 3. 右连接(RIGHT JOIN) ```sql SELECT a.列1, b.列2 FROM 表1 a RIGHT JOIN 表2 b ON a.列 = b.列; ``` --- ## 七、子查询(Subquery) ```sql SELECT * FROM 表1 WHERE 列1 IN (SELECT 列1 FROM 表2 WHERE 条件); ``` --- ## 八、事务控制(Transaction) ```sql BEGIN TRANSACTION; -- 执行多个操作 COMMIT; -- 提交事务 -- 或 ROLLBACK; -- 回滚事务 ``` --- ## 九、常用数据库管理命令(MySQL 示例) | 命令 | 说明 | |------|------| | `SHOW DATABASES;` | 查看所有数据库 | | `USE 数据库名;` | 使用某个数据库 | | `SHOW TABLES;` | 查看当前数据库中的表 | | `DESCRIBE 表名;` | 查看表结构 | | `SELECT VERSION();` | 查看数据库版本 | --- ## 十、常见错误与调试建议 - **语法错误**:检查关键字是否拼写正确(如 `SELECT` 不是 `SELET`)。 - **表或列不存在**:确认表名、列名是否正确。 - **权限问题**:确保有访问数据库的权限。 - **使用工具调试**:如 MySQL Workbench、DBeaver、Navicat 等。 --- 如果你有具体的数据库(如 MySQL、PostgreSQL、SQL Server)或者具体需求(如增删改查、性能优化等),我可以提供更详细的指导。欢迎继续提问!
上一篇:
NoSQL数据库
下一篇:
SQL数据操作基础
标题录入,一次不能超过6条
留言
评论