当前位置:   article > 正文

SQL入门进阶级别常用语句语法整理_sql语法

sql语法

目录

一、SQL SELECT DISTINCT 语句 

二、特殊常用运算符

三、AND和OR运算符

四、ORDER BY 语句 

五、INSERT INTO 语句

六、UPDATE 语句

七、DELETE语句

八、TOP子句(一般是按筛选的)(并不是所有数据库都适用)

九、LIKE 和NOT LIKE

十、Alias 用法

十一、不同的 SQL JOIN

十二、UNION 操作符 

十三、ALTER TABLE 语句 

十四、函数

十五、GROUP BY 语句 

十六、HAVING 子句

十七、LEN() 函数 

十八、NOW() 函数

十九、FORMAT() 函数 

二十、如何将SQL从入门学到进阶级别


一、SQL SELECT DISTINCT 语句 

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。 

语法:

SELECT DISTINCT 列名称 FROM 表名称 

二、特殊常用运算符

1、不等运算符<>或!=

语法:

SELECT 列名称 FROM 表名称 WHERE<> 值 

2、BETWEEN 在某个范围(包含边界值),操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 

语法:

SELECT 列名称 FROM 表名称 WHEREBETWEEN 最小值AND 最大值 

3、LIKE 搜索某种模式

语法:

SELECT 列名称 FROM 表名称 WHERELIKE 值 

三、AND和OR运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 

四、ORDER BY 语句 

ORDER BY 语句用于根据指定的列对结果集进行排序。 

ORDER BY 语句默认按照升序对记录进行排序。字母也可以排序,默认从a开始升序排。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。 

升序降序组合语法:

SELECT 列名称1,列名称2 FROMORDER BY 列名称1 DESC,列名称2 ASC

看个特殊的例子:

以逆字母顺序显示公司名称,并以数字顺序显示顺序号 :

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC 

结果:

注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第 二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。总之一个原则,第一个列排序优先再考虑第二列的值排序

五、INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行。 

语法:

INSERT INTO 表名称 VALUES (值1, 值2,....) 

指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 

六、UPDATE 语句

Update 语句用于修改表中的数据。

语法:

UODATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

七、DELETE语句

1、指定删除语法:

DELETE FROM 表名称 WHERE 列名称 = 值 

2、删除所有行:

DELETE FROM table_name

或者

DELETE * FROM table_name 

高级语法来了:

八、TOP子句(一般是按筛选的)(并不是所有数据库都适用)

TOP 子句用于规定要返回的记录的数目。 

对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 

注释:并非所有的数据库系统都支持 TOP 子句。 

1、选取表中头两条数据

SELECT TOP 2 * FROM 表名称

2、选取百分之50 的记录

SELECT TOP 50 PERCENT * FROM 表名称

九、LIKE 和NOT LIKE

1、LIKE语法:

  1. SELECT column_name(s)
  2. FROM table_name
  3. WHERE column_name LIKE pattern

例如:从上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的 

SELECT * FROM Persons  WHERE City LIKE 'N%'

提示:"%" 可用于定义通配符(模式中缺少的字母)。 

 2、NOT LIKE

例子:

通过使用 NOT 关键字,我们可以从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人 

  1. SELECT * FROM Persons
  2. WHERE City NOT LIKE '%lon%'

3、使用“_”通配符,此通配符仅仅只能代替一个字符

例子:从authion表中筛选第一个字符后是“iyaweiye.com”的用户:

4、使用 [charlist] 通配符(并不是所有数据库都适用)

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

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

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

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

或者使用这种写法:

5、IN操作符

IN 操作符允许我们在 WHERE 子句中规定多个值。 

语法:

  1. SELECT column_name(s)
  2. FROM table_name
  3. WHERE column_name IN (value1,value2,...) 

十、Alias 用法

1、表的语法 :

SELECT column_name(s) FROM table_name AS alias_name

2、列的语法:

SELECT column_name AS alias_name FROM table_name

十一、不同的 SQL JOIN

  •  JOIN: 如果表中有至少一个匹配,则返回行
  •  LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  •  RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  •  FULL JOIN: 只要其中一个表中存在匹配,就返回行

1、INNER JOIN 关键字语法 

  1. SELECT column_name(s)
  2. FROM table_name1
  3. INNER JOIN table_name2
  4. ON table_name1.column_name=table_name2.column_name 

注释:INNER JOIN 与 JOIN 是相同的, INNER JOIN 关键字在表中存在至少一个匹配时返回行。 

2、LEFT JOIN 关键字

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有 匹配的行。 

语法:

  1. SELECT column_name(s)
  2. FROM table_name1
  3. LEFT JOIN table_name2
  4. ON table_name1.column_name=table_name2.column_name 

