您的位置:首页 > 数据库

测试工作中常用到的SQL语句

2016-02-22 10:19 316 查看

数据的基本的查询语句

 

   select * from table where clue_id=90 and contract_number='127283' order by id desc;

= 等于
<> 不等于
>

大于

< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式

 

数据的插入与删除

    6. 插入列,还有一种是在指定列插入数据

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

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

    7.  删除语句

DELETE FROM 表名称 WHERE 列名称 = 值

    8. update语句,更新某一行中的若干列

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

 

高级查询

    9. 选取查询出来的结果的前5或者前5%,这样的查询语句在不同类型的数据库中是不一样的

        Mysql中:

SELECT column_name(s)
FROM table_name
LIMIT number

    Oracle中:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

    SQLServer中:

SELECT TOP number|percent column_name(s)
FROM table_name

 

    10.  like 查询,like 'n%','%qqq%','%p',查询以n开头,包含qqq,以p结尾

            还有一个是“_”通配符:_表示一个字符

SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'
LIKE 'C_r_er'

        not like 'n%'表示查询不包含以n开头的

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

    11.  In操作符

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

    12.  BETWEEN 操作符:操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 还有not between操作符

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

    13.  联合查询(join,union)

        如果需要查看两个表中的一些信息可以这样做:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P

        还可以用join来做

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

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

分组查询

    14.  使用group by进行分组查询

select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)
from score (注释:这里的score是表名)
group by studentID

说明:在表score中查询,按strdentID字段分组,显示strdentID字段和score字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达式,例如用一个列名作为参数的聚合函数

        使用having子句进行分组筛选

select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)
from score (注释:这里的score是表名)
group by studentID
having count(score)>1

说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件。

 

 

转载于:https://my.oschina.net/u/2603916/blog/618446

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: