网络学堂

  • 返回首页
  • 域名相关
  • 建站知识
  • SEO优化
  • 在线支付
  • 病毒攻防
  • ERP相关
  • OA相关
  • 软件外包
  • 短信相关
  • 服务器相关
  • ASP字符串函数大全

    函数 语法 功能  Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。  Trim Trim(string) 将字符串前后的空格去掉  Ltrim Ltrim(string) 将字符串前面的空格去掉  Rtrim Rtrim(string) 将字符串后面的空格去掉  Mid Mid(string,start,length) 从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串  Left Left(string,length) 从string字符串的左边取得length长度的字符串  Right Right(string,length) 从string字符串的右边取得length长度的字符串  LCase LCase(string) 将string字符串里的所有大写字母转化为小写字母  UCase UCase(string) 将string字符串里的所有大写字母转化为大写字母  StrComp StrComp(string1,string2[,compare]) 返回string1字符串与string2字符串的比较结果,如果两个字符串相同,则返回0,如果小于则返回-1,如果大于则返回1  InStr InStr(string1,string2[,compare]) 返回string1字符串在string2字符串中第一次出现的位置  Split Split(string1,delimiter[,count[,start]]) 将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。count返回的子字符串数目,-1指示返回所有子字符串。start为1执行文本比较;如果为0或者省略执行二进制比较。  Replace Replace(expression,find,replacewith[,compare[,count[,start]]]) 返回字符串,其中指定数目的某子字符串(find)被替换为另一个子字符串(replacewith)。 补充: Asc Asc函数提取字符串第一个字母的ANSI字符码。 用法为:result = Asc(string) 其中result是字符码,string是任意有效的字符串表达式。如果string为Empty,则产生一个实时错误。 AscB AscB函数提取字符串的第一个字节。 用法为:result = AscB(string) 其中result是Byte字类,string是任意有效的字符串表达式。如果string为Empty,则产生一个实时错误。 AscW AscW函数提取字符串第一个字母的Unicode字符码。 用法为:result = AscW(string) 其中result是Unicode,string是任意有效的字符串表达式。如果string为Empty,则产生一个实时错误。 InStr InStr函数识别某个记号在字符串中的首字母位置。 用法为:newstart = InStr([start, ]source, token[, compare]) 其中newstart时记号在字符串中的位置(如果没有的话则为0),start是查找的起始位置,source是要查找的字符串,token是要定位的字符串,compare是比较类型(0表示二进制比较,1表示忽略大小写的文本比较)。 InStrB InStrB函数是InStr的字节版,识别某个记号在字符串中的首字节位置。 用法为:newstart = InStrB([start, ]source, token[, compare]) 其中newstart时记号在字符串中的首字节位置(如果没有的话则为0),start是查找的起始位置,source是要查找的字符串,token是要定位的字符串,compare是比较类型(0表示二进制比较,1表示忽略大小写的文本比较)。 LCase LCase函数把字符串变为小写形式。 用法为:result = LCase(string) 其中result是小写字符串,string是任意有效的字符串表达式。 Left Left函数从字符串的起始处提取指定数目的字符。 用法为:result = Left(string,length) 其中result是字符串变量,string是有效的字符串表达式,length是表示返回多少字符的数值型表达式。 LeftB LeftB函数从字符串的起始处提取指定数目的字节。 用法为:result = LeftB(string,length) 其中result是字符串变量,string是有效的字符串表达式,length是表示提取的字节数的数值型表达式。 Len Len函数确定字符串的大小或存储这个变量需要多少字符。 用法为:result = Len(string | varname) 其中,result是字符串中的字符数或存储这个变量所需的字节数,string是任意有效的字符串表达式,varname是变量名。 LenB Len函数确定字符串的大小或存储这个变量需要多少字节。 用法为:result = LenB(string | varname) 其中,result是字符串中的字节数或存储这个变量所需的字节数,string是任意有效的字符串表达式,varname是变量名。 LTrim LTrim函数复制字符串并去掉前面的空格。 用法为:result = LTrim(string) 其中,result是去掉空格后的字符串,string是要去掉空格的有效字符串表达式。 Mid Mid函数从字符串的某个位置复制指定数目的字符。 用法为:result = Mid(string,start[,length]) 其中,result是结果字符串,string是要从中复制字符的表达式,start是string中复制的起始位置,length是要复制的字符数。 MidB Mid函数从字符串的某个位置复制指定数目的字节。 用法为:result = Mid(string,start[,length]) 其中,result是结果字符串,string是要从中复制字节的表达式,start是string中复制的起始位置,length是要复制的字节数。 Right Right函数从字符串的尾部提取指定数目的字符。 用法为:result = Right(string,length) 其中result是字符串变量,string是有效的字符串表达式,length是表示返回多少字符的数值型表达式。 RightB RightB函数从字符串的起始处提取指定数目的字节。 用法为:result = RightB(string,length) 其中result是字符串变量,string是有效的字符串表达式,length是表示提取的字节数的数值型表达式。 RTrim RTrim函数复制字符串并去掉尾部的空格。 用法为:result = RTrim(string) 其中,result是去掉空格后的字符串,string是要去掉空格的有效字符串表达式。 String String函数构造含有多个相同字符的字符串。 用法为:result = String(number, character) 其中,result是字符串变量,number是返回字符串的长度,character是用来构造返回字符串的字符码。 Trim Trim函数复制字符串并去掉首尾的空格。 用法为:result = Trim(string) 其中,result是去掉空格后的字符串,string是要去掉空格的有效字符串表达式。 UCase UCase函数把字符串变为大写形式。 用法为:result = UCase(string) 其中result是大写字符串,string是任意有效的字符串表达式。

  • asp实现将excel中的数据批量导入到access

    asp数据批量导入的原理是使用excel保存许多数据,然后将这个excel使用无组件上传到服务器上,然后打开excel,将里面的数据写入到数据库中。 这里我写的是将excel中的数据读出来,然后写入到数据库中 具体代码: ’连接excel数据库 path="./" Dim xlsconn,strsource,xlbook,xlsheet,i Dim myConn_Xsl,xlsrs,sql,objCmd   Set xlsconn = server.CreateObject("adodb.connection")  Set xlsrs = Server.CreateObject("Adodb.RecordSet") filename="商品"  file2="商品列表"  source=server.mappath(path&filename&".xls") myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &source& ";Extended Properties=Excel 8.0" xlsconn.open myConn_Xsl  sql = "Select * from ["&file2&"$]" xlsrs.open sql,xlsconn,1,1  If xlsrs.eof Then else i=1 response.write "" Do While not xlsrs.eof  goods_name=xlsrs("商品名") goods_images=xlsrs("图片") cat_id=xlsrs("商品分类") %>                   sql="insert into goods(goods_name,goods_images,cat_id) values(’"&goods_name&"’,’"&goods_images&"’,"&cat_id&")" conn.execute(sql) i=i+1  xlsrs.MoveNext     Loop  response.write "" End If xlsrs.close Response.write "共导入" & i-1 & "条记录." & vbCrLf set xlsconn=nothing  set objCmd=Nothing % >

  • ASP批量导入Excel到或者Access,Sql Server库中

    最近在研究批量导入数据的问题,这个其实没有什么难点,只是如果一次性数据全部导入的话,要是数据量小的话,还可以,要是几万条,肯定会出现延时问题。我研究了一下,结合一个朋友的建议,写了一个小导入程序,供大家参考! Dim ResultNum ’定义每次插入记录数 Dim Page ’定义循环次数 ResultNum = 100   ’定义每次插入200条记录 Page = Trim(Request.QueryString("Page")) If Page = "" Then    Page = 1 End If Page = Cint(Page) PageTmp = Page-1 ’计算当前记录数用 Set Rs = Server.CreateObject("Adodb.RecordSet")  Sql = "Select Count(ID) As Cnt From [Sheet1$]" Rs.Open Sql,Conn,1,1 Cnt = Rs("Cnt") Rs.Close PageSize = Cnt/ResultNum+1 ’统计总页数 If Page > PageSize Then    Set Rs = Nothing    Conn.Close    Set Conn = Nothing    Response.Write("已经到记录末尾!")    Response.End() End If Sql = "Select * From [Sheet1$] Where Id Between "&(PageTmp*ResultNum+1)&" And "&Page*ResultNum&"" Rs.Open Sql,Conn,1,1  If Rs.Eof And Rs.Bof Then %>     暂无商品! Else %>     正在插入条到条数据,请稍后……      Connstr1 = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source="& Server.MapPath("db/pdlfood.xls")    Set Conn1 = Server.CreateObject("Adodb.Connection")    Conn1.Open Connstr1       Do While Not Rs.Eof     Set Rs1 = Server.CreateObject("Adodb.RecordSet")     Sql1 = "Select * From [Sheet1$] Where FoodCode = "&Rs("FoodCode")&" "     Rs1.Open Sql1,Conn1,1,3     If Rs1.Eof And Rs1.Bof Then      Rs1.AddNew      Rs1("FoodCode") = Rs("FoodCode")      Rs1("FoodName") = Rs("FoodName")       Rs1.Update     Else     ’不做处理     End If     Rs1.Close     Set Rs1 = Nothing     Rs.MoveNext    Loop     Conn1.Close    Set Conn1 = Nothing    End If   Rs.Close Set Rs = Nothing Conn.Close Set Conn = Nothing  Response.Write("location.href(’?Page="&(Page+1)&"’);") %>

  • ASP里,将Excel导入到Access数据库

    用ASP编的一个网站,数据库是Access,数据库名称是atest,里面有个表格user,user表格有user和password两个字段现要将Excel表格(名称是test.xls)的数据导入到atest数据库的user表中,怎么实现?高手支招  ............................................................ 下面连接到test.xls表sheet1$ ’表后面要加个$的,一定要加这个符号  Set conn = Server.CreateObject("ADODB.Connection")  conn.Open "Driver={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & Server.MapPath("test.xls")  SQL1="select * from [sheet1$]"  Set rs = Server.CreateObject("ADODB.Recordset")  rs.Open SQL1, conn, 3, 3  ’下面连接到atest.mdb表user  curDir = Server.MapPath("atest.mdb")  Set conn1 = Server.CreateObject("ADODB.Connection")  conn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & curDir  Set rs1 = Server.CreateObject("ADODB.Recordset")  Set rs1.ActiveConnection = conn1  rs1.Source = "select * from user"  rs1.CursorType = 3 ’ adOpenKeyset  rs1.LockType = 3 ’adLockOptimistic  rs1.Open  Do While Not rs.Eof  rs1.AddNew  rs1(0)=j  for i=0 to rs.Fields.Count-1  rs1(i)=Trim(rs(i))  Next  rs1.Update  rs.MoveNext  j=j+1  Loop  rs.Close  rs1.Close  conn.Close  conn1.Close  Set rs=nothing  Set conn=nothing  ............................................................................ 在ASP中怎样把EXCEL导入ACCESS demo.asp Dim cn,oConn,connstr ’打开XLS. Set cn = Server.CreateObject("ADODB.Connection") cn.Provider = "Microsoft.Jet.OLEDB.4.0 " cn.ConnectionString = "Data Source=" & Server.MapPath("data.xls") & ";" & _ "Extended Properties=Excel 8.0;" cn.Open ’打开MDB. connstr="DBQ="+server.MapPath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set oConn=server.CreateObject("ADODB.CONNECTION") oConn.open connstr ’读取数据. set rsRead=server.CreateObject("ADODB.Recordset")  rsRead.Open "select * from [Sheet1$]",cn,1,1  do until rsRead.EOF       ’写入数据库.    oConn.Execute("Insert into users(userid,password)Values(’"& rsRead.Fields("userid")&"’,’" &rsRead.Fields("password") & "’)" )     rsRead.MoveNext  loop %> 数据库data.mdb 表users id,uesrid,password Excel文件data.xls 数据 userid password wang w521 zhange z254 hong h112 ’================!!!!ASP读取EXCEL注事项!!!!====================== ’i)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表 ’ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容 ’iii)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为“F1” ’iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常, 处理这一行的数据类型,你必须要保证该列的数据类型一致 ’====================================================

  • 网站建设-SQL 求和技巧

        懂点网站建设和SQL的几乎都知道用SQL进行求和计算,SQL语句好写,但怎么让结果显示费了点功夫,总结技巧如下:     先看示例: Set rs2=Server.Createobject("Adodb.Recordset") Sql2="Select top 1  SUM(jiaofeijine) as c From shebao" rs2.Open Sql2,Conn,1,1 if rs2.eof and rs2.bof then      else            response.Write rs2("c") end if rs2.close set rs2=nothing 技巧补充 Aggregate functions (like SUM) often need an added GROUP BY functionality. 集合函数(类似SUM)经常需要用GROUP BY来进行功能性的补充。   GROUP BY... GROUP BY... was added to SQL because aggregate functions (like SUM) return the aggregate of all column values every time they are called, and without the GROUP BY function it was impossible to find the sum for each individual group of column values. GROUP BY...之所以加到SQL中去是因为集合函数(像SUM)每当他们被访问时就会返回集合所有栏目的值,而且没有GROUP BY的话就不能够找出单独一种栏目所累计的值了。 The syntax for the GROUP BY function is: 使用GROUP BY函数的语法为: SELECT column,SUM(column) FROM table GROUP BY column   GROUP BY Example 举例 This "Sales" Table: 这是张名为"Sales"的表: Company Amount W3Schools 5500 IBM 4500 W3Schools 7100 And This SQL: 这是条SQL: SELECT Company, SUM(Amount) FROM Sales Returns this result: 返回的结果为: Company SUM(Amount) W3Schools 17100 IBM 17100 W3Schools 17100 The above code is invalid because the column returned is not part of an aggregate. A GROUP BY clause will solve this problem: 上面这些代码几乎是无效的,因为栏目所返回的数值并不属于我们想要的那种合计。使用 GROUP BY子句可以解决这个问题: SELECT Company,SUM(Amount) FROM Sales GROUP BY Company Returns this result: 返回的结果为: Company SUM(Amount) W3Schools 12600 IBM 4500   HAVING... HAVING... was added to SQL because the WHERE keyword could not be used against aggregate functions (like SUM), and without HAVING... it would be impossible to test for result conditions. WHERE关键字在使用集合函数时不能使用,所以在集合函数中加上了HAVING来起到测试查询结果是否符合条件的作用。 The syntax for the HAVING function is: HAVING的使用语法为: SELECT column,SUM(column) FROM table GROUP BY column HAVING SUM(column) condition value This "Sales" Table: 这是名为"Sales"的表: Company Amount W3Schools 5500 IBM 4500 W3Schools 7100 This SQL: SQL语句: SELECT Company,SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount)>10000 Returns this result 返回的结果为 Company SUM(Amount) W3Schools 12600   SQL的其它相关计算查询: sql sum() as where group by 2007-11-10 08:10 select sum(ydrs) As ydrst from lsstj where sid='"&rs("id")&"' and yddate='"&date()&"' group by sid #################################################SELECT SUM(column) FROM table.egSELECT SUM(Age) FROM Persons WHERE Age>20#################################################SELECT column,SUM(column) FROM tableGROUP BY columnHAVING SUM(column) condition value .eg 求和后和大于10000的 SELECT Company,SUM(Amount) FROM SalesGROUP BY CompanyHAVING SUM(Amount)>10000 #################################################

  • 网站建设-ASP时间函数详解大全

    ASP时间函数详解  Date 函数  描述:返回当前系统日期。  语法:Date  DateAdd 函数  描述:返回已添加指定时间间隔的日期。  语法:DateAdd(interval, number, date)  interval: 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。  number: 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。  date: 必选。Variant 或要添加 interval 的表示日期的文字。  interval 参数可以有以下值:  yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)  说明:可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。  DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:  NewDate = DateAdd("m", 1, "31-Jan-95")  在这个例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。  如果计算的日期是在公元 100 年之前则会产生错误。  如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。  DateDiff 函数  描述:返回两个日期之间的时间间隔。  语法:DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)  interval: 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。  date1, date2: 必选。日期表达式。用于计算的两个日期。  firstdayofweek: 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。  firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。  interval 参数可以有以下值:  yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)  firstdayofweek 参数可以有以下值:  (以下分别为:常数 值 描述)  vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日(默认)  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  firstweekofyear 参数可以有以下值:  (以下分别为:常数 值 描述)  vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。  vbFirstFourDays 2 由在新年中至少有四天的第一周开始。  vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。  说明:DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。  要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。  如果 date1 晚于 date2,则 DateDiff 函数返回负数。  firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。  如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。  在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。  DatePart 函数  描述:返回给定日期的指定部分。  语法:DatePart(interval, date[, firstdayofweek[, firstweekofyear>)  DatePart: 函数的语法有以下参数:  interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。  date: 必选。要计算的日期表达式。  firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。  firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。  interval 参数可以有以下值:  yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)  firstdayofweek 参数可以有以下值:  (以下分别为:常数 值 描述)  vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日(默认)  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  firstweekofyear 参数可以有以下值:  (以下分别为:常数 值 描述)  vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。  vbFirstFourDays 2 由在新年中至少有四天的第一周开始。  vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。  说明:DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。  firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。  如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。  DateSerial 函数  描述:对于指定的年、月、日,返回 Date 子类型的 Variant。  语法:DateSerial(year, month, day)  year: 从 100 到 9999 之间的数字或数值表达式。  month: 任意数值表达式。  day: 任意数值表达式。  说明:要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。  以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。  DateSerial(1990 - 10, 8 - 2, 1 - 1)  对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。  当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。  DateValue 函数  描述:返回 Date 子类型的 Variant。  语法:DateValue(date)  date 参数应是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是,date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。  说明:如果 date 参数包含时间信息,则 DateValue 不会返回时间信息。但是如果 date 包含无效的时间信息(如 "89:98"),就会出现错误。  如果 date 是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则 DateValue 将会根据为系统指定的短日期格式识别月、日和年的顺序。DateValue 还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别 12/30/1991 和 12/30/91 之外,DateValue 还能识别 December 30, 1991 和 Dec 30, 1991。  如果省略了 date 的年份部分,DateValue 将使用计算机系统日期中的当前年份。  Day 函数  描述:返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。  语法:Day(date)  date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。  FormatDateTime 函数  描述:返回表达式,此表达式已被格式化为日期或时间。  语法:FormatDateTime(Date[,NamedFormat])  Date: 必选。要被格式化的日期表达式。  NamedFormat: 可选。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。  NamedFormat 参数可以有以下值:  (以下分别为:常数 值 描述)  vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。  vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。  vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。  vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。  vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。  Hour 函数  描述:返回 0 到 23 之间的一个整数(包括 0 和 23),代表一天中的某一小时。  语法:Hour(time)  time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。  Minute 函数  描述:返回 0 到 59 之间的一个整数(包括 0 和59),代表一小时内的某一分钟。  语法:Minute(time)  time 参数是任意可以代表时间的表达式。如果 time 参数包含 Null,则返回 Null。  Month 函数  描述:返回 1 到 12 之间的一个整数(包括 1 和 12),代表一年中的某月。  语法:Month(date)  date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。  MonthName 函数  描述:返回表明指定月份的字符串。  语法:MonthName(month[, abbreviate])  month: 必选。月份的数值定义。例如,一月是 1,二月是 2,以此类推。  abbreviate: 可选。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。  Now 函数  描述:根据计算机系统设定的日期和时间返回当前的日期和时间值。  语法:Now  Second 函数  描述:返回 0 到 59 之间的一个整数(包括 1 和 59),代表一分钟内的某一秒。  语法:Second(time)  time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。  Time 函数  描述:返回 Date 子类型 Variant,指示当前系统时间。  语法:Time  TimeSerial 函数  描述:返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间。  语法:TimeSerial(hour, minute, second)  hour: 其值为从 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的数值或数值表达式。  minute: 任意数值表达式。  second: 任意数值表达式。  说明:要指定一时刻,如 11:59:59,TimeSerial 的参数取值应在可接受的范围内;也就是说,小时应介于 0-23 之间,分和秒应介于 0-59 之间。但是,可以使用数值表达式为每个参数指定相对时间,这一表达式代表某时刻之前或之后的时、分或秒数。以下样例中使用了表达式代替绝对时间数。TimeSerial 函数返回中午之前六小时 (12 - 6) 十五分钟的时间 (-15),即 5:45:00 A.M.。  TimeSerial(12 - 6, -15, 0)  当任何一个参数的取值超出可接受的范围时,它会正确地进位到下一个较大的时间单位中。例如,如果指定了 75 分钟,则这个时间被解释成一小时十五分钟。但是,如果任何一个参数值超出 -32768 到 32767 的范围,就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围,也会导致错误。  TimeValue 函数  描述:返回包含时间的 Date 子类型的 Variant。  语法:TimeValue(time)  time 参数通常是代表从 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表达式(包括 0:00:00 和 23:59:59)。不过,time 也可以是代表该范围内任何时间的表达式。如果 time 参数包含 Null,则返回 Null。  说明:可以采用 12 或 24 小时时钟格式输入时间。例如 "2:24PM" 和 "14:24" 都是有效的 time 参数。  如果 time 参数包含日期信息, TimeValue 函数并不返回日期信息。然而,如果 time 参数包含无效的日期信息,则会出现错误。  Weekday 函数  描述:返回代表一星期中某天的整数。  语法:Weekday(date, [firstdayofweek])  date: 可以代表日期的任意表达式。如果 date 参数中包含 Null,则返回 Null。  firstdayofweek: 指定星期中第一天的常数。如果省略,默认使用 vbSunday。  firstdayofweek 参数有如下设置:  (以下分别为:常数 值 描述)  vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  Weekday 函数返回如下值:  (以下分别为:常数 值 描述)  vbSunday 1 星期日  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  WeekdayName 函数  描述:返回一个字符串,表示星期中指定的某一天。  语法:WeekDayName(weekday, abbreviate, firstdayofweek)  weekday: 必选。星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。  abbreviate: 可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称。  firstdayofweek: 可选。指明星期第一天的数值。关于数值,请参阅“设置”部分。  firstdayofweek 参数有以下值:  (以下分别为:常数 值 描述)  vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日(默认)  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  Year 函数  描述:返回一个代表某年的整数。  语法:Year(date)  date 参数是任意可以代表日期的参数。如果 date 参数中包含 Null,则返回 Null。  DateDiff("n", CDate("1998-8-3 5:30"), CDate("1999-4-3 6:5"))  这里第一个参数是时间间隔,"n"表示分钟。也可以取其他单位,最小单位为秒。  可以使用DateDiff()函数。如:  DateDiff("d", BeginDate, EndDate)。  DateDiff函数实际是用BeginDate - EndDate,如果EndDate > BeginDate,DateDiff返回负数。DateDiff可以计算按日、时等单位计算时间差。 本文转自-山东人在北京 客城-:http://www.kecity.com/ShowPost.asp?ThreadID=6110

  • 网站建设--经典SQL语句大全

    下列语句部分是Mssql语句,不可以在access中使用。   SQL分类:  DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)   DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)   DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)  首先,简要介绍基础语句:  1、说明:创建数据库CREATE DATABASE database-name  2、说明:删除数据库drop database dbname  3、说明:备份sql server  --- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'  --- 开始 备份BACKUP DATABASE pubs TO testBack  4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)  根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only  5、说明:  删除新表:drop table tabname  6、说明:  增加一个列:Alter table tabname add column col type  注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。  7、说明:  添加主键:Alter table tabname add primary key(col)  说明:  删除主键:Alter table tabname drop primary key(col)  8、说明:  创建索引:create [unique] index idxname on tabname(col….)  删除索引:drop index idxname  注:索引是不可更改的,想更改必须删除重新建。  9、说明:  创建视图:create view viewname as select statement  删除视图:drop view viewname10、说明:几个简单的基本的sql语句  选择:select * from table1 where 范围  插入:insert into table1(field1,field2) values(value1,value2)  删除:delete from table1 where 范围  更新:update table1 set field1=value1 where 范围  查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!  排序:select * from table1 order by field1,field2 [desc]  总数:select count * as totalcount from table1  求和:select sum(field1) as sumvalue from table1  平均:select avg(field1) as avgvalue from table1  最大:select max(field1) as maxvalue from table1  最小:select min(field1) as minvalue from table1  11、说明:几个高级查询运算词  A: UNION 运算符  UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。  B: EXCEPT 运算符  EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。  C: INTERSECT 运算符  INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。  注:使用运算词的几个查询结果行必须是一致的。  12、说明:使用外连接  A、left outer join:  左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c  B:right outer join:  右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。  C:full outer join:  全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。  其次,大家来看一些不错的sql语句  1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)  法一:select * into b from a where 11  法二:select top 0 * into b from a  2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;  3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件  例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..  4、说明:子查询(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)  5、说明:显示文章、提交人和最后回复时间select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c  7、说明:在线视图查询(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;  8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值2  9、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)  10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )  11、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....  12、说明:日程安排提前五分钟提醒SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5  13、说明:一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段  14、说明:前10条记录select top 10 * form table1 where 范围  15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)  16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB) except (select a from tableC)  17、说明:随机取出10条数据select top 10 * from tablename order by newid()  18、说明:随机选择记录select newid()  19、说明:删除重复记录Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)  20、说明:列出数据库里所有的表名select name from sysobjects where type='U'21、说明:列出表里的所有的select name from syscolumns where id=object_id('TableName')  22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type  显示结果:type vender pcs电脑 A 1电脑 A 1光盘 B 2光盘 A 2手机 B 3手机 C 3  23、说明:初始化表table1TRUNCATE TABLE table1  24、说明:选择从10到15的记录select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)  对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:Randomize RNumber = Int(Rnd*499) +1  While Not objRec.EOF If objRec("ID") = RNumber THEN ... 这里是执行脚本 ... end if objRec.MoveNext Wend  这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?  采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:Randomize RNumber = Int(Rnd*499) + 1  SQL = "SELECT * FROM Customers WHERE ID = " & RNumber  set objRec = ObjConn.Execute(SQL) Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")  不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。再谈随机数  现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。  为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:  SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3  假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码): SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"  注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。  随机读取若干条记录,测试过Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)Sql server:select top n * from 表名 order by newid()mysql select * From 表名 Order By rand() Limit n  Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)  语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...  使用SQL语句 用...代替过长的字符串显示  语法:  SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename  Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;  Conn.Execute说明  Execute方法  该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:  1.执行SQL查询语句时,将返回查询得到的记录集。用法为:  Set 对象变量名=连接对象.Execute("SQL 查询语言")  Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。  2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:  连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]  ·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。  ·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。  ·BeginTrans、RollbackTrans、CommitTrans方法  这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。  事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。  BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。SQL语句大全精要2006/10/26 13:46DELETE语句 DELETE语句:用于创建一个删除查询,可从列在 FROM 子句之中的一个或多个表中删除记录,且该子句满足 WHERE 子句中的条件,可以使用DELETE删除多个记录。语法:DELETE [table.*] FROM table WHERE criteria语法:DELETE * FROM table WHERE criteria='查询的字'说明:table参数用于指定从其中删除记录的表的名称。criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。UPDATE 有关UPDATE,急!!!!!!!!!!!在ORACLE数据库中表 A ( ID ,FIRSTNAME,LASTNAME ) 表 B( ID,LASTNAME)表 A 中原来ID,FIRSTNAME两个字段的数据是完整的表 B中原来ID,LASTNAME两个字段的数据是完整的现在要把表 B中的LASTNAME字段的相应的数据填入到A表中LASTNAME相应的位置。两个表中的ID字段是相互关联的。先谢谢了!!!!update a set a.lastname=(select b.lastname from b where a.id=b.id)

  • 网站建设-常用SQL语句大全

    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 --描述准备好的查询 ---局部变量 declare @id char(10) --set @id = '10010001' select @id = '10010001' ---全局变量 ---必须以@@开头 --IF ELSE declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y print 'x > y' --打印字符串'x > y' else if @y > @z print 'y > z' else print 'z > y' --CASE use pangu update employee set e_wage = case when job_level = ’1’ then e_wage*1.08 when job_level = ’2’ then e_wage*1.07 when job_level = ’3’ then e_wage*1.06 else e_wage*1.05 end --WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 while @x begin print @x --打印变量x 的值 while @y begin select @c = 100*@x + @y print @c --打印变量c 的值 select @y = @y + 1 end select @x = @x + 1 select @y = 1 end --WAITFOR --例 等待1 小时2 分零3 秒后才执行SELECT 语句 waitfor delay ’01:02:03’ select * from employee --例 等到晚上11 点零8 分后才执行SELECT 语句 waitfor time ’23:08:00’ select * from employee ***SELECT*** select *(列名) from table_name(表名) where column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = 'str_name' stockname like '% find this %' stockname like '[a-zA-Z]%' --------- ([]指定值的范围) stockname like '[^F-M]%' --------- (^排除指定范围) --------- 只能在使用like关键字的where子句中使用通配符) or stockpath = 'stock_path' or stocknumber and stockindex = 24 not stocksex = 'man' stocknumber between 20 and 100 stocknumber in(10,20,30) order by stockid desc(asc) --------- 排序,desc-降序,asc-升序 order by 1,2 --------- by列号 stockname = (select stockname from stock_information where stockid = 4) --------- 子查询 --------- 除非能确保内层select只返回一个行的值, --------- 否则应在外层where子句中用一个in限定符 select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复 select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name select stockname , "stocknumber" = count(*) from table_name group by stockname --------- group by 将表按行分组,指定列中有相同的值 having count(*) = 2 --------- having选定指定的组 select * from table1, table2 where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示 table1.id =* table2.id -------- 右外部连接 select stockname from table1 union [all] ----- union合并查询结果集,all-保留重复行 select stockname from table2 ***insert*** insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx") value (select Stockname , Stocknumber from Stock_table2)---value为select语句 ***update*** update table_name set Stockname = "xxx" [where Stockid = 3] Stockname = default Stockname = null Stocknumber = Stockname + 4 ***delete*** delete from table_name where Stockid = 3 truncate table_name ----------- 删除表中所有行,仍保持表的完整性 drop table table_name --------------- 完全删除表 ***alter table*** --- 修改数据库表结构 alter table database.owner.table_name add column_name char(2) null ..... sp_help table_name ---- 显示表已有特征 create table table_name (name char(20), age smallint, lname varchar(30)) insert into table_name select ......... ----- 实现删除列的方法(创建新表) alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束 ***function(/*常用函数*/)*** ----统计函数---- AVG --求平均值 COUNT --统计数目 MAX --求最大值 MIN --求最小值 SUM --求和 --AVG use pangu select avg(e_wage) as dept_avgWage from employee group by dept_id --MAX --求工资最高的员工姓名 use pangu select e_name from employee where e_wage = (select max(e_wage) from employee) --STDEV() --STDEV()函数返回表达式中所有数据的标准差 --STDEVP() --STDEVP()函数返回总体标准差 --VAR() --VAR()函数返回表达式中所有值的统计变异数 --VARP() --VARP()函数返回总体变异数 ----算术函数---- /***三角函数***/ SIN(float_expression) --返回以弧度表示的角的正弦 COS(float_expression) --返回以弧度表示的角的余弦 TAN(float_expression) --返回以弧度表示的角的正切 COT(float_expression) --返回以弧度表示的角的余切 /***反三角函数***/ ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角 ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角 ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角 ATAN2(float_expression1,float_expression2) --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角 DEGREES(numeric_expression) --把弧度转换为角度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型 RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型 EXP(float_expression) --返回表达式的指数值 LOG(float_expression) --返回表达式的自然对数值 LOG10(float_expression)--返回表达式的以10 为底的对数值 SQRT(float_expression) --返回表达式的平方根 /***取近似值函数***/ CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型 FLOOR(numeric_expression) --返回--INTEGER/MONEY/REAL/FLOAT 类型 ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据 --类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型 SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 --与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 PI() --返回值为π 即3.1415926535897936 RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数 ----字符串函数---- ASCII() --函数返回字符表达式最左端字符的ASCII 码值 CHAR() --函数用于将ASCII 码转换为字符 --如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 LOWER() --函数把字符串全部转换为小写 UPPER() --函数把字符串全部转换为大写 STR() --函数把数值型数据转换为字符型数据 LTRIM() --函数把字符串头部的空格去掉 RTRIM() --函数把字符串尾部的空格去掉 LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串 CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置 SOUNDEX() --函数返回一个四位字符码 --SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值 DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 --0 两个SOUNDEX 函数返回值的第一个字符不同 --1 两个SOUNDEX 函数返回值的第一个字符相同 --2 两个SOUNDEX 函数返回值的第一二个字符相同 --3 两个SOUNDEX 函数返回值的第一二三个字符相同 --4 两个SOUNDEX 函数返回值完全相同 QUOTENAME() --函数返回被特定字符括起来的字符串 /*select quotename('abc', '{') quotename('abc') 运行结果如下 ----------------------------------{ {abc} [abc]*/ REPLICATE() --函数返回一个重复character_expression 指定次数的字符串 /*select replicate('abc', 3) replicate( 'abc', -2) 运行结果如下 ----------- ----------- abcabcabc NULL*/ REVERSE() --函数将指定的字符串的字符排列顺序颠倒 REPLACE() --函数返回被替换了指定子串的字符串 /*select replace('abc123g', '123', 'def') 运行结果如下 ----------- ----------- abcdefg*/ SPACE() --函数返回一个有指定长度的空白字符串 STUFF() --函数用另一子串替换字符串指定位置长度的子串 ----数据类型转换函数---- CAST() 函数语法如下 CAST() ( AS [ length ]) CONVERT() 函数语法如下 CONVERT() ([ length ], [, style]) select cast(100+99 as char) convert(varchar(12), getdate()) 运行结果如下 ------------------------------ ------------ 199 Jan 15 2000 ----日期函数---- DAY() --函数返回date_expression 中的日期值 MONTH() --函数返回date_expression 中的月份值 YEAR() --函数返回date_expression 中的年份值 DATEADD( , ,) --函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期 DATEDIFF( , ,) --函数返回两个指定日期在datepart 方面的不同之处 DATENAME( , ) --函数以字符串的形式返回日期的指定部分 DATEPART( , ) --函数以整数值的形式返回日期的指定部分 GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间 ----系统函数---- APP_NAME() --函数返回当前执行的应用程序的名称 COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值 COL_LENGTH(, ) --函数返回表中指定字段的长度值 COL_NAME(, ) --函数返回表中指定字段的名称即列名 DATALENGTH() --函数返回数据表达式的数据的实际长度 DB_ID(['database_name']) --函数返回数据库的编号 DB_NAME(database_id) --函数返回数据库的名称 HOST_ID() --函数返回服务器端计算机的名称 HOST_NAME() --函数返回服务器端计算机的名称 IDENTITY([, seed increment]) [AS column_name]) --IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中 /*select identity(int, 1, 1) as column_name into newtable from oldtable*/ ISDATE() --函数判断所给定的表达式是否为合理日期 ISNULL(, ) --函数将表达式中的NULL 值用指定值替换 ISNUMERIC() --函数判断所给定的表达式是否为合理的数值 NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值 NULLIF(, ) --NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值 -------------------------------------------------------------------------------- sql中的保留字 action add aggregate all alter after and as asc avg avg_row_length auto_increment between bigint bit binary blob bool both by cascade case char character change check checksum column columns comment constraint create cross current_date current_time current_timestamp data database databases date datetime day day_hour day_minute day_second dayofmonth dayofweek dayofyear dec decimal default delayed delay_key_write delete desc describe distinct distinctrow double drop end else escape escaped enclosed enum explain exists fields file first float float4 float8 flush foreign from for full function global grant grants group having heap high_priority hour hour_minute hour_second hosts identified ignore in index infile inner insert insert_id int integer interval int1 int2 int3 int4 int8 into if is isam join key keys kill last_insert_id leading left length like lines limit load local lock logs long longblob longtext low_priority max max_rows match mediumblob mediumtext mediumint middleint min_rows minute minute_second modify month monthname myisam natural numeric no not null on optimize option optionally or order outer outfile pack_keys partial password precision primary procedure process processlist privileges read real references reload regexp rename replace restrict returns revoke rlike row rows second select set show shutdown smallint soname sql_big_tables sql_big_selects sql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_join starting status string table tables temporary terminated text then time timestamp tinyblob tinytext tinyint trailing to type use using unique unlock unsigned update usage values varchar variables varying varbinary with write when where year year_month zerofill

  • 用ASP开发试题库与在线考试系统(一)

    摘 要 利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,我们基于B/S模式研究开发了试题库与在线考试系统这一ASP应用程序。它运用方便、操作简单,效率很高,现阶段虽只实现了试卷的客观题部分,但已具有试题(卷)录入、修改和查询,手工组卷与自动组卷以及进行在线考试等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,并给出其详细的成绩分析与试卷评估,同时也大大减轻了教师出题、组卷和改卷等繁重的工作量。   引 言   现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!   一、基本简介   试题库与在线考试系统采用ASP、HTML、Frontpage2000/98、Javascript、VBScript、Java编程语言、图形编辑与数据库等工具,通过基于WEB服务器访问纯WEB页面,实现在线组卷与考试等各项相关的功能。   它是专门用于试题(卷)录入、查询、修改、删除、组卷和参加在线考试的ASP应用程序。其最大的特点是开放性、方便性和灵活性。主要是指一般的用户不仅可以轻松地向题库添加、修改和查询试题(卷),而且还可以自动新增科目并建立相应的数据表;它还允许用户根据自己的需求,从现有的试题库中灵活地抽取各类试题,以组建适合于自身所需的试卷。而且,自测试卷的难易程度和形式以及各大题分数等都由用户根据需要确定。考生通过浏览器进行有效的身份验证登录后,输入正确的试卷编号,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提交。一旦考生做完后便能立即看到预先记录在库中的标准答案和自己的平时成绩(正规考试试卷不得随意更改以及答案将不及时提供),并且其答案和分数将被记入库中以供审核和查阅,并作为成绩评估和试卷分析的历史数据;另外,还可完全由计算机自动按照"难度系数"灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,不妨把它称之为实时的互动的试卷。   用户对象主要是大、中、小学及职业学校等单位的教师及学生和企事业单位的教育部门(因企事业单位每年要对员工进行素质、安全教育与技能等方面的培训及考试等)。

  • 用ASP开发试题库与在线考试系统(二)

    二、运行环境与系统结构   此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求和逻辑结构分别如下:    客户端:Windows95/98,Internet Explorer(IE)等    服务器端:Windows NT/Windows2000,Internet Information Server (IIS)4.0及其以上版本,IE等;或者Windows98,Personal Web Server(PWS),IE等。    数据库:采用SQL Server,运行于服务器端。 试题库与在线考试系统逻辑结构图   三、系统特点   系统联为一体,界面整齐、美观,操作简单、方便。另外,支持按权限对系统进行操作,即不同类型的用户拥有相异的权限对题库执行不同的操作。主要是在首页通过两种不同的方式进入相异的操作界面,以确保整个数据库中数据的安全性及完整性。其主要特点体现在以下三个方面:   (1) 自主设计数据库 ⑵ 自主调用数据库 ⑶ 自主管理数据库   自主设计数据库是指用户能够根据自己的需要创建新科目数据库(即系统实现了自动建表的功能),让数据库真正成为用户自己的数据库。不过,只要库中已存在该科目名称及表名,则不予重建,这样就保证了数据的统一性;自主调用数据库即允许用户能自由地从数据库中抽取试题组成试卷,试卷中有几道大题和小题以及是否提供查看答案均由用户自行设置并选题。通常来说,一份高质量的试卷,需要用户反复推敲、比较和琢磨,用户就象进超市买东西一样能方便地把看中的取出来,也可反悔把不需要的退回去,并且在形成一份完整的试卷之前,允许任意调整该试题的次序。在组卷时,还可以多份试卷选取同一试题或同一知识点的试题,但严禁一套试卷中出现知识点相同(似)且难度一致的试题。不过,其最大的缺陷在于目前只实现了试卷中的客观题部分,即包括判断、单选和多选题。而且,还没有实现客观题部分和真正的多媒体试卷;自主管理数据库指一般用户具有添加、修改和检索数据的权力,实现数据库的可扩充性和开放性。而管理员则另具有删除数据的权力,从而达到了系统数据统一性和一致性的目的,具体情况请见系统演示。

 

关于

喜报

服务

案例

联系
  • 返回首页
  • 象牙塔介绍
  • 新闻资讯
  • 资质荣誉
  • 联系我们
  • 最新签约
  • 最新交付
  • 网络学院
  • 资料下载
  • 解决方案
  • 网站建设
  • 软件开发
  • 微信公众号
  • APP开发
  • 小程序
  • 联系方式
  • 电话联系
  • 手机联系
  • 地图导航