------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
一、单行插入
插入可分为:全部插入和部分插入
-全部插入的写法有两种:把所有的列名列出来、省略列名。
部分插入:只需把部分的列名列出来
INSERT [INTO]<表名> [列名]VALUES<值列表>
注意原则:对应一致,(,)values(,)
例如创建一个表:
create table t1
(id int, strnchar(5),date datetime)
--全部插入
INSERT t1(id,str ,date)VALUES(1,'a' ,'2010-1-5')
INSERT t1 VALUES(1,'a2' ,'2010-2-5')
--部分插入
insert t1(id,str)values(5,'55')
1、从现有的表【一个或多个A,A2】取数据放到现有的表B中【B必须已经存在】
语法
一个表
INSERT [INTO] <表名B>([列名])SELECT <列名>FROM<源表名A>
多个表
INSERT [INTO] <表名B>([列名]) SELECT <列名>FROM <源表名A>UNION SELECT <列名>FROM <源表名A2>
例如:
insertt3(x,y)
select id,str + CAST(dateasnvarchar(10))from t1 union
select a,b from t2
2、从现有的表【一个或多个A,A2】取数据放到新建的表B中【B原来不存在】
语法
SELECT (列名) INTO<新建的表名> FROM <现有的表>
1.语法
UPDATE<表名>SET <列名=更新值>[WHERE <更新条件>]
更新数据行:最好有WHERE <更新条件>
1.语法
DELETE[FROM] <表名> [WHERE<删除条件>]
注意事项:删除数据行:最好有WHERE <删除条件>,删除主表数据时,不能删除被从表外键值所引用的数据行。
五、删除所有数据-TRUNCATE
TRUNCATE TABLE <表名>
Truncate和Delete区别
1、使用TRUNCATE TABLE要比DELETE语句效率高
2、TRUNCATE TABLE没有WHERE删除条件
3、TRUNCATE TABLE可以重置自增长列
定义:查询是对数据库服务器数据进行检索的一种请求
SELECT 语句从SQL Server中检索出数据,然后以一个或多个结果集的形式将其返回给用户,结果集以表格排列,由行和列组成
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来
SELECT[ALL|DISTINCT][TOP n[PERCENT] ] select_list
FROM {<表资源>} [,…n]
[WHERE] <搜索条件>
[GROUP BY] {<分组表达式>}[,…n] [HAVING] <搜索条件>
[ORDER BY]{<字段名[ASC|DESC]>} [,…n]
每个关键字的含义:
DISTINCT 从结果集中消除了重复的行
TOP n 限定了要返回的行数
select_list选择列表指定按照指定顺序查找并显示的列,可以包含字段名,表达式,局部变量;字段名用“,”分开,最后一个除外 { *|{表名|表别名}.*|{字段名|表达式}[[AS]字段别名]|字段别名=表达式} [,...n]
FROM子句指定表资源,即从中检索到结果集数据的表的列表
WHERE子句指定限制查询的条件
ORDER BY子句对结果集按某种条件进行排序
GROUP BY 子句是对结果集进行分组
HAVING子句是在分组的时候,对字段或表达式指定搜索条件
注意事项: TOP后使用无符号的整数,如果TOP nPERCENT生成小数则取整
WITH TIES :返回与TOP n(PERCENT)行中的最后一行的值相同的行
使用ORDER BY 排序应注意的问题
SQL Server 并不主动为结果集中的行排序
SQL Server 缺省按升序排列
ORDER BY 子句中指定的列不一定要出现在选择列表中
ORDER BY 子句中可以引用某字段在选择列表中的位置而进行排序
可以按照字段名、计算出的值或表达式进行排序
ORDER BY 子句指定的列不能超过8060字节,不能用于数据类型text或 image 字段
in关键字
IN和多个OR运算符连起来的效果是等价的,使用IN时,注意IN列值中不能包含NULL值,这将返回不可预测的结果集
语法:where 列名[not] in(value_lise)
查询Northwind数据库中Suppliers表中的数据
要求:country字段为Japan或Italy
between and关键字
语法:where 列名[not] between 小值and 大值
注意事项:结果集中包含边缘值,相当于表达式(>=xAND <=y);要使结果集不包含边缘值,则使用(>xAND <y);要返回不在指定区域的行时,使用NOT BETWEEN;查询Northwind
Null值处理
语法:where 列名is [not] null
查询Northwind数据库中Suppliers表中CompanyName,Fax列的数据
要求:CompanyName不为空,和fax为空
注意事项:
C#中,String s=””和String s=null区别
String s=””;在内存中开辟了一块空的空间
而String s=null;连空间都没开辟
group by
语法:
SELECT [ALL | DISTINCT]select_list
FROM {<表资源>} [,…n]
[WHERE] <搜索条件>
[GROUP BY] {<分组表达式>}[,…n] [HAVING] <搜索条件>
[ORDER BY] {<字段名[ASC|DESC]>} [,…n]
注意事项:
--WHERE子句指定限制查询的条件,从数据源中去掉不符合其搜索条件的数据
--GROUP BY子句根据列的内容对结果集中的记录进行分组,并对组中数据进行汇总操作;常与聚合函数联合使用
--HAVING子句是在分组的时候,对字段或表达式指定搜索条件,去掉不符合其组搜索条件的各组数据行
使用GROUP BY时,注意:
对于指定的一组,只生成一条记录,不返回详细信息
可以有WHERE 子句,则只对满足WHERE 子句的记录进行分组和汇总
使用HAVING 子句,在分组的同时对字段或表达式指定搜索条件
只在使用GROUP BY子句的同时,才能使用HAVING子句来限制分组
------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------ 详细请查看:http://net.itheima.com/