Mysql插入语句的5种写法。

  1. insert into tablename (id,name) value ('', 'xxx');
  2. insert into tablename (id,name) values ('', 'xxxxx');
  3. insert into tablename (id, name) value ('','xxx'),('','xxxxxxx');
  4. insert into tablename (id, name) values ('','xxx'),('','xxxxxxx');
  5. insert into tablename set id='id', name='xxxxx';

北京快乐八软件 www.gcpng.com 一般推荐第四种写法,这是SQL标准,在Oracle等其它数据库类型中通用性好,其它几种在Mysql App开发时,有特定的方便之处。

DELETE,UPDATE与LEFT JOIN


#UPDATE:
UPDATE A SET ApproverID=NULL,ApproveDate=NULL,ApproveResult=100,CheckerID=null,CheckDate=null, IsCheck=0
FROM [SH_MaterialApplyBuyBill] A
LEFT JOIN [SH_MaterialApplyBuyBillDetail] B ON A.ID=B.[MaterialApplyBuyBillID]
WHERE A.id=125 AND @InDetailCount=0
#DELETE:
DELETE A FROM [SH_ClosingBalance] A LEFT JOIN [SH_StoreHouse] B ON A.StoreHouseID=B.ID
WHERE B.departmentID='1000'

update table1 set a.a=1
from  table1  a inner join table2 b on a.ip=b.ip

Sql中字段的相关处理

增加字段
alter table docdsp add dspcode char(200)
删除字段
ALTER TABLE table_NAME DROP COLUMN column_NAME
修改字段类型
ALTER TABLE table_name ALTER COLUMN column_name new_data_type
改名
sp_rename
更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
语法
sp_rename [ @objname = ] 'object_name' ,
    [ @newname = ] 'new_name'
    [ , [ @objtype = ] 'object_type' ]

--假设要处理的表名为: tb

--判断要添加列的表中是否有主键
if exists(select 1 from sysobjects where parent_obj=object_id('tb') and xtype='PK')
begin
print '表中已经有主键,列只能做为普通列添加'

--添加int类型的列,默认值为0
alter table tb add 列名 int default 0 
end
else
begin
print '表中无主键,添加主键列'

--添加int类型的列,默认值为0
alter table tb add 列名 int primary key default 0 
end
 

Discuz 添加选吧的一段MySQL监控

080727 15:16:00	     27 Connect     [email protected]alhost on
		     27 Query       SET character_set_connection=gbk, character_set_results=gbk, character_set_client=binary
		     27 Query       SET sql_mode=''
		     27 Init DB     discuz
		     27 Query       SELECT * FROM uchome_session WHERE uid='1' AND password='c23f845b1ebdd7dd5c16621bee324c2b'
		     27 Query       SELECT sf.note, sf.privacy, sf.friend, sf.feedfriend, sf.resideprovince, sf.residecity, s.* FROM uchome_space s
		LEFT JOIN uchome_spacefield sf ON sf.uid=s.uid
		WHERE s.uid='1'
		     27 Query       SELECT tagid, uid FROM uchome_tagspace WHERE uid='1'
		     27 Query       SELECT * FROM uchome_mtag WHERE tagname IN ('tagschool','tagcity','tagbook')
		     27 Query       INSERT INTO uchome_mtag (`tagname`, `fieldid`, `membernum`) VALUES ('tagschool', )
', '1')
		     27 Query       INSERT INTO uchome_mtag (`tagname`, `fieldid`, `membernum`) VALUES ('tagcity', '2', '1')
		     27 Query       INSERT INTO uchome_mtag (`tagname`, `fieldid`, `membernum`) VALUES ('tagbook', '3', '1')
		     27 Query       INSERT INTO uchome_tagspace (tagid,uid,username) VALUES ('1','1','admin'),('2','1','admin'),('3','1','admin')
		     27 Quit

sql的left join 命令详解


例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同样的也有right join
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4


LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。


update dede_addonimages as a
left join content as b
on a.maxwidth=b.ID
set a.imgurls=b.url
where a.aid>106316 ;

MySQL中的转义字符列表


MySQL的转义字符“\”

MySQL识别下列转义字符:

