一个文章给您讲明白SQL重要语句及用法

SQL重要语句及用法详解

SQL(结构化查询语言)是与关系型数据库交互的标准语言,下面我将分类介绍最重要的SQL语句及其用法。

一、数据查询语句(SELECT)

1. 基础查询

SELECT * FROM 表名;
  • 查询表中所有数据

SELECT 列1, 列2 FROM 表名;
  • 查询指定列的数据

2. 条件查询(WHERE)

SELECT * FROM 表名 WHERE 条件;
  • 常用条件运算符:=<>><>=<=BETWEENLIKEIN

  • 示例:

  • SELECT * FROM 员工 WHERE 工资 > 5000;
    SELECT * FROM 产品 WHERE 类别 IN ('电子产品', '家居用品');
    SELECT * FROM 客户 WHERE 姓名 LIKE '张%';

    3. 排序(ORDER BY)

SELECT * FROM 表名 ORDER BY 列1 [ASC|DESC], 列2 [ASC|DESC];
  • ASC升序(默认),DESC降序

  • 示例:

SELECT * FROM 员工 ORDER BY 工资 DESC;

4. 分组统计(GROUP BY)

SELECT 列1, 聚合函数(列2) 
FROM 表名 
GROUP BY 列1;
  • 常用聚合函数:COUNT()SUM()AVG()MAX()MIN()

  • 示例

SELECT 部门, AVG(工资) FROM 员工 GROUP BY 部门;

5. 连接查询(JOIN)

SELECT a.列, b.列 
FROM 表1 a 
JOIN 表2 b ON a.关联列 = b.关联列;
  • 连接类型:

    • INNER JOIN(内连接):只返回匹配的行

    • LEFT JOIN(左连接):返回左表所有行,右表不匹配则为NULL

    • RIGHT JOIN(右连接):返回右表所有行,左表不匹配则为NULL

    • FULL JOIN(全连接):返回所有行,不匹配则为NULL。

二、数据操作语句(DML)

1. 插入数据(INSERT)

INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);

示例:

INSERT INTO 员工 (姓名, 工资) VALUES ('张三', 8000);

2. 更新数据(UPDATE)

UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 条件;
  • 注意:不加WHERE条件会更新所有行!

  • 示例:

UPDATE 员工 SET 工资=工资*1.1 WHERE 部门='技术部';

3. 删除数据(DELETE)

DELETE FROM 表名 WHERE 条件;
  • 注意:不加WHERE条件会删除所有数据!

  • 示例:

DELETE FROM 员工 WHERE 离职日期 IS NOT NULL;

三、数据定义语句(DDL)

1. 创建表(CREATE TABLE)

CREATE TABLE 表名 (
  列1 数据类型 [约束],
  列2 数据类型 [约束],
  ...
);
  • 常用数据类型:INTVARCHAR(n)DATEDECIMAL(m,n)BOOLEAN

  • 常用约束:PRIMARY KEYFOREIGN KEYNOT NULLUNIQUEDEFAULT

  • 示例:

CREATE TABLE 员工 (
  员工ID INT PRIMARY KEY,
  姓名 VARCHAR(50) NOT NULL,
  工资 DECIMAL(10,2),
  部门ID INT,
  FOREIGN KEY (部门ID) REFERENCES 部门(部门ID)
);

2. 修改表结构(ALTER TABLE)

ALTER TABLE 表名 ADD 列名 数据类型;  -- 添加列
ALTER TABLE 表名 DROP COLUMN 列名;   -- 删除列
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型; -- 修改列

3. 删除表(DROP TABLE)

DROP TABLE 表名;
  • 注意:这会删除表结构和所有数据!

四、高级SQL特性

1. 子查询

SELECT 列 FROM 表 
WHERE 列 IN (SELECT 列 FROM 表 WHERE 条件);

示例:

SELECT 姓名 FROM 员工 
WHERE 部门ID IN (SELECT 部门ID FROM 部门 WHERE 地点='北京');

2. 视图(VIEW)

CREATE VIEW 视图名 AS SELECT语句;

示例:

CREATE VIEW 高薪员工 AS
SELECT 姓名, 工资 FROM 员工 WHERE 工资 > 10000;

3. 索引(INDEX)

CREATE INDEX 索引名 ON 表名 (列);
  • 提高查询性能

  • 示例:

CREATE INDEX idx_员工姓名 ON 员工(姓名);

五、事务控制

BEGIN TRANSACTION;  -- 开始事务
-- 执行SQL语句
COMMIT;            -- 提交事务
-- 或
ROLLBACK;          -- 回滚事务

这些是SQL中最重要和最常用的语句,掌握它们可以完成绝大多数数据库操作任务。实际应用中,不同数据库系统(MySQL, Oracle, SQL Server等)可能会有一些语法差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@程序员ALMJ

打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值