﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-这一片海，源于那一瓢水-文章分类-sql</title><link>http://www.blogjava.net/hefang/category/45425.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 25 Jun 2010 09:57:40 GMT</lastBuildDate><pubDate>Fri, 25 Jun 2010 09:57:40 GMT</pubDate><ttl>60</ttl><item><title>SQL语句字符串处理大全(转)</title><link>http://www.blogjava.net/hefang/articles/324478.html</link><dc:creator>何方</dc:creator><author>何方</author><pubDate>Fri, 25 Jun 2010 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/hefang/articles/324478.html</guid><wfw:comment>http://www.blogjava.net/hefang/comments/324478.html</wfw:comment><comments>http://www.blogjava.net/hefang/articles/324478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hefang/comments/commentRss/324478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hefang/services/trackbacks/324478.html</trackback:ping><description><![CDATA[<p>常用的字符串函数有：</p>
<p>　　一、字符转换函数</p>
<p>　　1、ASCII()</p>
<p>　　返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中，纯数字的字符串可不用&#8216;&#8217;括起来，但含其它字符的字符串必须用&#8216;&#8217;括起来使用，否则会出错。</p>
<p>　　2、CHAR()</p>
<p>　　将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值，CHAR() 返回NULL 。</p>
<p>　　3、LOWER()和UPPER()</p>
<p>　　LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。</p>
<p>　　4、STR()</p>
<p>　　把数值型数据转换为字符型数据。</p>
<p>　　STR ([，length[， ]])</p>
<p>　　length 指定返回的字符串的长度，decimal 指定返回的小数位数。如果没有指定长度，缺省的length 值为10， decimal 缺省值为0。</p>
<p>　　当length 或者decimal 为负值时，返回NULL;</p>
<p>　　当length 小于小数点左边(包括符号位)的位数时，返回length 个*;</p>
<p>　　先服从length ，再取decimal ;</p>
<p>　　当返回的字符串位数小于length ，左边补足空格。</p>
<p>　　二、去空格函数</p>
<p>　　1、LTRIM() 把字符串头部的空格去掉。</p>
<p>　　2、RTRIM() 把字符串尾部的空格去掉。</p>
<p>　　三、取子串函数</p>
<p>　　1、left()</p>
<p>　　LEFT (， )</p>
<p>　　返回character_expression 左起 integer_expression 个字符。</p>
<p>　　2、RIGHT()</p>
<p>　　RIGHT (， )</p>
<p>　　返回character_expression 右起 integer_expression 个字符。</p>
<p>　　3、SUBSTRING()</p>
<p>　　SUBSTRING (， ， length)</p>
<p>　　返回从字符串左边第starting_ position 个字符起length个字符的部分。</p>
<p>　　四、字符串比较函数</p>
<p>　　1、CHARINDEX()</p>
<p>　　返回字符串中某个指定的子串出现的开始位置。</p>
<p>　　CHARINDEX (&lt;&#8217;substring_expression&#8217;&gt;， )</p>
<p>　　其中substring _expression 是所要查找的字符表达式，expression 可为字符串也可为列名表达式。如果没有发现子串，则返回0 值。</p>
<p>　　此函数不能用于TEXT 和IMAGE 数据类型。</p>
<p>　　2、PATINDEX()</p>
<p>　　返回字符串中某个指定的子串出现的开始位置。</p>
<p>　　PATINDEX (&lt;&#8217;%substring _expression%&#8217;&gt;， )其中子串表达式前后必须有百分号&#8220;%&#8221;否则返回值为0。</p>
<p>　　与CHARINDEX 函数不同的是，PATINDEX函数的子串中可以使用通配符，且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。</p>
<p>　　五、字符串操作函数</p>
<p>　　1、QUOTENAME()</p>
<p>　　返回被特定字符括起来的字符串。</p>
<p>　　QUOTENAME (&lt;&#8217;character_expression&#8217;&gt;[， quote_ character]) 其中quote_ character 标明括字符串所用的字符，缺省值为&#8220;[]&#8221;。</p>
<p>　　2、REPLICATE()</p>
<p>　　返回一个重复character_expression 指定次数的字符串。</p>
<p>　　REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值，则返回NULL 。</p>
<p>　　3、REVERSE()</p>
<p>　　将指定的字符串的字符排列顺序颠倒。</p>
<p>　　REVERSE () 其中character_expression 可以是字符串、常数或一个列的值。</p>
<p>　　4、REPLACE()</p>
<p>　　返回被替换了指定子串的字符串。</p>
<p>　　REPLACE (， ， ) 用string_expression3 替换在string_expression1 中的子串string_expression2。</p>
<p>　　4、SPACE()</p>
<p>　　返回一个有指定长度的空白字符串。</p>
<p>　　SPACE () 如果integer_expression 值为负值，则返回NULL 。</p>
<p>　　5、STUFF()</p>
<p>　　用另一子串替换字符串指定位置、长度的子串。</p>
<p>　　STUFF (， ， ，)</p>
<p>　　如果起始位置为负或长度值为负，或者起始位置大于character_expression1 的长度，则返回NULL 值。</p>
<p>　　如果length 长度大于character_expression1 中 start_ position 以右的长度，则character_expression1 只保留首字符。</p>
<p>　　六、数据类型转换函数</p>
<p>　　1、CAST()</p>
<p>　　CAST ( AS [ length ])</p>
<p>　　2、CONVERT()</p>
<p>　　CONVERT ([ length ]， [， style])</p>
<p>　　1)data_type为SQL Server系统定义的数据类型，用户自定义的数据类型不能在此使用。</p>
<p>　　2)length用于指定数据的长度，缺省值为30。</p>
<p>　　3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。</p>
<p>　　4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符，即CHAR或VARCHAR数据类型是最大长度。</p>
<p>　　5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型，最多为8000个字符。</p>
<p>　　6)把整数值转换为MONEY或SMALLMONEY类型，按定义的国家的货币单位来处理，如人民币、美元、英镑等。</p>
<p>　　7)BIT类型的转换把非零值转换为1，并仍以BIT类型存储。</p>
<p>　　8)试图转换到不同长度的数据类型，会截短转换值并在转换值后显示&#8220; &#8221;，以标识发生了这种截断。</p>
<p>　　9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号，不同的样式编号有不同的输出格式。</p>
<p>　　七、日期函数</p>
<p>　　1、day(date_expression)</p>
<p>　　返回date_expression中的日期值</p>
<p>　　2、month(date_expression)</p>
<p>　　返回date_expression中的月份值</p>
<p>　　3、year(date_expression)</p>
<p>　　返回date_expression中的年份值</p>
<p>　　4、DATEADD()</p>
<p>　　DATEADD (， ， )</p>
<p>　　返回指定日期date 加上指定的额外日期间隔number 产生的新日期。</p>
<p>&nbsp;</p>
<p>　　5、DATEDIFF()</p>
<p>　　DATEDIFF (， ， )</p>
<p>　　返回两个指定日期在datepart 方面的不同之处，即date2 超过date1的差距值，其结果值是一个带有正负号的整数值。</p>
<p>　　6、DATENAME()</p>
<p>　　DATENAME (， )</p>
<p>　　以字符串的形式返回日期的指定部分此部分。由datepart 来指定。</p>
<p>　　7、DATEPART()</p>
<p>　　DATEPART (， )</p>
<p>　　以整数值的形式返回日期的指定部分。此部分由datepart 来指定。</p>
<img src ="http://www.blogjava.net/hefang/aggbug/324478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hefang/" target="_blank">何方</a> 2010-06-25 17:46 <a href="http://www.blogjava.net/hefang/articles/324478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sql语法简明一览（转）</title><link>http://www.blogjava.net/hefang/articles/324466.html</link><dc:creator>何方</dc:creator><author>何方</author><pubDate>Fri, 25 Jun 2010 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/hefang/articles/324466.html</guid><wfw:comment>http://www.blogjava.net/hefang/comments/324466.html</wfw:comment><comments>http://www.blogjava.net/hefang/articles/324466.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hefang/comments/commentRss/324466.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hefang/services/trackbacks/324466.html</trackback:ping><description><![CDATA[<p>--数据操作<br />
SELECT --从数据库表中检索数据行和列<br />
INSERT --向数据库表添加新数据行<br />
DELETE --从数据库表中删除数据行<br />
UPDATE --更新数据库表中的数据<br />
--数据定义<br />
CREATE TABLE --创建一个数据库表<br />
DROP TABLE --从数据库中删除表<br />
ALTER TABLE --修改数据库表结构<br />
CREATE VIEW --创建一个视图<br />
DROP VIEW --从数据库中删除视图<br />
CREATE INDEX --为数据库表创建一个索引<br />
DROP INDEX --从数据库中删除索引<br />
CREATE PROCEDURE --创建一个存储过程<br />
DROP PROCEDURE --从数据库中删除存储过程<br />
CREATE TRIGGER --创建一个触发器<br />
DROP TRIGGER --从数据库中删除触发器<br />
CREATE SCHEMA --向数据库添加一个新模式<br />
DROP SCHEMA --从数据库中删除一个模式<br />
CREATE DOMAIN --创建一个数据值域<br />
ALTER DOMAIN --改变域定义<br />
DROP DOMAIN --从数据库中删除一个域<br />
--数据控制<br />
GRANT --授予用户访问权限<br />
DENY --拒绝用户访问<br />
REVOKE --解除用户访问权限<br />
--事务控制<br />
COMMIT --结束当前事务<br />
ROLLBACK --中止当前事务<br />
SET TRANSACTION --定义当前事务数据访问特征<br />
--程序化SQL<br />
DECLARE --为查询设定游标<br />
EXPLAN --为查询描述数据访问计划<br />
OPEN --检索查询结果打开一个游标<br />
FETCH --检索一行查询结果<br />
CLOSE --关闭游标<br />
PREPARE --为动态执行准备SQL 语句<br />
EXECUTE --动态地执行SQL 语句<br />
DESCRIBE --描述准备好的查询 <br />
---局部变量<br />
declare @id char(10)<br />
--set @id = '10010001'<br />
select @id = '10010001' <br />
<br />
---全局变量<br />
---必须以@@开头<br />
<br />
<br />
<br />
--IF ELSE<br />
declare @x int @y int @z int<br />
select @x = 1 @y = 2 @z=3<br />
if @x &gt; @y<br />
print 'x &gt; y' --打印字符串'x &gt; y'<br />
else if @y &gt; @z<br />
print 'y &gt; z'<br />
else print 'z &gt; y'<br />
<br />
<br />
<br />
--CASE<br />
use pangu<br />
update employee<br />
set e_wage =<br />
case<br />
when job_level = &#8217;1&#8217; then e_wage*1.08<br />
when job_level = &#8217;2&#8217; then e_wage*1.07<br />
when job_level = &#8217;3&#8217; then e_wage*1.06<br />
else e_wage*1.05<br />
end<br />
<br />
<br />
<br />
--WHILE CONTINUE BREAK<br />
declare @x int @y int @c int<br />
select @x = 1 @y=1<br />
while @x &lt; 3<br />
begin<br />
print @x --打印变量x 的值<br />
while @y &lt; 3<br />
begin<br />
select @c = 100*@x + @y<br />
print @c --打印变量c 的值<br />
select @y = @y + 1<br />
end<br />
select @x = @x + 1<br />
select @y = 1<br />
end<br />
<br />
<br />
<br />
--WAITFOR<br />
--例 等待1 小时2 分零3 秒后才执行SELECT 语句<br />
waitfor delay &#8217;01:02:03&#8217;<br />
select * from employee<br />
--例 等到晚上11 点零8 分后才执行SELECT 语句<br />
waitfor time &#8217;23:08:00&#8217;<br />
select * from employee<br />
<br />
<br />
<br />
<br />
***SELECT***<br />
<br />
<br />
<br />
select *(列名) from table_name(表名) where column_name operator value<br />
ex:(宿主)<br />
select * from stock_information where stockid = str(nid)<br />
stockname = 'str_name' <br />
stockname like '% find this %' <br />
stockname like '[a-zA-Z]%' --------- ([]指定值的范围)<br />
stockname like '[^F-M]%' --------- (^排除指定范围)<br />
--------- 只能在使用like关键字的where子句中使用通配符)<br />
or stockpath = 'stock_path'<br />
or stocknumber &lt; 1000<br />
and stockindex = 24<br />
not stock*** = 'man'<br />
stocknumber between 20 and 100<br />
stocknumber in(10,20,30)<br />
order by stockid desc(asc) --------- 排序，desc-降序，asc-升序<br />
order by 1,2 --------- by列号<br />
stockname = (select stockname from stock_information where stockid = 4)<br />
--------- 子查询<br />
--------- 除非能确保内层select只返回一个行的值，<br />
--------- 否则应在外层where子句中用一个in限定符<br />
select distinct column_name form table_name --------- distinct指定检索独有的列值，不重复<br />
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name<br />
select stockname , "stocknumber" = count(*) from table_name group by stockname<br />
--------- group by 将表按行分组,指定列中有相同的值<br />
having count(*) = 2 --------- having选定指定的组<br />
<br />
<br />
<br />
select * <br />
from table1, table2 <br />
where table1.id *= table2.id -------- 左外部连接，table1中有的而table2中没有得以null表示<br />
table1.id =* table2.id -------- 右外部连接 <br />
<br />
<br />
<br />
select stockname from table1<br />
union [all] ----- union合并查询结果集，all-保留重复行<br />
select stockname from table2<br />
<br />
<br />
<br />
***insert***<br />
<br />
<br />
<br />
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")<br />
value (select Stockname , Stocknumber from Stock_table2)---value为select语句<br />
<br />
<br />
<br />
***update***<br />
<br />
<br />
<br />
update table_name set Stockname = "xxx" [where Stockid = 3]<br />
Stockname = default<br />
Stockname = null<br />
Stocknumber = Stockname + 4<br />
<br />
<br />
<br />
***delete***<br />
<br />
<br />
<br />
delete from table_name where Stockid = 3<br />
truncate table_name ----------- 删除表中所有行，仍保持表的完整性<br />
drop table table_name --------------- 完全删除表<br />
<br />
<br />
<br />
***alter table*** --- 修改数据库表结构<br />
<br />
<br />
<br />
alter table database.owner.table_name add column_name char(2) null .....<br />
sp_help table_name ---- 显示表已有特征<br />
create table table_name (name char(20), age smallint, lname varchar(30))<br />
insert into table_name select ......... ----- 实现删除列的方法（创建新表）<br />
alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束<br />
<br />
<br />
<br />
***function(/*常用函数*/)***<br />
<br />
<br />
<br />
----统计函数----<br />
AVG --求平均值<br />
COUNT --统计数目<br />
MAX --求最大值<br />
MIN --求最小值<br />
SUM --求和<br />
<br />
<br />
<br />
--AVG<br />
use pangu<br />
select avg(e_wage) as dept_avgWage<br />
from employee<br />
group by dept_id<br />
<br />
<br />
<br />
--MAX<br />
--求工资最高的员工姓名<br />
use pangu<br />
select e_name<br />
from employee<br />
where e_wage =<br />
(select max(e_wage)<br />
from employee)<br />
<br />
<br />
<br />
--STDEV()<br />
--STDEV()函数返回表达式中所有数据的标准差<br />
<br />
<br />
<br />
--STDEVP()<br />
--STDEVP()函数返回总体标准差<br />
<br />
<br />
<br />
--VAR()<br />
--VAR()函数返回表达式中所有值的统计变异数<br />
<br />
<br />
<br />
--VARP()<br />
--VARP()函数返回总体变异数<br />
<br />
<br />
<br />
----算术函数----<br />
<br />
<br />
<br />
/***三角函数***/<br />
SIN(float_expression) --返回以弧度表示的角的正弦<br />
COS(float_expression) --返回以弧度表示的角的余弦<br />
TAN(float_expression) --返回以弧度表示的角的正切<br />
COT(float_expression) --返回以弧度表示的角的余切<br />
/***反三角函数***/<br />
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角<br />
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角<br />
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角<br />
ATAN2(float_expression1,float_expression2) <br />
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角<br />
DEGREES(numeric_expression)<br />
--把弧度转换为角度返回与表达式相同的数据类型可为<br />
--INTEGER/MONEY/REAL/FLOAT 类型<br />
RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为<br />
--INTEGER/MONEY/REAL/FLOAT 类型<br />
EXP(float_expression) --返回表达式的指数值<br />
LOG(float_expression) --返回表达式的自然对数值<br />
LOG10(float_expression)--返回表达式的以10 为底的对数值<br />
SQRT(float_expression) --返回表达式的平方根<br />
/***取近似值函数***/<br />
CEILING(numeric_expression) --返回&gt;=表达式的最小整数返回的数据类型与表达式相同可为<br />
--INTEGER/MONEY/REAL/FLOAT 类型<br />
FLOOR(numeric_expression) --返回&lt;=表达式的最小整数返回的数据类型与表达式相同可为<br />
--INTEGER/MONEY/REAL/FLOAT 类型<br />
ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据<br />
--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型<br />
ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为<br />
--INTEGER/MONEY/REAL/FLOAT 类型<br />
SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型<br />
--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型<br />
PI() --返回值为&#960; 即3.1415926535897936<br />
RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数<br />
<br />
<br />
<br />
<br />
----字符串函数----<br />
ASCII() --函数返回字符表达式最左端字符的ASCII 码值<br />
CHAR() --函数用于将ASCII 码转换为字符<br />
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值<br />
LOWER() --函数把字符串全部转换为小写<br />
UPPER() --函数把字符串全部转换为大写<br />
STR() --函数把数值型数据转换为字符型数据<br />
LTRIM() --函数把字符串头部的空格去掉<br />
RTRIM() --函数把字符串尾部的空格去掉<br />
LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串<br />
CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置<br />
SOUNDEX() --函数返回一个四位字符码 <br />
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值 <br />
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异<br />
--0 两个SOUNDEX 函数返回值的第一个字符不同<br />
--1 两个SOUNDEX 函数返回值的第一个字符相同<br />
--2 两个SOUNDEX 函数返回值的第一二个字符相同<br />
--3 两个SOUNDEX 函数返回值的第一二三个字符相同<br />
--4 两个SOUNDEX 函数返回值完全相同<br />
<br />
<br />
<br />
<br />
QUOTENAME() --函数返回被特定字符括起来的字符串<br />
/*select quotename('abc', '{') quotename('abc')<br />
运行结果如下<br />
----------------------------------{<br />
{abc} [abc]*/<br />
<br />
<br />
<br />
REPLICATE() --函数返回一个重复character_expression 指定次数的字符串<br />
/*select replicate('abc', 3) replicate( 'abc', -2)<br />
运行结果如下<br />
----------- -----------<br />
abcabcabc NULL*/<br />
<br />
<br />
<br />
REVERSE() --函数将指定的字符串的字符排列顺序颠倒<br />
REPLACE() --函数返回被替换了指定子串的字符串<br />
/*select replace('abc123g', '123', 'def')<br />
运行结果如下<br />
----------- -----------<br />
abcdefg*/<br />
<br />
<br />
<br />
SPACE() --函数返回一个有指定长度的空白字符串<br />
STUFF() --函数用另一子串替换字符串指定位置长度的子串<br />
<br />
<br />
<br />
<br />
----数据类型转换函数----<br />
CAST() 函数语法如下<br />
CAST() (&lt;expression&gt; AS &lt;data_ type&gt;[ length ])<br />
CONVERT() 函数语法如下<br />
CONVERT() (&lt;data_ type&gt;[ length ], &lt;expression&gt; [, style])<br />
<br />
<br />
<br />
select cast(100+99 as char) convert(varchar(12), getdate())<br />
运行结果如下<br />
------------------------------ ------------<br />
199 Jan 15 2000<br />
<br />
<br />
<br />
----日期函数----<br />
DAY() --函数返回date_expression 中的日期值<br />
MONTH() --函数返回date_expression 中的月份值<br />
YEAR() --函数返回date_expression 中的年份值<br />
DATEADD(&lt;datepart&gt; ,&lt;number&gt; ,&lt;date&gt;) <br />
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期<br />
DATEDIFF(&lt;datepart&gt; ,&lt;number&gt; ,&lt;date&gt;)<br />
--函数返回两个指定日期在datepart 方面的不同之处<br />
DATENAME(&lt;datepart&gt; , &lt;date&gt;) --函数以字符串的形式返回日期的指定部分<br />
DATEPART(&lt;datepart&gt; , &lt;date&gt;) --函数以整数值的形式返回日期的指定部分<br />
GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间<br />
<br />
<br />
<br />
----系统函数----<br />
APP_NAME() --函数返回当前执行的应用程序的名称<br />
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值<br />
COL_LENGTH(&lt;'table_name'&gt;, &lt;'column_name'&gt;) --函数返回表中指定字段的长度值<br />
COL_NAME(&lt;table_id&gt;, &lt;column_id&gt;) --函数返回表中指定字段的名称即列名<br />
DATALENGTH() --函数返回数据表达式的数据的实际长度<br />
DB_ID(['database_name']) --函数返回数据库的编号<br />
DB_NAME(database_id) --函数返回数据库的名称<br />
HOST_ID() --函数返回服务器端计算机的名称<br />
HOST_NAME() --函数返回服务器端计算机的名称<br />
IDENTITY(&lt;data_type&gt;[, seed increment]) [AS column_name])<br />
--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中<br />
/*select identity(int, 1, 1) as column_name<br />
into newtable<br />
from oldtable*/<br />
ISDATE() --函数判断所给定的表达式是否为合理日期<br />
ISNULL(&lt;check_expression&gt;, &lt;replacement_value&gt;) --函数将表达式中的NULL 值用指定值替换<br />
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值<br />
NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值<br />
NULLIF(&lt;expression1&gt;, &lt;expression2&gt;)<br />
--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
sql中的保留字<br />
<br />
<br />
<br />
action add aggregate all <br />
alter after and as <br />
asc avg avg_row_length auto_increment <br />
between bigint bit binary <br />
blob bool both by <br />
cascade case char character <br />
change check checksum column <br />
columns comment constraint create <br />
cross current_date current_time current_timestamp <br />
data database databases date <br />
datetime day day_hour day_minute <br />
day_second dayofmonth dayofweek dayofyear <br />
dec decimal default delayed <br />
delay_key_write delete desc describe <br />
distinct distinctrow double drop <br />
end else escape escaped <br />
enclosed enum explain exists <br />
fields file first float <br />
float4 float8 flush foreign <br />
from for full function <br />
global grant grants group <br />
having heap high_priority hour <br />
hour_minute hour_second hosts identified <br />
ignore in index infile <br />
inner insert insert_id int <br />
integer interval int1 int2 <br />
int3 int4 int8 into <br />
if is isam join <br />
key keys kill last_insert_id <br />
leading left length like <br />
lines limit load local <br />
lock logs long longblob <br />
longtext low_priority max max_rows <br />
match mediumblob mediumtext mediumint <br />
middleint min_rows minute minute_second <br />
modify month monthname myisam <br />
natural numeric no not <br />
null on optimize option <br />
optionally or order outer <br />
outfile pack_keys partial password <br />
precision primary procedure process <br />
processlist privileges read real <br />
references reload regexp rename <br />
replace restrict returns revoke <br />
rlike row rows second <br />
select set show shutdown <br />
smallint soname sql_big_tables sql_big_selects <br />
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit <br />
sql_small_result sql_big_result sql_warnings straight_join <br />
starting status string table <br />
tables temporary terminated text <br />
then time timestamp tinyblob <br />
tinytext tinyint trailing to <br />
type use using unique <br />
unlock unsigned update usage <br />
values varchar variables varying <br />
varbinary with write when <br />
where year year_month zerofill</p>
<img src ="http://www.blogjava.net/hefang/aggbug/324466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hefang/" target="_blank">何方</a> 2010-06-25 17:15 <a href="http://www.blogjava.net/hefang/articles/324466.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初学MySql 记录1</title><link>http://www.blogjava.net/hefang/articles/324458.html</link><dc:creator>何方</dc:creator><author>何方</author><pubDate>Fri, 25 Jun 2010 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/hefang/articles/324458.html</guid><wfw:comment>http://www.blogjava.net/hefang/comments/324458.html</wfw:comment><comments>http://www.blogjava.net/hefang/articles/324458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hefang/comments/commentRss/324458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hefang/services/trackbacks/324458.html</trackback:ping><description><![CDATA[<p>int 4&nbsp; 可定义 最长可以是11<br />
double<br />
char&nbsp; 定长字符串<br />
varchar(255)<br />
datatime <br />
&nbsp;</p>
<p>---创建数据库<br />
create database mydata;</p>
<p>--创表<br />
use mydata;<br />
create table dept<br />
(<br />
deptno int primary key,&nbsp;&nbsp;--主键<br />
dname varchar(14),<br />
loc varchar(13)<br />
);</p>
<p>---创建另一张表<br />
create table emp<br />
(<br />
empno int primary key,<br />
name varchar(10),<br />
job varchar(10),<br />
mgr int,<br />
hiredate datetime,<br />
sal double,<br />
comm double,<br />
deptno int,<br />
foreign key (deptno) references dept(deptno)<br />
);&nbsp;</p>
<p>---查询有多少数据库<br />
show databases;<br />
---查询数据库下有多少张表<br />
show tables;<br />
---查询表结构<br />
desc emp;</p>
<p>----表里有多少数据<br />
select * from emp;<br />
---插入数据<br />
insert into dept values(1,'a','a');<br />
---删除数据<br />
delete form dept where dept.deptno =1;<br />
---更新数据<br />
delete dept set dname ='d' where deptno =5;<br />
---提交<br />
commit</p>
<p>---MySql简单的排序&nbsp;&nbsp; 从第五个开始取，取2条数据<br />
select * from dept order by deptno limit 5,2;</p>
<p><br />
（数据库中的自动递增会影响我们写程序）<br />
---自动递增<br />
create table test1<br />
(<br />
id int primary key auto_increment,<br />
title varchar(255)<br />
);</p>
<p><br />
----转换时间类型<br />
select now();---当前时间<br />
---转换日期格式<br />
select date_format(now(),'%Y-%m-%d %H:%i:%s');<br />
---插入日期数据<br />
insert into emp values(32,'test','test',32,'1989-10-10 12:12:12',8080,8080,2);</p>
<img src ="http://www.blogjava.net/hefang/aggbug/324458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hefang/" target="_blank">何方</a> 2010-06-25 17:08 <a href="http://www.blogjava.net/hefang/articles/324458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sql Server语法</title><link>http://www.blogjava.net/hefang/articles/324457.html</link><dc:creator>何方</dc:creator><author>何方</author><pubDate>Fri, 25 Jun 2010 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/hefang/articles/324457.html</guid><wfw:comment>http://www.blogjava.net/hefang/comments/324457.html</wfw:comment><comments>http://www.blogjava.net/hefang/articles/324457.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hefang/comments/commentRss/324457.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hefang/services/trackbacks/324457.html</trackback:ping><description><![CDATA[<p>----创建数据库<br />
Create DATABASE database-name</p>
<p>----删除数据库<br />
drop database dbname</p>
<p>----备份sql server<br />
--- 创建 备份数据的 device<br />
USE master<br />
EXEC sp_addumpdevice 'disk', 'testBack',</p>
<p>'c:\mssql7backup\MyNwind_1.dat'<br />
--- 开始 备份<br />
BACKUP DATABASE pubs TO testBack</p>
<p>---创建新表<br />
create table tabname(col1 type1 [not null] [primary key],col2 type2</p>
<p>[not null],..)<br />
---根据已有的表创建新表： <br />
create table tab_new like tab_old ---(使用旧表创建新表)<br />
create table tab_new as select col1,col2&#8230; from tab_old definition</p>
<p>---删除新表<br />
drop table tabname<br />
---增加一个列<br />
Alter table tabname add column col type<br />
---------列增加后将不能删除。DB2中列加上后数据类型也不能改变，唯一能改变是增加varchar类型的长度。</p>
<p>---添加主键： Alter table tabname add primary key(col) <br />
---删除主键： Alter table tabname drop primary key(col)</p>
<p>---创建索引：create [unique] index idxname on tabname(col&#8230;.) <br />
---删除索引：drop index idxname<br />
---索引是不可更改的，想更改必须删除重新建。</p>
<p>---创建视图：create view viewname as select statement <br />
---删除视图：drop view viewname</p>
<p>---几个简单的基本的sql语句<br />
--选择：<br />
select * from table1 where 范围<br />
--插入：<br />
insert into table1(field1,field2) values(value1,value2)<br />
--删除：<br />
delete from table1 where 范围<br />
--更新：<br />
update table1 set field1=value1 where 范围<br />
--查找：<br />
select * from table1 where field1 like &#8217;%value1%&#8217; ---like的语</p>
<p>--排序：<br />
select * from table1 order by field1,field2 [desc]<br />
--总数：<br />
select count as totalcount from table1<br />
--求和：<br />
select sum(field1) as sumvalue from table1<br />
--平均：<br />
select avg(field1) as avgvalue from table1<br />
--最大：<br />
select max(field1) as maxvalue from table1<br />
--最小：<br />
select min(field1) as minvalue from table1</p>
<p>--随机查询数据<br />
select newid()<br />
---查询所有表<br />
select name from sysobjects where type='u'<br />
--查询表中有几个列<br />
select name from syscolumns where id=object_id('transinfo')<br />
--初始化表<br />
truncate table test<br />
---压缩数据库<br />
dbcc shrinkdatabase('testssh')<br />
--转移数据库给新用户以已存在用户权限<br />
exec sp_change_users_login 'update_one','whb','sa'<br />
go<br />
--检查备份集<br />
RESTORE VERIFYONLY from disk='E:\dvbbs.bak'<br />
---日志清除<br />
SET NOCOUNT ON<br />
DECLARE @LogicalFileName sysname,<br />
@MaxMinutes INT,<br />
@NewSize INT</p>
<p>----SQL SERVER中直接循环写入数据<br />
declare @i int<br />
set @i=1<br />
while @i&lt;30<br />
begin<br />
insert into test (userid) values(@i)<br />
set @i=@i+1<br />
end<br />
---存储更改全部表<br />
Create PROCEDURE dbo.User_ChangeObjectOwnerBatch<br />
@OldOwner as NVARCHAR(128),<br />
@NewOwner as NVARCHAR(128)<br />
AS</p>
<p>DECLARE @Name as NVARCHAR(128)<br />
DECLARE @Owner as NVARCHAR(128)<br />
DECLARE @OwnerName as NVARCHAR(128)</p>
<p>DECLARE curObject CURSOR FOR <br />
select 'Name' = name,<br />
'Owner' = user_name(uid)<br />
from sysobjects<br />
where user_name(uid)=@OldOwner<br />
order by name</p>
<p>OPEN curObject<br />
FETCH NEXT FROM curObject INTO @Name, @Owner<br />
WHILE(@@FETCH_STATUS=0)<br />
BEGIN <br />
if @Owner=@OldOwner <br />
begin<br />
set @OwnerName = @OldOwner + '.' + rtrim(@Name)<br />
exec sp_changeobjectowner @OwnerName, @NewOwner<br />
end<br />
-- select @name,@NewOwner,@OldOwner</p>
<p>FETCH NEXT FROM curObject INTO @Name, @Owner<br />
END</p>
<p>close curObject<br />
deallocate curObject<br />
GO</p>
<img src ="http://www.blogjava.net/hefang/aggbug/324457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hefang/" target="_blank">何方</a> 2010-06-25 17:06 <a href="http://www.blogjava.net/hefang/articles/324457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>