--1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,
--显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。
select emp_no ,emp_name ,dept ,
       isnull(convert(char(10),birthday,120),'日期不详') birthday
from employee
order by dept 
--2、查找与喻自强在同一个单位的员工姓名、性别、部门和职称
select emp_no,emp_name,dept,title
from employee
where emp_name<>'喻自强' and dept in
   (select dept from employee
    where emp_name='喻自强') 
--3、按部门进行汇总,统计每个部门的总工资
select dept,sum(salary)
from employee
group by dept 
--4、查找商品名称为14寸显示器商品的销售情况,
--显示该商品的编号、销售数量、单价和金额
select a.prod_id,qty,unit_price,unit_price*qty totprice
from sale_item a,product b
where a.prod_id=b.prod_id and prod_name='14寸显示器' 
--5、在销售明细表中按产品编号进行汇总,统计每种产品的销售数量和金额
select prod_id,sum(qty) totqty,sum(qty*unit_price) totprice
from sale_item
group by prod_id 
--6、使用convert函数按客户编号统计每个客户1996年的订单总金额
select cust_id,sum(tot_amt) totprice
from sales
where convert(char(4),order_date,120)='1996'
group by cust_id 
--7、查找有销售记录的客户编号、名称和订单总额
select a.cust_id,cust_name,sum(tot_amt) totprice
from customer a,sales b
where a.cust_id=b.cust_id
group by a.cust_id,cust_name 
--8、查找在1997年中有销售记录的客户编号、名称和订单总额
select a.cust_id,cust_name,sum(tot_amt) totprice
from customer a,sales b
where a.cust_id=b.cust_id and convert(char(4),order_date,120)='1997'
group by a.cust_id,cust_name 
--9、查找一次销售最大的销售记录
select order_no,cust_id,sale_id,tot_amt
from sales
where tot_amt=
   (select max(tot_amt)
    from sales) 
--10、查找至少有3次销售的业务员名单和销售日期
select emp_name,order_date
from employee a,sales b 
where emp_no=sale_id and a.emp_no in
  (select sale_id
   from sales
   group by sale_id
   having count(*)>=3)
order by emp_name 
--11、用存在量词查找没有订货记录的客户名称
select cust_name
from customer a
where not exists
   (select *
    from sales b
    where a.cust_id=b.cust_id) 
--12、使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额
--订货日期不要显示时间,日期格式为yyyy-mm-dd
--按客户编号排序,同一客户再按订单降序排序输出
select a.cust_id,cust_name,convert(char(10),order_date,120),tot_amt
from customer a left outer join sales b on a.cust_id=b.cust_id
order by a.cust_id,tot_amt desc 
--13、查找16M DRAM的销售情况,要求显示相应的销售员的姓名、
--性别,销售日期、销售数量和金额,其中性别用男、女表示
select emp_name 姓名, 性别= case a.sex  when 'm' then '男'
                                       when 'f' then '女' 
                                       else '未'
                                       end,
        销售日期= isnull(convert(char(10),c.order_date,120),'日期不详'),
        qty 数量, qty*unit_price as 金额
from employee a, sales b, sale_item c,product d
where d.prod_name='16M DRAM' and d.pro_id=c.prod_id and
      a.emp_no=b.sale_id and b.order_no=c.order_no
--14、查找每个人的销售记录,要求显示销售员的编号、姓名、性别、
--产品名称、数量、单价、金额和销售日期
select emp_no 编号,emp_name 姓名, 性别= case a.sex when 'm' then '男'
                                       when 'f' then '女' 
                                       else '未'
                                       end,
      prod_name 产品名称,销售日期= isnull(convert(char(10),c.order_date,120),'日期不详'),
      qty 数量, qty*unit_price as 金额
from employee a left outer join sales b on a.emp_no=b.sale_id , sale_item c,product d
where d.pro_id=c.prod_id and b.order_no=c.order_no 
--15、查找销售金额最大的客户名称和总货款
select cust_name,d.cust_sum
from   customer a,
       (select cust_id,cust_sum
        from (select cust_id, sum(tot_amt) as cust_sum
              from sales
              group by cust_id ) b
        where b.cust_sum = 
               ( select max(cust_sum)
                 from (select cust_id, sum(tot_amt) as cust_sum
                       from sales
                       group by cust_id ) c )
        ) d