\0
一个ASCII 0 (NUL)字符。
\n
一个新行符。
\t
一个定位符。
\r
一个回车符。
\b
一个退格符。
\'
一个单引号(“'”)符。
\ "
一个双引号(“ "”)符。
\\
一个反斜线(“\”)符。
\%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
\_
一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“\%”或“\%_”,这些将返回字符串“\%”和“\_”而不是“%”和“_”。

★★
有几种方法在一个字符串内包括引号:
1、必须转义的:
一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
一个字符串用双引号“ "”来引用的,该字符串中的“ "”字符可以用“ " "”方式转义。
同时你也可以继续使用一个转义字符“\”来转义
2、可不转义的:
一个字符串用双引号“ "”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。
同理,
一个字符串用单引号“'”来引用的,该字符串中的双引号“ "”不需要特殊对待而且不必被重复或转义。

下面显示的SELECT演示引号和转义如何工作:

mysql > SELECT 'hello', ' "hello "', ' " "hello " "', 'hel''lo', '\'hello';
+----------+--------------+-------------------+----------+---------+
| hello | "hello " | " "hello " " | hel'lo | 'hello |
+----------+--------------+-------------------+----------+---------+

mysql > SELECT "hello ", "'hello' ", "''hello'' ", "hel " "lo ", "\ "hello ";
+----------+----------+-----------+------------+-----------+
| hello | 'hello' | ''hello'' | hel "lo | "hello |
+---------+-----------+-----------+------------+-----------+

mysql > SELECT "This\nIs\nFour\nlines ";
+--------------------+
| This
Is
Four
lines |
+--------------------+

★★

如果你想要把二进制数据插入到一个BLOB列,下列字符必须由转义序列表示:

NUL
ASCII 0。你应该用'\0'(一个反斜线和一个ASCII '0')表示它。
\
ASCII 92,反斜线。用'\\'表示。
'
ASCII 39,单引号。用“\'”表示。
"
ASCII 34,双引号。用“\ "”表示。

难点与不同点,ASP链接MSSQL2005的链接字符串

ASP链接MSSQL2005的链接字符串如下:

Provider=SQLNCLI;Server=.\SQLEXPRESS;Database=master;Uid=xeonwell;Pwd=xxxx;

测试用例如下:(ASP链接MSSQL2005测试)

<%
Option Explicit
Dim conn,rs,sql
Set conn = CreateObject("ADODB.Connection")
Dim strConn 'MSSQL 2005 Connection String
strConn = "Provider=SQLNCLI;Server=.\SQLEXPRESS;Database=master;Uid=xeonwell;Pwd=xxxx;"
conn.Open strConn
Set rs = conn.Execute("select * from spt_values")
Dim i,j
j = rs.fields.count-1
Response.Write("<table border=1>")
Response.Write("<tr>")
for i = 0 to j
Response.Write("<th>" & rs.fields(i).name & "</th>")
next
Response.Write("</tr>")

While Not rs.EOF
' Response.Write(rs.fields(0).Name & ": " & rs.Fields(0).Value & "<br />")
Response.Write("<tr>")
for i = 0 to j
?? Response.Write("<td>" & replaceNull(rs.fields(i).value) & "</td>")
next
Response.Write("</tr>")
rs.MoveNext()
Wend
Response.Write("</table>")
rs.Close()
Set rs = Nothing
conn.Close()
Set conn = Nothing

Function replaceNull(str)
replaceNull = str
If isNull(str) OR str = "" Then
?? replaceNull = "&nbsp;"
End If
End Function
%>

MySQL 数据库函数库

本函数库供存取 MySQL 数据库。有关 MySQL 的细节,及下载 MySQL 数据库,请到这个网址 //www.mysql.com 。而网络上也有许多提供处理 MySQL 的用户界面程序,建议到 //www.phpwizard.net/phpMyAdmin 下载 phpMyAdmin,可以使用浏览器操作及管理 MySQL。整套 phpMyAdmin 程序,是用 PHP3 完成的,亦可同时研究 PHP3 与 MySQL 的链接。

mysql_affected_rows: 得到 MySQL 最后操作影响的列数目。
mysql_close: 关闭 MySQL 服务器连接。
mysql_connect: 打开 MySQL 服务器连接。
mysql_create_db: 建立一个 MySQL 新数据库。
mysql_data_seek: 移动内部返回指针。
mysql_db_query: 送查询字符串 (query) 到 MySQL 数据库。
mysql_drop_db: 移除数据库。
mysql_errno: 返回错误信息代码。
mysql_error: 返回错误信息。
mysql_fetch_array: 返回数组资料。
mysql_fetch_field: 取得字段信息。
mysql_fetch_lengths: 返回单列各栏资料最大长度。
mysql_fetch_object: 返回类资料。
mysql_fetch_row: 返回单列的各字段。
mysql_field_name: 返回指定字段的名称。
mysql_field_seek: 配置指针到返回值的某字段。
mysql_field_table: 获得目前字段的资料表 (table) 名称。
mysql_field_type: 获得目前字段的类型。
mysql_field_flags: 获得目前字段的标志。
mysql_field_len: 获得目前字段的长度。
mysql_free_result: 释放返回占用内存。
mysql_insert_id: 返回最后一次使用 INSERT 指令的 ID。
mysql_list_fields: 列出指定资料表的字段 (field)。
mysql_list_dbs: 列出 MySQL 服务器可用的数据库 (database)。
mysql_list_tables: 列出指定数据库的资料表 (table)。
mysql_num_fields: 取得返回字段的数目。
mysql_num_rows: 取得返回列的数目。
mysql_pconnect: 打开 MySQL 服务器持续连接。
mysql_query: 送出一个 query 字符串。
mysql_result: 取得查询 (query) 的结果。
mysql_select_db: 选择一个数据库。
mysql_tablename: 取得资料表名称。

mysql_affected_rows
得到 MySQL 最后操作影响的列数目。
语法: int mysql_affected_rows(int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可得到 MySQL 最后查询操作 INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。若最后的查询 (query) 是使用 DELETE 而且没有使用 WHERE 命令,则会删除全部资料,本函数将返回 0。若最后使用的是 SELECT,则用本函数不会得到预期的数目,因为要改变 MySQL 数据库本函数才有效,欲得到 SELECT 返回的数目需使用 mysql_num_rows() 函数。

mysql_close
关闭 MySQL 服务器连接。
语法: int mysql_close(int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数关闭与 MySQL 数据库服务器的连接。若无指定参数 link_identifier 则会关闭最后的一笔连接。用 mysql_pconnect() 连接则无法使用本函数关闭。实际上本函数不是一定需要的,当 PHP 整页程序结束后,将会自动关闭与数据库的非永久性 (non-persistent) 连接。成功返回 true、失败返回 false 值。
参考: mysql_connect() mysql_pconnect()

mysql_connect
打开 MySQL 服务器连接。
语法: int mysql_connect(string [hostname] [:port], string [username], string [password]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时,参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与埠号,代表使用那个埠与 MySQL 连接。当然在使用数据库时,早点使用 mysql_close() 将连接关掉可以节省资源。
使用范例
这是一位未具名网友提供的范例 (18-Feb-1999)

<?php?
$dbh?
=?mysql_connect('localhost:3306','mcclain','standard');?
mysql_select_db('admreqs');?
$query?=?"insert?into?requests(date,?request,?email,?priority,status)?values?(NOW(),'$description',?'$email',?'$priority',?'NEW')";?
$res?=?mysql_query($query,?$dbh);?
$query?=?"select?max(id)?from?requests";?
$res?=?mysql_query($query,?$dbh);?
$err?=?mysql_error();?
if(
$err){?
echo?
"发生错误,请通知<a?href=mailto:[email protected]>站长</a>";?
}?
$row?=?mysql_fetch_row($res);?
echo?
"未来您使用的号码为:?".$row[0];?
?>?

php爱好者站 //www.phpfans.net dreamweaver|flash|fireworks|photoshop.
参考: mysql_close() mysql_pconnect()

mysql_create_db
建立一个 MySQL 新数据库。
语法: int mysql_create_db(string database name, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来建立新的数据库 (database)。在建立前,必须先与服务器连接。
参考: mysql_drop_db()

mysql_data_seek
移动内部返回指针。
语法: int mysql_data_seek(int result_identifier, int row_number);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可移动内部返回的列指针到指定的 row_number 去。之后若使用 mysql_fetch_row() 可以返回新列的值。成功返回 true、失败则返回 false。

mysql_db_query
送查询字符串 (query) 到 MySQL 数据库。
语法: int mysql_db_query(string database, string query, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来送出查询字符串 (query) 到后端的 MySQL 数据库中。而可省略的参数 link_identifier 若不存在,程序会自动寻找其它 mysql_connect() 连接后的连接代码。发生错误时会返回 false,其它没错误时则返回它的返回代码。
参考: mysql_connect()

mysql_drop_db
移除数据库。
语法: int mysql_drop_db(string database_name, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数移除已存在的数据库。成功返回 true、失败则返回 false。
参考: mysql_create_db()

mysql_errno
返回错误信息代码。
语法: int mysql_errno(int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到 MySQL 数据库服务器的错误代码。通常用在 PHP 网页程序开发阶段,作为 PHP 与 MySQL 的除错用。
使用范例

<?php
mysql_connect
("marliesle");
echo?
mysql_errno().":?".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo?
mysql_errno().":?".mysql_error()."<BR>";
$conn?=?mysql_query("SELECT?*?FROM?nonexistenttable");
echo?
mysql_errno().":?".mysql_error()."<BR>";
?>?

php爱好者站 //www.phpfans.net php基础|php进阶|php模板.
参考: mysql_error()

mysql_error
返回错误信息。
语法: string mysql_error(int [link_identifier]);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可以得到 MySQL 数据库服务器的错误信息。通常用在 PHP 网页程序开发阶段,与 mysql_errno() 一起作为PHP 与 MySQL 的除错用。
参考: mysql_errno()

mysql_fetch_array
返回数组资料。
语法: array mysql_fetch_array(int result, int [result_typ]);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料,则返回 false 值。而本函数可以说是 mysql_fetch_row() 的加强函数,除可以将返回列及数字索引放入数组之外,还可以将文字索引放入数组中。若是好几个返回字段都是相同的文字名称,则最后一个置入的字段有效,解决方法是使用数字索引或者为这些同名的字段 (column) 取别名 (alias)。治募?注意的是使用本函数的处理速度其实不会比 mysql_fetch_row() 函数慢,要用哪个函数还是看使用的需求决定。参数 result_typ 是一个常量值,有以下几种常量 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。
使用范例

<?php
mysql_connect
($host,$user,$password);
$result?=?mysql_db_query("database","select?*?from?table");
while(
$row?=?mysql_fetch_array($result))?{
echo?
$row["user_id"];
echo?
$row["fullname"];
}
mysql_free_result($result);
?>?

php爱好者站 //www.phpfans.net PHP|MySQL|javascript|ajax|html.
mysql_fetch_field
取得字段信息。
语法: object mysql_fetch_field(int result, int [field_offset]);
返回值: 类
函数种类: 数据库功能
内容说明: 本函数返回的类资料为 result 的字段 (Column) 信息。返回类的属性如下:
name - 字段名称
table - 字段所在表格的资料表名称
max_length - 字段的最大长度
not_null - 若为 1 表示本字段不能是空的 (null)
primary_key - 若为 1 表示本字段是主要键 (primary key)
unique_key - 若为 1 表示本字段为不可重覆键 (unique key)
multiple_key - 若为 1 表示本字段为可重覆键 (non-unique key)
numeric - 若为 1 表示本字段为数字类型 (numeric)
blob - 若为 1 表示本字段为位类型 (BLOB)
type - 字段类型
unsigned - 若为 1 表示本字段为无记号 (unsigned)
zerofill - 若为 1 表示本字段为被零填满 (zero-filled)
参考: mysql_field_seek()

mysql_fetch_lengths
返回单列各栏资料最大长度。
语法: array mysql_fetch_lengths(int result);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数将 mysql_fetch_row() 处理过的最后一列资料的各字段资料最大长度放在数组变量之中。若执行失败则返回 false 值。返回数组的第一笔资料索引值是 0。
参考: mysql_fetch_row()

mysql_fetch_object
返回类资料。
语法: object mysql_fetch_object(int result, int [result_typ]);
返回值: 类
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 拆到类变量中。使用方法和 mysql_fetch_array() 几乎相同,不同的地方在于本函数返回资料是类而不是数组。若 result 没有资料,则返回 false 值。另外治募?注意的地方是,取回的类资料的索引只能是文字而不能用数字,这是因为类的特性。类资料的特性中所有的属性 (property) 名称都不能是数字,因此只好乖乖使用文字字符串当索引了。参数 result_typ是一个常量值,有以下几种常量 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。关于速度方面,本函数的处理速度几乎和 mysql_fetch_row() 及 mysql_fetch_array() 二函数差不多,要用哪个函数还是看使用的需求决定。
使用范例
下面的例子示范如使用返回的类。

<?php?
mysql_connect
($host,$user,$password);
$result?=?mysql_db_query("MyDatabase","select?*?from?test");
while(
$row?=?mysql_fetch_object($result))?{
echo?
$row->user_id;
echo?
$row->fullname;
}
mysql_free_result($result);
?>?

php爱好者站 //www.phpfans.net c/vc/c++/java.
参考: mysql_fetch_array() mysql_fetch_row()

mysql_fetch_row
返回单列的各字段。
语法: array mysql_fetch_row(int result);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引,第一个的索引值是 0。若 result 没有资料,则返回 false 值。
参考: mysql_fetch_array() mysql_fetch_object() mysql_data_seek() mysql_fetch_lengths() mysql_result()

mysql_field_name
返回指定字段的名称。
语法: string mysql_field_name(int result, int field_index);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数用来取得指定字段的名称。
使用范例
mysql_field_name($result,2);

mysql_field_seek
配置指针到返回治募?某字段。
语法: int mysql_field_seek(int result, int field_offset);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数配置目前的指针到返回治募?特定字段中。
参考: mysql_fetch_field()

mysql_field_table
获得目前字段的资料表 (table) 名称。
语法: string mysql_field_table(int result, int field_offset);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可以得到目前所在字段的资料表名。

mysql_field_type
获得目前字段的类型。
语法: string mysql_field_type(int result, int field_offset);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可以得到目前所在字段的类型格式。返回的字符串为字段的类型,包括了 int、real、string、blob....等等,详见 MySQL 的相关文件中有关于类型的部份。
使用范例

<?php
mysql_connect
("localhost:3306");
mysql_select_db("wisconsin");
$result?=?mysql_query("SELECT?*?FROM?onek");
$fields?=?mysql_num_fields($result);
$rows?=?mysql_num_rows($result);
$i?=?0;
$table?=?mysql_field_table($result,?$i);
echo?
"资料表?'".$table."'?有?".$fields."?栏及?".$rows."?列。<br>";
echo?
"本资料表的字段如下<br>";
while?(
$i?<?$fields)?{
$type?=?mysql_field_type?($result,?$i);
$name?=?mysql_field_name?($result,?$i);
$len?=?mysql_field_len?($result,?$i);
$flags?=?mysql_field_flags?($result,?$i);
echo?
$type."?".$name."?".$len."?".$flags."<br>";
$i++;
}
mysql_close();
?>?

php爱好者站 //www.phpfans.net 文章|教程|下载|源码|论坛.
mysql_field_flags
获得目前字段的标志。
语法: string mysql_field_flags(int result, int field_offset);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可以得到目前所在字段的标志。若一个字段有数种属性标志,则返回的标志为这些属性连起来的字符串,每个属性都用空格隔开,可以使用 explode() 切开这些字符串。返回的标志可能是:not_null、primary_key、unique_key、multiple_key、blob、unsigned、zerofill、binary、enum、auto_increment、timestamp。

mysql_field_len
获得目前字段的长度。
语法: int mysql_field_len(int result, int field_offset);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到目前所在字段的长度。

mysql_free_result
释放返回占用内存。
语法: boolean mysql_free_result(int result);
返回值: 布尔值
函数种类: 数据库功能
内容说明: 本函数可以释放目前 MySQL 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。

mysql_insert_id
返回最后一次使用 INSERT 指令的 ID。
语法: int mysql_insert_id(int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到最后一次使用 INSERT 到 MySQL 数据库的执行 ID。[email protected] (13-May-1999) 指出在 PHP 3.0.7 版用 REPLACE 也和使用 INSERT 一样,可以使用本函数获得 ID。

mysql_list_fields
列出指定资料表的字段 (field)。
语法: int mysql_list_fields(string database_name, string table_name, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到指定的资料表的所有字段。返回的字段信息可以供 mysql_field_flags()、mysql_field_len()、mysql_field_name() 及 mysql_field_type() 等函数使用。若有错误则返回 -1。

mysql_list_dbs
列出 MySQL 服务器可用的数据库 (database)。
语法: int mysql_list_dbs(int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到 MySQL 服务器的可用数据库。

mysql_list_tables
列出指定数据库的资料表 (table)。
语法: int mysql_list_tables(string database, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到指定数据库中的所有资料表名称。

mysql_num_fields
取得返回字段的数目。
语法: int mysql_num_fields(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到返回字段的数目。
参考: mysql_db_query() mysql_query() mysql_fetch_field() mysql_num_rows()

mysql_num_rows
取得返回列的数目。
语法: int mysql_num_rows(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到返回列的数目。
参考: mysql_db_query() mysql_query() mysql_fetch_row()

mysql_pconnect
打开 MySQL 服务器持续连接。
语法: int mysql_pconnect(string [hostname] [:port], string [username], string [password]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数和 mysql_connect() 雷同。不同的地方在于使用本函数打开数据库时,程序会先寻找是否曾经执行过本函数,若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 mysql_close() 关闭数据库。

mysql_query
送出一个 query 字符串。
语法: int mysql_query(string query, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值。[email protected] (09-Feb-1999) 指出,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。
参考: mysql_db_query() mysql_select_db() mysql_connect()

mysql_result
取得查询 (query) 的结果。
语法: int mysql_result(int result, int row, mixed field);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 FieldName.TableName 的格式。在返回资料量少时,可以使用本函数来处理。当数据库大时,本函数的效率就有待考量了,这时可以使用较有效率的 mysql_fetch_row()、mysql_fetch_array() 及 mysql_fetch_object() 等函数。

mysql_select_db
选择一个数据库。
语法: int mysql_select_db(string database_name, int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。
参考: mysql_connect() mysql_pconnect() mysql_query()

mysql_tablename
取得资料表名称。
语法: string mysql_tablename(int result, int i);
返回值: 字符串
函数种类: 数据库功能
内容说明: 本函数可取得资料表名称字符串,一般配合 mysql_list_tables() 函数使用,取得该函返回的数字的名称字符串。
使用范例

<?php?
mysql_connect?
("localhost:3306");
$result?=?mysql_list_tables?("wisconsin");
$i?=?0;
while?(
$i?<?mysql_num_rows?($result))?{
$tb_names[$i]?=?mysql_tablename?($result,?$i);
echo?
$tb_names[$i]?.?"<BR>";
$i++;
}
?>?

非常全面的一个php技术网站

Sqllite介绍,下载,进阶,教程

1、SQLite简介
SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3. SQLite官方网站: //www.sqlite.org/
2、SQLite类型
SQLite的数据类型
首先你会接触到一个让你惊讶的名词: Typelessness(无类型). 对! SQLite是无类型的. 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么(只有在一种情况下不是, 稍后解释). 对于SQLite来说对字段不指定类型是完全有效的. 如:
Create Table ex1(a, b, c);
诚然SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎. SQLite支持常见的数据类型, 如:
CREATE TABLE ex2(
a VARCHAR(10),
b NVARCHAR(15),
c TEXT,
d INTEGER,
e FLOAT,
f BOOLEAN,
g CLOB,
h BLOB,
i TIMESTAMP,
j NUMERIC(10,5)
k VARYING CHARACTER (24),
l NATIONAL VARYING CHARACTER(16)
);
前面提到在某种情况下, SQLite的字段并不是无类型的. 即在字段类型为”Integer Primary Key”时.

SQLite支持SQL92 标准。
3、用.NET操作sqlite数据库
System.Data.SQLite?
是一个原始SQLite的加强版.? 它将是一个原版的sqlite3.dll完全替代品 (你甚至就可以把它重命名为sqlite3.dll).? 它不需要链接.NET 运行时,所以可以脱离.NET独立发布, 然而它内嵌了一个完整的 ADO.NET 2.0 引擎,为开发提供了完整的支持.

以下是它的特性简介:

完整的 ADO.NET 2.0 实现
整个工程完全基于VS2005 和 ADO.NET 2.0全新构建, 使用了全部的ADO.NET framework新特性.? 包括完整的 DbProviderFactory 支持, 自动的分布式事务调用, 广泛的模式支持, 此外所有的类都是从 ADO.NET 2.0 的基类继承下来的.

支持完整和精简的 .NET Framework 以及 C/C++
这个库不需要链接依赖.NET运行时,100%兼容原始的sqlite3.dll,可以使用非托管的C/C++ 进行开发.

可移植的数据库文件
未加密的 SQLite 数据库文件可以自由的跨平台和处理器使用,包括非Windows平台. 加密之后的数据库可以在全部Windows平台上使用.

可以信赖的速度,比包括Sql Server Mobile 在内的其它大多数嵌入式数据库都要快速
SQLite'安装所占用的空间相对于Sql Mobile可谓忽略不计了. 它在运行的时候占用更少的内存,同时生成的数据库也更小.

数据库加密
可以对整个数据库文件进行加密.? 支持二进制和明文的密码.

支持使用Visual Studio 2005 设计
你可以向Server Explorer添加一个SQLite 连接, 使用查询设计器创建处查询语句, 向一个数据集中拖拽一个表格等等! SQLite的开发者可以在包括体验版在内的各种Visual Studio 2005下工作.

单文件再发布包容量在400kb以下
将SQLite本身和ADO.NET 封装捆绑编译在一起.? 预编译的二进制文件提供了 x86, IA64, x64 和ARM 的版本.

广泛的SQL语言支持
SQLite 支持大部分的SQL92 标准(see below).? 支持命名和未命名的参数以 UTF-8 和UTF-16 编码通过优化的管道传入SQLite 内核.

用户自定义的函数 和 排序
全面支持用户自定义函数和排序方式,意味着你可以用自己喜欢的.NET语言来实现SQLite没有提供的特性.? 这一切将非常的简单.

提供了全部的源代码.? 100% 免费.
全部的封装库源代码都是公有的.? 无论是个人还是商业应用都没有任何的协议约束.
主页地址://sqlite.phxsoftware.com/

4、SQLite的管理
管理工具也有不少,建议您使用sqlitemanager,用法酷像phpmyadmin.
可以到 //sqlitemanager.sourceforge.net/下载 。

SQLite Query Analyzer Documentation ://www.monkeyshinez.net/SQLiteQA

可惜作者没有维护了,最新的可以参看这篇文章

SQLiteQA3: A SQLite Query Analyzer Clone for Visual Studio 2005 ://www.eggheadcafe.com/articles/20060803.asp

管理SQLite数据库的工具SQLite Developer你可以从//www.sharpplus.com/免费下载

5、SQLite 缺省情况下采用 Binary 方式比较字符串,因此我们使用
select * from [user] where [username] = 'Username1'
是找不出 [Username] = 'username1' 这样记录的。显然,这和我们平常使用的 SQL 检索有所区别。
解决方法:
创建数据库时,为目标字段添加 "COLLATE NOCASE" 即可。
如:

CREATE TABLE [User]
(
??[Username] TEXT NOT NULL COLLATE NOCASE
);

SQLite 3.0 Membership and Role Provider for ASP.NET 2.0

参考://www.cnblogs.com/redmoon/archive/2006/12/09/587617.html

sqlite,SQLite 中文://www.sqlite.com.cn/POPclass.asp?bigclassid=1

DEDE的文章查询SQL

1: 查询查看要删除的文章情况的代码:
select * from dede_addonarticle where length(body)<30
2: 删除内容表.
delete from dede_addonarticle where length(body)<30
3: 查询查看要删除的文章情况的第二个表的代码:
select *
from dede_archives t1
left join dede_addonarticle t2 on t1.id=t2.aid
where t2.aid is null
4: 删除第二个表.
Delete dede_archives
from dede_archives t1
left join dede_addonarticle t2 on t1.id=t2.aid
where t2.aid is null