注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。 

LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。 

3、RIGHT JOIN 关键字 

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有 匹配的行。 

语法:

  1. SELECT column_name(s)
  2. FROM table_name1
  3. RIGHT JOIN table_name2
  4. ON table_name1.column_name=table_name2.column_name 

注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。 

RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。

4、ULL JOIN 关键字

语法 :

  1. SELECT column_name(s)
  2. FROM table_name1
  3. FULL JOIN table_name2
  4. ON table_name1.column_name=table_name2.column_name 

注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。 

FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 

中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配, 这些行同样会列出。 

十二、UNION 操作符 

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据 类型。同时,每条 SELECT 语句中的列的顺序必须相同。 

语法:

  1. SELECT column_name(s) FROM table_name1 UNION
  2. SELECT column_name(s) FROM table_name2 

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。 

十三、ALTER TABLE 语句 

1、如需在表中添加列,请使用下列语法: 

ALTER TABLE table_name ADD column_name datatype 

2、要删除表中的列,请使用下列语法:

ALTER TABLE table_name DROP COLUMN column_name 

3、要改变表中列的数据类型,请使用下列语法:

ALTER TABLE table_name  ALTER COLUMN column_name datatype 

十四、函数

语法:

SELECT function(列) FROM 表 

函数

描述

AVG(column) 

返回某列的平均值

COUNT(column) 

返回某列的行数(不包括 NULL 值)

COUNT(*) 

返回被选行数

MAX(column) 

返回某列的最高值

MIN(column) 

返回某列的最低值

SUM(column) 

  返回某列的总和

COUNT(DISTINCT column) 

返回相异结果的数目 

FIRST(column) 

返回在指定的域中第一个记录的值(SQLServer2000 不支持) 

LAST(column) 

返回在指定的域中最后一个记录的值(SQLServer2000 不支持) 

十五、GROUP BY 语句 

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。 

语法:

  1. SELECT column_name, aggregate_function(column_name)
  2. FROM table_name
  3. WHERE column_name operator value
  4. GROUP BY column_name

十六、HAVING 子句

SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。 

语法:

  1. SELECT column_name, aggregate_function(column_name)
  2. FROM table_name
  3. WHERE column_name operator value
  4. GROUP BY column_name
  5. HAVING aggregate_function(column_name) operator value

十七、LEN() 函数 

LEN 函数返回文本字段中值的长度。 

语法:

SELECT LEN(column_name) FROM table_name 

十八、NOW() 函数

NOW 函数返回当前的日期和时间。 

提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间。 

语法:

SELECT NOW() FROM table_name

十九、FORMAT() 函数 

FORMAT 函数用于对字段的显示进行格式化。 

语法:

SELECT FORMAT(column_name,format) FROM table_name 

参数                                        描述

column_name                  必需。要格式化的字段。  

format                             必需。规定格式。

二十、如何将SQL从入门学到进阶级别

学习 SQL(Structured Query Language)从入门到进阶需要一定的时间和经验积累。以下是一些建议,可以帮助你在学习过程中逐步提升自己的技能水平:

  1. 入门级别:

    • 了解SQL的基本概念:学习SQL的基本语法、关键词和常见操作符。
    • 学习如何创建表格:包括数据类型、主键和外键的概念。
    • 掌握基本的CRUD操作:包括INSERT、SELECT、UPDATE和DELETE等操作。
  2. 中级级别:

    • 理解复杂查询:学习如何使用JOIN、UNION和子查询等高级查询技巧。
    • 掌握聚合函数:包括SUM、AVG、COUNT、MAX和MIN等函数的使用。
    • 学习索引和性能优化:了解如何创建索引以及如何优化查询性能。
  3. 进阶级别:

    • 学习存储过程和触发器:理解如何编写存储过程和触发器,以实现复杂的业务逻辑。
    • 掌握事务处理:了解事务的概念,并学习如何管理事务以确保数据的完整性和一致性。
    • 深入学习数据库设计:包括范式化、反范式化等数据库设计理论,以及如何设计复杂的数据库结构。
  4. 实践和项目:

    • 在学习过程中,尝试通过解决实际问题或完成小型项目来应用所学知识,加深理解并积累经验。
    • 参与开源项目或者在工作中应用SQL,与他人交流经验,不断提升自己的技能水平。

在学习过程中,可以参考一些权威的教材、在线课程或者参加相关的培训,也可以多阅读SQL相关的技术文章和博客,了解行业最佳实践和新技术趋势。通过不断地实践和积累经验,你可以逐步提升你的SQL技能水平,从入门到进阶。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/692531
推荐阅读
相关标签
  

闽ICP备14008679号