久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長百科 | 數字化技能提升教程 數字化時代生存寶典
首頁
數字化百科
電子書
建站程序
開發(fā)
服務器
辦公軟件
開發(fā)教程
服務器教程
軟件使用教程
運營教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導航
程序頻道
推廣頻道
網賺頻道
人物頻道
網站程序
網頁制作
云計算
服務器
CMS
論壇
網店
虛擬主機
cPanel
網址導航
WIKI使用導航
WIKI首頁
最新資訊
網站程序
站長人物
頁面分類
使用幫助
編輯測試
創(chuàng)建條目
網站地圖
站長百科導航
站長百科
主機偵探
IDCtalk云說
跨境電商導航
WordPress啦
站長專題
網站推廣
網站程序
網站賺錢
虛擬主機
cPanel
網址導航專題
云計算
微博營銷
虛擬主機管理系統(tǒng)
開放平臺
WIKI程序與應用
美國十大主機
編輯“
MySQL中文參考手冊
”
人物百科
|
營銷百科
|
網賺百科
|
站長工具
|
網站程序
|
域名主機
|
互聯網公司
|
分類索引
跳轉至:
導航
、?
搜索
警告:
您沒有登錄。如果您做出任意編輯,您的IP地址將會公開可見。如果您
登錄
或
創(chuàng)建
一個賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
反垃圾檢查。
不要
加入這個!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>導航:</strong> [[PHP#PHP教程|上一頁]] | {{template:開發(fā)語言導航}}</span> <div style="clear:both;"></div> [[MySQL]]包含了一些可能在其他SQL數據庫找不到的擴充。要注意如果你使用他們,你的代碼把不與其他SQL服務器兼容。在一些情況下,你可以編寫包括MySQL擴展的代碼,但是仍然是可移植的,通過使用/*! ... */形式的注釋。在這種情況下,MySQL把進行詞法分析并且執(zhí)行在注釋內的代碼,好像它是任何其它MySQL語句,但是其他SQL服務器把忽略擴展。例如:<br> SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...<br> 如果你在'!'后增加一個版本數字,該語法把僅在MySQL版本是等于或比使用的版本數字新時才執(zhí)行:<br> CREATE /*!32302 TEMPORARY */ TABLE (a int);<br> 上面的意思是如果你有3.23.02或更新,那么MySQL把使用TEMPORARY關鍵詞。<br> MySQL擴展被列在下面:<br> 字段類型MEDIUMINT、SET、ENUM和不同的BLOB和TEXT類型。<br> 字段屬性AUTO_INCREMENT、BINARY、UNSIGNED和ZEROFILL。<br> 缺省地,所有的字符串比較是忽略大小寫的,由當前的字符集決定了(缺省為ISO-8859-1 Latin1)排序順序。如果你不喜歡這樣,你應該用BINARY屬性或使用BINARY強制符聲明列,它導致根據MySQL服務器主機的ASCII順序進行排序。<br> MySQL把每個數據庫映射一個MySQL數據目錄下面的目錄,把數據庫表映射到數據庫目錄下的數據庫文件名。這有2個含意:<br> 在區(qū)分大小寫文件名的操作系統(tǒng)(象大多數 Unix 系統(tǒng)一樣)上的MySQL中數據庫名字和表名是區(qū)分大小寫的。如果你有困難記得表名,接受一個一致的約定,例如總是用小寫名字創(chuàng)建數據庫和表。<br> 數據庫、表、索引、列或別名可以以數字開始(但是不能僅由數字組成)。<br> 你可以使用標準的系統(tǒng)命令備份、重命名、移動、刪除和拷貝表。例如,重命名一個表,重命名“.MYD”、“.MYI”和“.frm”文件為相應的表。<br> 在SQL語句中,你可以用db_name.tbl_name語法訪問不同數據庫中的表。一些SQL服務器提供同樣的功能但是稱它們?yōu)檫@User space(用戶空間)。MySQL不支持類似在create table ralph.my_table...IN my_tablespace中的表空間。<br> LIKE在數字列上被允許。<br> 在一SELECT語句里面使用INTO OUTFILE和STRAIGHT_JOIN。見7.12 SELECT句法.<br> 在一個SELECT語句中SQL_SMALL_RESULT選項。<br> EXPLAIN SELECT得到怎么樣聯結表的描述。<br> 在一個CREATE TABLE語句里面使用索引、在字段前綴上的索引和使用INDEX或KEY。見7.7 CREATE TABLE 句法。<br> CREATE TABLE使用TEMPORARY或IF NOT EXISTS。<br> 使用COUNT(DISTINCT list),這里“l(fā)ist”超過一個元素。<br> 在一個ALTER TABLE語句里面使用CHANGE col_name、DROP col_name或DROP INDEX。見7.8 ALTER TABLE句法。<br> 在一個ALTER TABLE里面語句使用IGNORE。<br> 在一個ALTER TABLE語句中使用多重ADD、ALTER、DROP或CHANGE子句。<br> 使用帶關鍵詞IF EXISTS的DROP TABLE。<br> 你能用單個DROP TABLE語句拋棄多個表。<br> DELETE語句的LIMIT子句。<br> INSERT和REPLACE語句的DELAYED子句。<br> INSERT, REPLACE, DELETE和UPDATE語句的LOW_PRIORITY子句。<br> 使用LOAD DATA INFILE。在多數情況下,這句法與Oracle的LOAD DATA INFILE兼容。見7.16 LOAD DATA INFILE 句法。<br> OPTIMIZE TABLE語句。。<br> SHOW語句。見7.21 SHOW句法(得到表、列等的信息)。<br> 字符串可以被“"”或“'”包圍,而不只是“'”。<br> 使用“\”轉義字符。<br> SET OPTION語句。見7.25 SET OPTION句法。<br> 你不需要命名所有在GROUP BY部分的被選擇的列。這為一些很特定的情況給出更好的性能,而不是一般的查詢。<br> 為了方便來自于SQL環(huán)境其他為用戶,MySQL對許多函數支持別名。例如,所有的字符串功能都支持ANSI SQL句法和 ODBC句法。<br> MySQL理解||和&&意味著邏輯的OR和AND,就像在C程序語言中。在MySQL中,||和OR是同義詞,&&和AND是同義詞。正因為這個好的句法,MySQL對字符串并置的不支持ANSI SQL ||操作符;相反使用CONCAT(),因為CONCAT()接受任何數量的參數,很容易把||操作符使用變換到MySQL。<br> CREATE DATABASE或DROP DATABASE。見7.5 CREATE DATABASE句法。<br> %操作符是MOD()一個同義詞,即,N % M等價于MOD(N,M)。%支持C程序員并與PostgreSQL兼容。<br> =, <>, <=,<, >=,>, <<, >>, <=>, AND, OR或LIKE操作符可以放在SELECT語句的FROM左邊用于比較列。例如:<br> mysql> SELECT col1=1 AND col2=2 FROM tbl_name;<br> LAST_INSERT_ID()函數。見20.4.29 mysql_insert_id()。<br> 擴展的正則表達式操作符REGEXP和NOT REGEXP。<br> CONCAT()或CHAR()有一個參數或超過2個參數。(在MySQL中,這些函數可取任何數量的參數。)<br> BIT_COUNT(), CASE, ELT(), FROM_DAYS(), FORMAT(), IF(), PASSWORD(), ENCRYPT(), md5(), ENCODE(), DECODE(), PERIOD_ADD(), PERIOD_DIFF(), TO_DAYS(),或WEEKDAY()函數。<br> 使用TRIM()整修子串。ANSI SQL 只支持單個字符的刪除。<br> GROUP BY函數STD(), BIT_OR()和BIT_AND()。<br> 使用REPLACE而不是DELETE+INSERT。見7.15 REPLACE句法。<br> FLUSH flush_option語句。<br> 在一個語句用:=設置變量的可能性:<br> SELECT @a:=SUM(total),@b=COUNT(*),@a/@b AS avg FROM test_table;<br> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;<br> 以ANSI模式運行MySQL<br> 如果你用--ansi選項啟動mysqld,MySQL的下列行為改變。<br> ||是字符串并置而不是OR。<br> 可在一個函數名字之間與“(”有任何數量的空格。這也使所有的功能名字成為保留詞。<br> "把是一個標識符引號字符(象MySQL `引號字符一樣)而不是一個字符串引號字符。<br> REAL把是FLOAT一個同義詞,不是DOUBLE一個同義詞。<br> 5.3 MySQL相比ANSI SQL92的差別<br> 我們嘗試使得MySQL遵照ANSI SQL標準和ODBC SQL標準,但是在一些情況下,MySQL做一些不同的事情:<br> --只是一個注釋,如果后面跟一個白空字符。`--'作為一個注釋的開始。<br> 對于VARCHAR列,當值被存儲時,拖后的空格被刪除。見E MySQL已知的錯誤和設計缺限。<br> 在一些情況下,CHAR列偷偷地被改變?yōu)閂ARCHAR列。平靜的列指定變化。<br> 當你刪除一個表時,對表的權限不自動地廢除。你必須明確地發(fā)出一個REVOKE來廢除對一個表的權限。見7.26 GRANT和REVOKE句法。<br> MySQL缺乏的功能<br> 下列功能在當前的MySQL版本是沒有的。對于一張優(yōu)先級表指出何時新擴展可以加入MySQL, 你應該咨詢在線MySQL TODO 表。這是本手冊最新的TODO表版本。見F 我們想要在未來加入到MySQL的事情列表(TODO)。<br> 子選擇<br> 在MySQL中下列語句還不能工作:<br> SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);<br> SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);<br> 然而,在很多情況下,你可以重寫查詢,而不用子選擇:<br> SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id;<br> SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id where table2.id IS NULL<br> 對于更復雜的子查詢,通常你可以創(chuàng)建臨時的表保存子查詢。然而在一些情況下,這種選擇把行不通。最經常遇到的情形是DELETE語句,對于它標準SQL不支持聯結(join)(除了在子選擇)。對于這種情況,有2個可用選擇,直到子選擇被MySQL支持。<br> 第一個選擇是使用一種過程化的程序語言(例如Perl或PHP)來提交一個SELECT查詢獲得要被刪除記錄主鍵,并然后使用這些值構造DELETE語句(DELETE FROM ... WHERE ... IN (key1, key2, ...))。<br> 第二個選擇是使用交互式SQL自動構造一套DELETE語句,使用MySQL擴展CONCAT()(代替標準||操作符)。例如:<br> SELECT CONCAT('DELETE FROM tab1 WHERE pkid = ', tab1.pkid, ';')<br> FROM tab1, tab2<br> WHERE tab1.col1 = tab2.col2;<br> 你可以把這個查詢放在一個腳本文件并且從它重定向輸入到mysql命令行解釋器,把其輸出作為管道返回給解釋器的第2個實例:<br> prompt> mysql --skip-column-names mydb < myscript.sql | mysql mydb<br> MySQL僅支持INSERT ... SELECT ...和REPLACE ... SELECT ...,獨立的子選擇把可能在3.24.0得到,然而,在其他環(huán)境下,你現在可以使用函數IN()。<br> SELECT INTO TABLE<br> MySQL還不支持Oracle SQL的擴展:SELECT ... INTO TABLE ....,相反MySQL支持ANSI SQL句法INSERT INTO ... SELECT ...,基本上他們是一樣的。<br> 另外,你可使用SELECT INTO OUTFILE...或CREATE TABLE ... SELECT解決你的問題。<br> 事務處理 <br> 不支持事務處理。MySQL把在短時間內支持原子(atomic)操作,它象沒有回卷的事務。用原子操作,你能執(zhí)行一組INSERT/SELECT/whatever 命令并且保證沒有其他線程介入。在本文中,你通常不會需要回卷。目前,你可通過使用LOCK TABLES和UNLOCK TABLES命令阻止其他線程的干擾。見7.24 LOCK TABLES/UNLOCK TABLES句法。 <br> 存儲過程和觸發(fā)器 <br> 一個存儲過程是能在服務器中編譯并存儲的一套SQL命令。一旦這樣做了,顧客不需要一直重新發(fā)出全部查詢,而可以參考存儲過程。因為查詢僅需一次詞法分析并且較少的信息需要在服務器和客戶之間傳送,因此這提供了更好的性能。你與可以通過擁有在服務器中的函數庫提升概念上的層次。 <br> [[category:PHP教程]] [[category:MYSQL教程]]
摘要:
請注意,您對站長百科的所有貢獻都可能被其他貢獻者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請不要提交。
您同時也要向我們保證您所提交的內容是您自己所作,或得自一個不受版權保護或相似自由的來源(參閱
Wordpress-mediawiki:版權
的細節(jié))。
未經許可,請勿提交受版權保護的作品!
取消
編輯幫助
(在新窗口中打開)
本頁使用的模板:
模板:開發(fā)語言導航
(
編輯
)
取自“
http://www.kktzf.com.cn/wiki/MySQL中文參考手冊
”