好几年没写SQL语句了。现在到了新的team,需要用到数据库。作为QA的话时常需要使用客户端工具连接到数据库中找寻或修改数据。这么长时间没使用,一些SQL的使用技巧都忘得差不多了。晚上看了一些资料,花了1个多小时又捡起了曾经的知识。现在总结一下以方便以后查阅。

  1. SQL不是大小写敏感的。

  2. 分号是分割多条SQL语句的标准的分隔符,所以在单条SQL语句后面总加上分隔符是不会出错的。

  3. DISTINCT关键字用于剔除重复的结果数据。SELECT DISTINCT City FROM Customers;意味着从Customers表中返回不重复的City值。

  4. ORDER BY用于对查询结果排序。 ORDER BY column_name ASC表示递增排序,也是默认顺序,可以省略ASCORDER BY column_name DESC表示递减排序; ORDER BY后面可跟多个列名进行排序。

  5. 返回指定数目的记录。在SQL Server/MS Access中可以使用 SELECT TOP number|percent column_name(s)
    FROM table_name;
    MySQl中语法是 SELECT column_name(s)
    FROM table_name
    LIMIT number;
    Oracle中语法是SELECT column_name(s)
    FROM table_name
    WHERE ROWNUM <= number;
    . SELECT TOP number PERCENT * FROM table可以返回指定指定百分数的数据。

  6. 使用LIKE可以匹配字符串值,同时可以使用通配符。%匹配0或多个字符,_匹配一个字符,[charlist]匹配一组字符,[^charlist][!charlist]表示匹配不在此列表中的字符。

  7. 使用AS关键字可以给列或表起别名。也可以给组合后的列起别名,如 SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address
    FROM Customers;

  8. 使用JOIN关键字可以合并两个或连个以上的表的数据行,要基于所有表中的某一列建立一个连接条件。Join有四种:

    • INNER JOIN返回两个表中满足条件的行数据。
    • LEFT JOIN返回左表所有行数据及满足条件的右表行数据。
    • RIGHT JOIN返回右表的所有行数据及满足条件的左表行数据。
    • FULL JOIN返回左表和右表所有行数据行。
  9. UNION用于合并两个或多个查询结果。要求查询结果的列数及数据类型要一样。

  10. SELECT INTO可以将一个表中数据插入到另一个新表中。如 SELECT *
    INTO CustomersBackup2013
    FROM Customers;
    它还有个巧妙的用法是创建一个空的新表格,其schema与后者一致,方法是SELECT *
    INTO newtable
    FROM table1
    WHERE 1=0;

  11. INSERT INTO SELECTSELECT INTO使用较相似,不同的是SELECT INTO会创建新表,而INSERT INTO SELECT是插入到已存在的表中。

  12. 一些常用的SQL函数。(注意这些函数并一定都是通用的,但所有数据库基本上都有类似的功能)

    聚合函数

    • AVG() - 求平均值
    • COUNT() - 返回行数
    • FIRST() - 返回第一个值
    • LAST() - 返回最后一个值
    • MAX() - 返回最大值
    • MIN() - 返回最小值
    • SUM() - 求和

    其他常用函数

    • UCASE() - 转换为大写
    • LCASE() - 转换为小写
    • MID() - 提取字符串
    • LEN() - 获取字符串长度
    • ROUND() - 对数据进行舍入
    • NOW() - 返回当前系统时间
    • FORMAT() - 格式化field的显示
  13. GROUP BY用于对使用了聚合函数的查询结果进行分组。这是一个很强大的语法。

  14. HAVING用于对使用了聚合函数的字段进行条件筛选。

如果要详细了解SQL的这些使用的话,我推荐http://www.w3schools.com/sql/default.asp。你不仅可以看到说明和示例,也可以随时实时练习。实在是不可不得的好网站。

SQL语法的重要知识点总结的更多相关文章

  1. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  2. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  3. SQL 语法总结

    学了一个月的java,开始有入门的感觉.这段时间接触到了java的JDBC, 发现学习这部分的内容还是要有SQL的基础,于是花费了几天时间学习了一下SQL语法,并将其总结于下. 选择数据 SELECT ...

  4. SQL语法和运算符(一)

    一个数据库通常包含一个或多个表.每个表由一个名字标识,表包含带有数据的记录(行). 一些最重要的SQL命令(SQL对大小写不敏感): 一.SQL语法 select:从数据库中提取数据 update:更 ...

  5. [转]MySQL 最基本的SQL语法/语句

    MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下.   DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...

  6. SQL语法整理

    SQL是Structured Query Language的缩写,中文全名为结构化查询语言,是一种用于数据存储,查询,更新和管理的关系数据库系统. SQL语法 创建表 create table tab ...

  7. ORACLE分页查询SQL语法——最高效的分页

    --1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT  ...

  8. [Android新手区] SQLite 操作详解--SQL语法

    该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...

  9. 有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎

    有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎 presto,hive,drill,calcite,sparksq

随机推荐

  1. UVa 490 - Rotating Sentences

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...

  2. 遇到一个奇葩的问题,could not load the assembly file XXX downloaded from the Web

    在我这编译好好滴,发给客户那边居然不通过,报could not load the assembly file:///xxx.dll, 查阅了一些文档后,发现原来是文件的安全问题,是由于我把文件压缩打包 ...

  3. Ruby-打包程序

    1.下载 ocra-1.3.1.gem 文件 2.打开“start Command prompt with ruby”  命令窗口 3.输入 “gem install e:\ocra-1.3.1.ge ...

  4. 《机器学习实战》学习笔记——第13章 PCA

    1. 降维技术 1.1 降维的必要性 1. 多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯.2. 高维空间本身具有稀疏性.一维正态分布有68%的值落于正负 ...

  5. constraint更新表列约束默认值

    --更新约束 alter TABLE [dbo].[Sk_Recruit] drop constraint DF_Sk_Recruit_lastcommenttime go   alter TABLE ...

  6. Oracle 10g -- 修改DB的编码

    修改DB的原因是:因为我的DB不支持中文,所以每当我向数据库表中插入一条数据的时候,中文就都变了类似于“?(是反问号)”的乱码,为了能顺利插入成功,故做了此次修改; 系统:windows XP 英文版 ...

  7. Qrels supervision information以及document collection,如何划分为train、test,保证test中doc对于train来说是new document

    简单的思想:转换为最小割问题 无向图的全局最小割算法:Stoer-Wagner算法 简介见:Wiki介绍得比较好并有源代码 最小割算法:http://blog.csdn.net/markpen/art ...

  8. python学习笔记-Day7

    class Province: # 静态字段(类变量/属性) country = '中国' def __init__(self, name): # 普通字段(实例变量/属性) self.name = ...

  9. mysql提示2002错误的解决方法

    前两天,负责的一个项目出现问题,总是提示"SQLSTATE[HY000] [2002] 由于目标计算机积极拒绝,无法连接",由于负责服务器的同事联系不到,我无法登陆服务器查看原因, ...

  10. Win7中不能调试windows service

    多年前玩过一次windows service,觉得挺简单的. 这次工作要维护产品中的windows service,发现不是那么简单,vs附加调试器的窗体中无法找到windows service进程. ...