where a.cust_id=d.cust_id  
--16、查找销售总额少于1000元的销售员编号、姓名和销售额
select emp_no,emp_name,d.sale_sum
from   employee a,
       (select sale_id,sale_sum
        from (select sale_id, sum(tot_amt) as sale_sum
              from sales
              group by sale_id ) b
        where b.sale_sum <1000             
        ) d
where a.emp_no=d.sale_id  
--17、查找至少销售了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额
select a.cust_id,cust_name,b.prod_id,prod_name,d.qty,d.qty*d.unit_price
from customer a, product b, sales c, sale_item d
where a.cust_id=c.cust_id and d.prod_id=b.prod_id and 
      c.order_no=d.order_no and a.cust_id in (
      select cust_id
      from  (select cust_id,count(distinct prod_id) prodid
             from (select cust_id,prod_id
                   from sales e,sale_item f
                   where e.order_no=f.order_no) g
             group by cust_id
             having count(distinct prod_id)>=3) h ) 
--18、查找至少与世界技术开发公司销售相同的客户编号、名称和商品编号、商品名称、数量和金额
select a.cust_id,cust_name,d.prod_id,prod_name,qty,qty*unit_price
from customer a, product b, sales c, sale_item d
where a.cust_id=c.cust_id and d.prod_id=b.prod_id and 
      c.order_no=d.order_no  and not exists
  (select f.*
   from customer x ,sales e, sale_item f
   where cust_name='世界技术开发公司' and x.cust_id=e.cust_id and
         e.order_no=f.order_no and not exists
           ( select g.*
             from sale_item g, sales  h
             where g.prod_id = f.prod_id and g.order_no=h.order_no and
                   h.cust_id=a.cust_id)
    )   
19、查找表中所有姓刘的职工的工号,部门,薪水
select emp_no,emp_name,dept,salary
from employee
where emp_name like '刘%'
20、查找所有定单金额高于20000的所有客户编号
select cust_id
from sales
where tot_amt>20000 
21、统计表中员工的薪水在40000-60000之间的人数
select count(*)as 人数
from employee
where salary between 40000 and 60000
22、查询表中的同一部门的职工的平均工资,但只查询"住址"是"上海市"的员工
select avg(salary) avg_sal,dept 
from employee 
where addr like '上海市%'
group by dept
23、将表中住址为"上海市"的员工住址改为"北京市"
update employee  
set addr like '北京市'
where addr like '上海市'
24、查找业务部或会计部的女员工的基本信息。
select emp_no,emp_name,dept
from employee 
where sex='F'and dept in ('业务','会计')
25、显示每种产品的销售金额总和,并依销售金额由大到小输出。
select prod_id ,sum(qty*unit_price)
from sale_item 
group by prod_id
order by sum(qty*unit_price) desc
26、选取编号界于‘C0001’和‘C0004’的客户编号、客户名称、客户地址。
select CUST_ID,cust_name,addr
from customer 
where cust_id between 'C0001' AND 'C0004'
27、计算出一共销售了几种产品。
select count(distinct prod_id) as '共销售产品数'
from sale_item 
28、将业务部员工的薪水上调3%。
update employee
set salary=salary*1.03
where dept='业务'

