易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

sql server2005 建表遇到的问题.

在sqlserver2005中用sql语句写代码,生成数据表
CREATE TABLE [t_ActivityRecord] (
[activityId] [nchar]  (10) NOT NULL,
[activityName] [nvarchar]  (50) NOT NULL,
[activityMark] [decimal]  (18,3) NOT NULL,
[activityStatement] [ntext]  NOT NULL,
[activityDateTime] [date]  NOT NULL,
[activityClass] [nchar]  (10) NOT NULL,
[classNo] [nchar]  (10) NOT NULL,
[term] [nchar]  (10) NOT NULL)
结果一运行,就出现下面的错误:
Column, parameter, or variable #5: Cannot find data type date.
分析原因:是因为开始数据库在sql server2008中建的,有数据类型date,而sql  server2005中没有数据类型date,所以导致了上面的错误.
解决方法:将"date"数据类型改成了"datetime".
再次运行,成功.问题解决. ......

sql语言

select *from customers
 
select *from orders
 
select customers.cust_id, orders.order_num  from customers inner join orders on customers.cust_id=orders.cust_id
 
select customers.cust_id, orders.order_num  from customers left outer join orders on customers.cust_id=orders.cust_id
 使用带聚集函数的连接
select customers.cust_id,count(orders.order_num) as num_ord from customers inner join orders on customers.cust_id = orders.cust_id group by customers.cust_id
select customers.cust_id,count(orders.order_num) as num_ord from customers left outer join orders on customers.cust_id = orders.cust_id group by customers.cust_id
 
  ......

sql中 in 、not in 、exists、not exists 用法和差别


exists (sql 返回结果集为真) 
not exists (sql 不返回结果集为真) 
如下: 
表A 
ID NAME 
1    A1 
2    A2 
3  A3 
表B 
ID AID NAME 
1    1 B1 
2    2 B2 
3    2 B3 
表A和表B是1对多的关系 A.ID => B.AID 
SELECT ID,NAME from A WHERE EXIST (SELECT * from B WHERE A.ID=B.AID) 
执行结果为 
1 A1 
2 A2 
原因可以按照如下分析 
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=1) 
--->SELECT * from B WHERE B.AID=1有值返回真所以有数据 
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=2) 
--->SELECT * from B WHERE B.AID=2有值返 ......

SQL测试 交集、并集、差集、笛卡尔积

并集:
使用 UNION 运算符组合多个结果
SELECT name,num from Table1
UNION
SELECT name,num from Table2
注意:查询的字段个数必须相同,Table2的字段类型要跟Table1的相同.
如果使用 UNION 运算符,那么单独的 SELECT 语句不能包含其自己的 ORDER BY 或 COMPUTE 子句。只能在最后一个 SELECT 语句的后面使用一个 ORDER BY 或 COMPUTE 子句;该子句适用于最终的组合结果集。GROUP BY 和 HAVING 子句只能在单独的 SELECT 语句中指定。
只用UNION有重复记录只取一条,用UNION ALL 时取所有重复记录
FULLl JOIN是表示并集
SELECT * from Table1 FULLl JOIN Table2 ON table1.id=table2.id
交集:
SELECT * from table1 AS a JOIN table2 AS b ON a.name =b.name
差集:
NOT IN 表示差集
SELECT * from table1 WHERE name NOT IN (SELECT name from table2)
笛卡尔积:
SELECT * from table1 CROSS JOIN table2 
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。
不过,如果添加一个 WHERE 子句,则交叉联接的作用将同内联接一样。
注意:不能使用ON 关键字,只能用WHERE条件
unio ......

SQL 中With as 的用法

一.WITH AS的含义
WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。
特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。
二.使用方法
先看下面一个嵌套的查询语句:
select * from person.StateProvince where CountryRegionCode in
(select CountryRegionCode from person.CountryRegion where Name like 'C%')
上面的查询语句使用了一个子查询。虽然这条SQL语句并不复杂,但如果嵌套的层次过多,会使SQL语句非常难以阅读和维护。因此,也可以使用表变量的方式来解决这个问题,SQL语句如下:
declare @t table(Country ......

SQL 语句练习


–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_i ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [66] [67] [68] [69] 70 [71] [72] [73] [74] [75]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号