根据需要和条件,查看并显示结果集,如果需要,可将结果集生成数据表
select:查什么,列筛选,可以用*代表全部列
from:在哪个表中查,
where:符合什么样的条件,行筛选
select:
        表示x不等于''的方法:
        1.x!=''
        2.x<>''
        3.x Not IN('')
        4.Not X=''

not
        and  (Between m and n)
        or
        查找某个字段未填写:x IS Null(题2)
        查找多个对象时,一种可以用or,另一种可以用 x IN('','','')
1.查询出客户年龄在20-30之间的客户ID和姓名;
    A.between 20 and 30
    B. >=20 and <=30
2.查询客户没有填写年龄信息的.
3.查询客户姓名为:X,Y,Z的客户ID,和年龄
  X or Y or Z

1.as:以字段名别名的方式显示.
2.distinct:去重,用法: distinct 去重字段名
3.聚合函数(max(),avg(),sum(),count(),min()共五个),where后不能跟聚合函数.
4.top(自然数, 20 percent,order by NewID()--随机生成行标识符)
    select top 5 * from Mdf-table-name order by NewID()
5.into:生成一个表,或者表结构,存储于master库中,如:
    where 1<>1,只要结构:
    select top 6 * from table where 1<>1---生成一个全结构的空表
    select top 6 * from table where x like '%s%'---生成一个临时表
from:
1.重命名;
 查询出哪些商品被购买的商品名称. 商品表和明细表.
 select 商品名称
 from 表名1 as 表1,表名2 as 表2
 where 表1.cno=表2.cno

也可以省略 as 直接跟空格 表1

2.结合子查询;
    两个表查询
    select 字段
    from 表1,表2
    where 表1.id=表2.id

可以换成以下写法:
    select 字段
    from 表1 as t1,表2 as t2   ---可以不要as写成空格
    where t1.id=t2.id

结合子查询:
    上述查询的是两个存在的表,如果有一个不是实表,只能使用下面的方法:
    select distinct 字段名
    from 表1 t1,
    (select distinct id from 表2)t2
    where t1.id=t2.id

where:
    1.数字:=,>,<,>=,<=,!=,<>,!>,!<
    2.字符:=,like,Contains
        匹配字符中间有空格的,必须使用双引号,如: ' "马  磊"'
        %:表示任意个字符;
        _(下划线):表示任意1个字符.
        如:
            like '15[89]%[^67]_ _ _'
            Contains:针对大文本,事先要对该字段进行全文检索.而like是精准度比较高.
            使用方法:Contains(字段名,'马%')
        如果在字符串里有通配符,就要使用转义符,如:
        select 字段名列表 from 表名 where 字段名='%/%123' escape '/'
        (查询全部结尾为%123的全部记录.)
    3.Not,And,Or
    4.Between...and
    select * from customer where cname between '陈男' and '马国磊'
    表示陈男到马国磊之间的数据,包含两者.系统按拼音排序后的结果.

5.IN
order by 字段列表  asc|desc排序
    如:
    order by 字段1 asc,字段2 desc---第一个字段值相同时按第二个字段
    如:对客户表按照年龄排序(升序) ,如果年龄一样,女性在前,男性在后.(order by)

查询出手机号码为135或者138开头,倒数第一二位为66的客户姓名和ID(like)
    查询出购买商品的客户号(distinct)
    
    查询出年龄最大的客户号和姓名(max)
        select cno,cname
        from customer
        A.order by cage desc    倒序排列,但如果有两个相同呢
        B.where cage=max(cage)  聚合函数不能写在where子句里
        使用嵌套方法解决:
        where cage=
            (
                select max(cage)
                from customer
            )
如果查询字符中包含通配符%_的,使用escape转义.

like '%/%33' escape '/'

查询男性客户的平均年龄;
    select avg(cage) as '平均年龄'
    from customer
    where csex='男'
查询出多少位客户有购物行为;
    select count(distinct cno) //如果只查询客户号,不太符合题意
    from 明细表
    如果查询姓名,就要嵌套查询:
    select cname as '姓名'  //明细表中没姓名,有客户号
    from customer
    where cno in
    (
        select distinct cno
        from 明细表
    )
