根据提供的文件信息,我们可以归纳总结出一系列与SQL相关的知识点,这些知识点主要涵盖了基本的数据操作语言(DML)命令,如INSERT、UPDATE、DELETE等,以及更高级的数据查询语言(DQL)技巧,例如使用聚合函数、连接操作和特定查询条件等。 ### 一、基本SQL语句 #### 1. INSERT INTO 用于向数据库表中插入新的记录。 - **语法**:`INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);` - **示例**:`INSERT INTO user (username, password, age) VALUES ('李老四', '6666', 45);` #### 2. UPDATE 用于更新表中的现有记录。 - **语法**:`UPDATE 表名 SET 列名 = 值, 列名 = 值 [WHERE 条件];` - **示例**:`UPDATE users SET password = 'newpassword' WHERE username = '李老四';` #### 3. DELETE FROM 用于删除表中的记录。 - **语法**:`DELETE FROM 表名 [WHERE 条件];` - **示例**:`DELETE FROM users WHERE username = '李老四';` ### 二、高级查询技巧 #### 4. 使用条件进行查询 - **语法**:`SELECT * FROM 表名 WHERE 条件;` - **示例**:`SELECT * FROM employees WHERE UPPER(city) IN ('LONDON', 'SEATTLE');` 此查询会返回城市为“伦敦”或“西雅图”的所有雇员信息。 #### 5. DATEDIFF 函数 用于计算两个日期之间的差值。 - **语法**:`SELECT DATEDIFF(时间单位, 日期1, 日期2) AS 别名 FROM 表名;` - **示例**:`SELECT DATEDIFF(day, OrderDate, GETDATE()) AS no_of_days FROM table1;` 此查询返回订单日期与当前日期之间的天数。 #### 6. CHARINDEX 函数 用于查找一个字符串在另一个字符串中首次出现的位置。 - **语法**:`SELECT CHARINDEX(子串, 字符串) FROM 表名;` - **示例**:`SELECT CHARINDEX('wonderful', notes) FROM titles;` 此查询返回字符串"wonderful"在titles表的notes列中首次出现的位置。 #### 7. TOP 子句 用于限制查询结果的数量。 - **语法**:`SELECT TOP 百分比|数字 列名 FROM 表名;` - **示例**:`SELECT TOP 50 PERCENT title FROM titles;` 此查询返回titles表中前50%的书籍标题。 #### 8. BETWEEN 运算符 用于选择值位于指定范围内的记录。 - **语法**:`SELECT * FROM 表名 WHERE 列名 BETWEEN 起始值 AND 终止值;` - **示例**:`SELECT * FROM book WHERE price BETWEEN 30 AND 50;` 此查询返回价格在30到50元之间的所有书籍。 #### 9. IN 运算符 用于匹配一组值中的任意一个。 - **语法**:`SELECT * FROM 表名 WHERE 列名 IN (值1, 值2, ...);` - **示例**:`SELECT * FROM book WHERE price IN (30, 40, 50, 60);` 此查询返回价格为30、40、50或60元的所有书籍。 #### 10. LIKE 运算符 用于基于模式匹配来搜索记录。 - **语法**:`SELECT * FROM 表名 WHERE 列名 LIKE '模式';` - **示例**: - `SELECT * FROM book WHERE publishing LIKE '*电*';` 返回出版社包含“电”的所有记录。 - `SELECT * FROM book WHERE publishing LIKE '电*';` 返回出版社以“电”开头的所有记录。 ### 三、聚合函数 - **SUM()**:计算列的总和。 - **COUNT()**:计算行的数量。 - **AVG()**:计算列的平均值。 - **MAX()**:找出列的最大值。 - **MIN()**:找出列的最小值。 #### 示例 - **SUM()**:`SELECT SUM(price) AS 合计 FROM book;` - **COUNT()**:`SELECT COUNT(*) AS 数量 FROM book;` - **AVG()**:`SELECT AVG(price) AS 平均价格 FROM book;` - **MAX()**:`SELECT MAX(price) AS 最贵书 FROM book;` - **MIN()**:`SELECT MIN(price) AS 最便宜书 FROM book;` ### 四、表连接 - **CROSS JOIN**:交叉连接,返回两个表的笛卡尔积。 - **LEFT JOIN** / **RIGHT JOIN**:左连接和右连接,分别返回左侧表或右侧表的所有记录,即使没有匹配项也会显示。 - **INNER JOIN**:内连接,仅返回两个表中有匹配项的记录。 #### 示例 - **CROSS JOIN**:`SELECT x.name, y.name FROM x CROSS JOIN y;` - **LEFT JOIN**:`SELECT y.name, x.name FROM x LEFT JOIN y ON x.refid = y.id;` - **RIGHT JOIN**:`SELECT y.name, x.name FROM x RIGHT JOIN y ON x.refid = y.id;` - **INNER JOIN**:`SELECT t1.ProductID, t2.VendorID, t2.Name FROM table1 t1 INNER JOIN table2 t2 ON t1.VendorID = t2.VendorID;` ### 五、COMPUTE BY 子句 用于对查询结果进行汇总。 - **语法**:`SELECT ... FROM ... ORDER BY ... COMPUTE 聚合函数(列名);` - **示例**:`SELECT RateId, ConnectionFee, Rate FROM UTC_Rate ORDER BY RateId COMPUTE SUM(ConnectionFee), SUM(Rate);` ### 六、DISTINCT 关键字 用于去除重复记录。 - **语法**:`SELECT DISTINCT 列名 FROM 表名;` - **示例**:`SELECT DISTINCT Rate FROM UTC_Rate;` 以上就是从提供的文件中整理出来的一些关键SQL知识点。这些知识点对于掌握SQL基础和提升SQL技能都非常重要,尤其在面试准备过程中更是不可或缺的部分。希望这些内容能够帮助你在SQL的学习道路上更进一步。
剩余18页未读,继续阅读
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助