解决方案 »

  1.   

    好,已记录下来!建议最前面的SQL给出相关的结果
      

  2.   

    每次看到这样的帖子都要COPY,学习呀
      

  3.   

    到今天为止,人们对关系数据库做了大量的研究,并开发出关系数据语言,为操作关系数据库提供了方便的用户接口。关系数据语言目前有几十种,具有增加、删除、修改、查询、数据定义与控制等完整的数据库操作功能。通常把它们分为两类:关系代数类和关系演算类。   在这些语言中,结构化查询语言SQL以其强大的数据库操作功能、口语化、易学易用等特点,受到广泛的应用,成为数据库应用程序开发的一柄利剑。在数据库应用程序开发过程中,巧妙地使用SQL语句,可以简化编程,起到事半功倍的效果,本书中有些实例也大量使用了SQL语句。它由两部分组成,数据定义语言(DDL)和数据操作语言(DML)。   
    (1)   数据定义语言(DDL)   
    数据定义语言用来定义数据库的各级模式。常用关键字有:Create(建立数据表)、Alter(更改数据表)、Drop(删除数据表)。   
    建立数据表   
      CREATE   TABLE   table_name(   
      column1   DATATYPE   [NOT   NULL]   [NOT   NULL   PRIMARY   KEY],   
      column2   DATATYPE   [NOT   NULL],   
      ...   
      )   
      说明:上面的DATATYPE   指的是字段的类型,NUT   NULL   指是否为空,PRIMARY   KEY   指本表的主键。   
      建立索引    
      CREATE   INDEX   index_name   ON   table_name   (column_name)   
      说明:为数据表格的某个字段建立索引以增加查询时的速度。   
      更改数据表    
      ALTER   TABLE   table_name   ADD   COLUMN   column_name   DATATYPE   
      说明:增加一个字段。   
      ALTER   TABLE   table_name   ADD   PRIMARY   KEY   (column_name)   
      说明:将某个字段设为主键。   
      ALTER   TABLE   table_name   DROP   PRIMARY   KEY   (column_name)   
      说明:将某个字段的主键定义取消。   
      删除数据表   
      DROP   table_name   
      DROP   index_name   
      (2)   数据操作语言(DML)   
      数据操作语言(DML)用于操作数据表,如增加、删除、查询、修改等。常用关键字有:Insert(插入数据)、Delete(删除数据)、Select(查询数据)和Updata(修改数据)。   
      插入数据   
      INSERT   INTO   table_name(column1,column2,...)   VALUES   
    (value1,value2,   ...)   
      说明:在插入语句中,若不指明要插入字段则,按表中的字段顺序依次插入。另外,插入数据的类型应和所插入字段的类型相匹配。   
      INSERT   INTO   table_name   (column1,column2,...)   SELECT   
    columnx,columny,...   
      FROM   another_table   
      说明:通过一个子查询将别的表格相应字段的值插入该表格。   
      删除数据   
      DELETE   FROM   table_name   WHERE   conditions   
      说明:删除符合条件的记录。   
      查询数据   
      SELECT   column1,columns2,...   FROM   table_name   
      说明:把table_name   的相应字段查询出来。   
      SELECT   *   FROM   table_name   WHERE   column1   =   x   AND   column2   >   y   
      说明:这是一个带有条件的查询语句,‘*‘表示查询所有的字段,WHERE   之后是条件表达式。   
      SELECT   column1,column2   FROM   table_name   ORDER   BY   column2   
    [DESC]   
      说明:ORDER   BY   是指定以某个字段排序,[DESC]是指从大到小排列,若没有指明,则是从小到大排列。   
      SELECT   *   FROM   table1,table2   WHERE   
    table1.colum1=table2.column1   
      说明:这是一个组合查询,查询两个表格中   column1   
    字段具有相同值的记录。作为两个表中建立关系的字段,其类型必须匹配。   
      SELECT   COUNT   (*)   FROM   table_name   WHERE   column_name   =   x   
      说明:查询符合条件的记录数。   
      SELECT   SUM(column1)   FROM   table_name   
      说明:计算column1字段的数据总和。除了SUM之外,还可以用AVG()计算平均值   
    、用MAX()计算最大值、用MIN()计算最小值。   
      SELECT   *   FROM   table_name1   WHERE   EXISTS   (SELECT   *   FROM   
    table_name2   WHERE   
      conditions)   
      说明:这条查询语句用一个子查询语句作为该查询语句的条件。EXISTS指是否存在。   
      SELECT   *   FROM   table_name1   WHERE   column1   IN   (SELECT   column1   
    FROM   
      table_name2   WHERE   conditions   )   
      说明:IN后面接的是一个集合,表示将column1字段的值在集合中的所有记录从table_name1表中选出来。   
      SELECT   *   FROM   table_name1   WHERE   column1   LIKE   ‘x%‘   
      说明:该语句为模糊查询。这里的“%”是一个通配符,表示将column1字段中以x开头的所有记录选出来。   
      SELECT   *   FROM   table_name1   WHERE   column1   BETWEEN   x   AND   y   
      说明:BETWEEN   表示   column1   的值介于   x   和   y之间。   
      更改资料   
      UPDATE   table_name   SET   column1=‘x‘   WHERE   conditions   
      说明:该语句表示在某种条件下将column1字段的值改为x。若不加条件,则默认该字段全部更改。   
      以上是最基本的SQL语法知识,若想更深层次的了解,请参阅数据库方面的书籍。引用地址
    http://topic.csdn.net/u/20070417/10/83F250BC-60E2-4D54-B967-582207B51A41.html
      

  4.   

    --数据操作 
    SELECT             --从数据库表中检索数据行和列 
    INSERT             --向数据库表添加新数据行 
    DELETE             --从数据库表中删除数据行 
    UPDATE             --更新数据库表中的数据 
    --数据定义 
    CREATE   TABLE         --创建一个数据库表 
    DROP   TABLE           --从数据库中删除表 
    ALTER   TABLE           --修改数据库表结构 
    CREATE   VIEW           --创建一个视图 
    DROP   VIEW           --从数据库中删除视图 
    CREATE   INDEX         --为数据库表创建一个索引 
    DROP   INDEX           --从数据库中删除索引 
    CREATE   PROCEDURE       --创建一个存储过程 
    DROP   PROCEDURE         --从数据库中删除存储过程 
    CREATE   TRIGGER         --创建一个触发器 
    DROP   TRIGGER         --从数据库中删除触发器 
    CREATE   SCHEMA         --向数据库添加一个新模式 
    DROP   SCHEMA           --从数据库中删除一个模式 
    CREATE   DOMAIN         --创建一个数据值域 
    ALTER   DOMAIN         --改变域定义 
    DROP   DOMAIN           --从数据库中删除一个域 
    --数据控制 
    GRANT             --授予用户访问权限 
    DENY             --拒绝用户访问 
    REVOKE             --解除用户访问权限 
    --事务控制 
    COMMIT             --结束当前事务 
    ROLLBACK           --中止当前事务 
    SET   TRANSACTION         --定义当前事务数据访问特征 
    --程序化SQL 
    DECLARE             --为查询设定游标 
    EXPLAN             --为查询描述数据访问计划 
    OPEN             --检索查询结果打开一个游标 
    FETCH             --检索一行查询结果 
    CLOSE             --关闭游标 
    PREPARE             --为动态执行准备SQL   语句 
    EXECUTE             --动态地执行SQL   语句 
    DESCRIBE           --描述准备好的查询
      

  5.   

    分析所有表所占空间情况 收藏 
     CREATE PROCEDURE get_tableinfo ASif not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    create table  tablespaceinfo                         --创建结果存储表
                  (nameinfo varchar(50) , 
                   rowsinfo int , reserved varchar(20) , 
                   datainfo varchar(20)  , 
                   index_size varchar(20) , 
                   unused varchar(20) )
    delete from tablespaceinfo --清空数据表declare @tablename varchar(255)  --表名称declare @cmdsql varchar(500)DECLARE Info_cursor CURSOR FOR 
    select o.name  
    from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1 
         and o.name not like N'#%%'  order by o.nameOPEN Info_cursorFETCH NEXT FROM Info_cursor 
    INTO @tablename WHILE @@FETCH_STATUS = 0
    BEGIN  if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
      execute sp_executesql 
             N'insert into tablespaceinfo  exec sp_spaceused @tbname',
              N'@tbname varchar(255)',
              @tbname = @tablename  FETCH NEXT FROM Info_cursor 
      INTO @tablename 
    ENDCLOSE Info_cursor
    DEALLOCATE Info_cursor
    GO
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pb8/archive/2008/12/23/3591916.aspx
      

  6.   

    童装 快乐购 http://xsytz.taobao.com 
      

  7.   

     AJAX 很好
    可是有的公司要求jQuery  
    有的要求是ExtJs 要求不一
    Ajax太强大了
    也很广泛。