查询出某一类商品库存情况;
    需要用到商品库存表和商品类别表。
    select sum(库存量字段) as '库存量'
    from 库存表
    where id =
    (
        select  id
        from 类别表
        where 类别='商品名'
    )

3.sql2008查询的更多相关文章

  1. sql2008 查询字段所属表

    select a.name as 表名, g.*from sysobjects as a left join syscolumns as b on a.id=b.id left JOIN sys.ex ...

  2. 向SQL2008R2导入Acess、excel数据

    一:导入Access数据 1.在sql2008查询分析 器中输入如下查询语句能查出access中的数据 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLE ...

  3. SQL2008和SQL2000可以跨服务器连接查询的测试实例

    测试目的: SQL2008 和 SQL2000 是否可以跨服务器连接查询 -- 测试环境: --A 虚拟机 XP ( IP : .0.0.213 )安装 SQL2000 个人版,并安装 SP4 补丁. ...

  4. 【读后感1】SQL2008技术内幕- SQL逻辑查询处理

    引言观点 1. 编程语言日新月异,但是从没有人否定sql 在现代编程中的巨大作用和 持续的可利用性.SQL以对人类友好的阅读体验提供数据查询能力( 相比其他编程语言 ), 同时在各种数据库平台中,基础 ...

  5. sql2008 表名为全数字时查询报错

    今天遇到个很奇葩的问题,在写一个应用程序时需要查询表的数据,但是表名是全数字的,直接查询会报错,于是想到给111的表名加一对中括号:即——>select * from [111] 刚开始还是报错 ...

  6. SQL2008数据表空间大小查询脚本

    --尽量少用触发器,否则数据库增长很快,特别是关于登陆的数据表字段不要用出发器,一周左右能使得数据库增长1G的空间. --数据库表空间大小查询脚本 IF  EXISTS (SELECT * FROM ...

  7. 查询SQL2008字段和注释

    SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = ...

  8. python 读取 查询 更新 删除 sql2008 类及应用

    import pymssql class MSSQL: def __init__(self,host,user,pwd,db): self.host = host self.user = user s ...

  9. 在SQL2008查找某数据库中的列是否存在某个值

    在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型: ...

随机推荐

  1. sqli-labs(十八)

    第五十五关:和上一关类似,只是拼凑的方法不一样,所以需要先判断后台是怎么拼凑的 分别输入id=1'--+         id=1"--+             id=') --+     ...

  2. MessageBox ---> error C2660: “CWnd::MessageBoxA”: 函数不接受 4 个参数

    解决办法: ::MessageBoxA(NULL,TEXT("程序即将退出,谢谢你的试用!"),TEXT("SIMPLETRBO有线调度台"),MB_OK); ...

  3. HDU 2604 Queuing(递推+矩阵)

    Queuing [题目链接]Queuing [题目类型]递推+矩阵 &题解: 这题想是早就想出来了,就坑在初始化那块,只把要用的初始化了没有把其他的赋值为0,调了3,4个小时 = = 本题是可 ...

  4. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  5. 强化学习---A3C

    Asynchronous Advantage Actor-Critic (A3C) 在RL任务中,我们本质上最终要学习的是策略(Policy) value-based方法:间接方法,即通过学习值函数( ...

  6. HashSet, HashTable

    HashTable 存储键值对 , Hashtable和Dictionary<TKey,TValue>都是存键值对 HashSet 只存储值,盛放不同的数据,相同的数据只保留一份 Hash ...

  7. datetime处理日期和时间

    datetime.now() # 获取当前datetimedatetime.utcnow() datetime(2017, 5, 23, 12, 20) # 用指定日期时间创建datetime 一.将 ...

  8. Python 构造一个可接受任意数量参数的函数

    为了能让一个函数接受任意数量的位置参数,可以使用一个* 参数 在这个例子中,rest 是由所有其他位置参数组成的元组.然后我们在代码中把它当成了一个序列来进行后续的计算

  9. 设计模式之State(状态)(转)

    State的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用? State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif ...

  10. Linux环境 vi/vim ESC无法退出原因

    原因是输入模式是中文的,需要切换成英文半角符号输入命令!