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

数据的基本的查询语句

 

   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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值