MySql-增刪改查語句

02.鏈接命令:mysql -h[主機地址] -u[用戶名] -p[用戶密碼]
03.建立數據庫:create database [庫名]
04.顯示全部數據庫: show databases;
05.打開數據庫:use [庫名]
06.當前選擇的庫狀態:SELECT DATABASE();
07.建立數據表:CREATE TABLE [表名]([字段名] [字段類型]([字段要求]) [字段參數], ......);
08.顯示數據表字段:describe 表名;
09.當前庫數據表結構:show tables;
10.更改表格 
11. ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE
12. 說明:增長一個欄位(沒有刪除某個欄位的語法。
13. ALTER TABLE [表名] ADD PRIMARY KEY ([字段名])
14. 說明:更改表得的定義把某個欄位設爲主鍵。
15. ALTER TABLE [表名] DROP PRIMARY KEY ([字段名])
16. 說明:把主鍵的定義刪除。
17.顯示當前表字段:show columns from tablename;
18.刪庫:drop database [庫名];
19.刪表:drop table [表名];
20.數據操做
21.添加:INSERT INTO [表名] VALUES('','',......順序排列的數據);
22.查詢: SELECT * FROM [表名] WHERE ([條件]);
23.創建索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]);
24.刪除:DELETE FROM [表名] WHERE ([條件]);
25.修改:UPDATE [表名] SET [修改內容如name = 'Mary'] WHERE [條件];
26.
27.導入外部數據文本:
28.1.執行外部的sql腳本
29.當前數據庫上執行:mysql < input.sql
30.指定數據庫上執行:mysql [表名] < input.sql
31.2.數據傳入命令 load data local infile "[文件名]" into table [表名];
32.備份數據庫:(dos下)
33.mysqldump --opt school>school.bbb
34.
35.
36.
37.提示:經常使用MySQL命令以";"結束,有少許特殊命令不能加";"結束,如備份數據庫
38.一. 增刪改查操做
39.
40.=================================================================================
41.1. 增:
42.insert into 表名 values(0,'測試');
43.注:如上語句,表結構中有自動增加的列,也必須爲其指定一個值,一般爲0
44.insert into 表名(id,name) values(0,'尹當')--同上
45.2.刪數據:
46.delete from 表名;
47.delete from 表名 where id=1;
48.刪除結構:
49.刪數據庫:drop database 數據庫名;
50.刪除表:drop table 表名;
51.刪除表中的列:alter table 表名 drop column 列名;
52.3. 改:
53.修改全部:updata 表名 set 列名='新的值,非數字加單引號' ;
54.帶條件的修改:updata 表名 set 列名='新的值,非數字加單引號' where id=6;
55.4.查:
56.查詢全部的數據:select *from 表名;
57.帶條件的查詢:
58.select *from 表名 where 列名=條件值;
59.Select * from 表名 where 列名 not like(like) '字符值'
60.分頁查詢:select *from 表名 limit 每頁數量 offset 偏移量;
61.
62.
63.
64.二.操做命令
65.
66.=================================================================================
67.1. 查看數據庫信息:show databases;
68.2.查看錶信息:show tables;
69.3.查看錶的結構:desc 表名
70.4. 新建數據庫:create database 數據庫名;
71.5.操做指定數據庫:use 數據庫名;
72.6.新建數據表(先use 操做庫);
73.create table 表名(規範爲tbl_表名)
74.(
75.id int auto_increment primary key,( auto_increment爲自動增加)
76.name varchar(20) primary key
77.)ENGINE=InnoDB DEFAULT CHARSET=gbk//支持事務和設置表的編碼
78.6.2添加主外鍵:
79.alter table 外表名 add constraint FK_名稱 foreign key(外列) references 主表名(主列)
80.如現有兩表 主表tbl_order 子表tbl_orderdetail 現子表tbl_orderdetail的oid列引用了主表tbl_order的oid列
81.則命令以下:
82.alter table tbl_orderdetail add constraint FK_oid foreign key(oid) references tbl_order(oid)
83.7.導出表,備份到一個文件中,如.txt,.doc
84.cmd命令窗口:mysqldump -u 用戶名 -p 須要備份的數據庫名 >備份的文件的保存路徑和文件名
85.注:如指定的文件不存在,mysql會自動添加一個文件,此命令不能加分號結尾(文件沒有備份建數據庫操做)
86.8.導入數據庫備份文件:
87.(1).在mysql命令窗口
88.(2).新建一個要導入的數據庫(由於備份中沒有備份建數據庫操做)
89.(3).use 當前庫名
90.(4).source 備份的文件的保存路徑和文件名(此命令不能加分號結尾)
91.
92.
93.三:系統操做
94.
95.=================================================================================
96.1. 打開服務:net start mysql(mysql爲配置時,可自定名稱)
97.2.關閉服務:net stop mysql
98.3.從cmd 模式進入mysql
99.(1).mysql -u 用戶名 -p 回車>輸入正確密碼>進入歡迎
100.(2).mysql -h IP(本機localhost) -u 用戶名 -p 回車>輸入正確密碼>進入歡迎
101.3.退出:exit/quit;
102.4.修改用戶密碼:mysqladmin -u 用戶名 -p password 新密碼
103.5.處理中文亂碼:
104.(1).在D:\MySQL \MySQL Server 5.0\data的操做數據爲文件中查看是否爲如下:
105.default-character-set=gbk
106.default-collation=gbk_chinese_ci
107.
108.(2).查看安裝文件默認編碼:D:\MySQL\MySQL Server 5.0>my>default-character-set=gbk
109.
110.=================================================================================
111.
112.
113.啓動:net start mySql;
114.進入:mysql -u root -p/mysql -h localhost -u root -p databaseName;
115.列出數據庫:show databases;
116.選擇數據庫:use databaseName;
117.列出表格:show tables;
118.顯示錶格列的屬性:show columns from tableName;
119.創建數據庫:source fileName.txt;
120.匹配字符:能夠用通配符_表明任何一個字符,%表明任何字符串;
121.增長一個字段:alter table tabelName add column fieldName dateType;
122.增長多個字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
123.多行命令輸入:注意不能將單詞斷開;當插入或更改數據時,不能將字段的字符串展開到多行裏,不然硬回車將被儲存到數據中;
124.增長一個管理員賬戶:grant all on *.* to user@localhost identified by "password";
125.每條語句輸入完畢後要在末尾填加分號';',或者填加'\g'也能夠;
126.查詢時間:select now();
127.查詢當前用戶:select user();
128.查詢數據庫版本:select version();
129.查詢當前使用的數據庫:select database();
130.
131.一、刪除student_course數據庫中的students數據表:
132.rm -f student_course/students.*
133.
134.二、備份數據庫:(將數據庫test備份)
135.mysqldump -u root -p test>c:\test.txt
136.備份表格:(備份test數據庫下的mytable表格)
137.mysqldump -u root -p test mytable>c:\test.txt
138.將備份數據導入到數據庫:(導回test數據庫)
139.mysql -u root -p test
140.
141.三、建立臨時表:(創建臨時表zengchao)
142.create temporary table zengchao(name varchar(10));
143.
144.四、建立表是先判斷表是否存在
145.create table if not exists students(……);
146.
147.五、從已經有的表中複製表的結構
148.create table table2 select * from table1 where 1<>1;
149.
150.六、複製表
151.create table table2 select * from table1;
152.
153.七、對錶從新命名
154.alter table table1 rename as table2;
155.
156.八、修改列的類型
157.alter table table1 modify id int unsigned;//修改列id的類型爲int unsigned
158.alter table table1 change id sid int unsigned;//修改列id的名字爲sid,並且把屬性修改成int unsigned
159.
160.九、建立索引
161.alter table table1 add index ind_id (id);
162.create index ind_id on table1 (id);
163.create unique index ind_id on table1 (id);//創建惟一性索引
164.
165.十、刪除索引
166.drop index idx_id on table1;
167.alter table table1 drop index ind_id;
168.
169.十一、聯合字符或者多個列(將列id與":"和列name和"="鏈接)
170.select concat(id,':',name,'=') from students;
171.
172.十二、limit(選出10到20條)<第一個記錄集的編號是0>
173.select * from students order by id limit 9,10;
174.
175.1三、MySQL不支持的功能
176.事務,視圖,外鍵和引用完整性,存儲過程和觸發器
177.
178.
179.1四、MySQL會使用索引的操做符號
180.<,<=,>=,>,=,between,in,不帶%或者_開頭的like
181.
182.1五、使用索引的缺點
183.1)減慢增刪改數據的速度;
184.2)佔用磁盤空間;
185.3)增長查詢優化器的負擔;
186.當查詢優化器生成執行計劃時,會考慮索引,太多的索引會給查詢優化器增長工做量,致使沒法選擇最優的查詢方案;
187.
188.1六、分析索引效率
189.方法:在通常的SQL語句前加上explain;
190.分析結果的含義:
191.1)table:表名;
192.2)type:鏈接的類型,(ALL/Range/Ref)。其中ref是最理想的;
193.3)possible_keys:查詢能夠利用的索引名;
194.4)key:實際使用的索引;
195.5)key_len:索引中被使用部分的長度(字節);
196.6)ref:顯示列名字或者"const"(不明白什麼意思);
197.7)rows:顯示MySQL認爲在找到正確結果以前必須掃描的行數;
198.8)extra:MySQL的建議;
199.
200.1七、使用較短的定長列
201.1)儘量使用較短的數據類型;
202.2)儘量使用定長數據類型;
203.a)用char代替varchar,固定長度的數據處理比變長的快些;
204.b)對於頻繁修改的表,磁盤容易造成碎片,從而影響數據庫的總體性能;
205.c)萬一出現數據表崩潰,使用固定長度數據行的表更容易從新構造。使用固定長度的數據行,每一個記錄的開始位置都是固定記錄長度的倍數,能夠很容易被檢測到,可是使用可變長度的數據行就不必定了;
206.d)對於MyISAM類型的數據表,雖然轉換成固定長度的數據列能夠提升性能,可是佔據的空間也大;
207.
208.1八、使用not null和enum
209.儘可能將列定義爲not null,這樣可以使數據的出來更快,所需的空間更少,並且在查詢時,MySQL不須要檢查是否存在特例,即null值,從而優化查詢;
210.若是一列只含有有限數目的特定值,如性別,是否有效或者入學年份等,在這種狀況下應該考慮將其轉換爲enum列的值,MySQL處理的更快,由於全部的enum值在系統內都是以標識數值來表示的;
211.
212.1九、使用optimize table
213.對於常常修改的表,容易產生碎片,使在查詢數據庫時必須讀取更多的磁盤塊,下降查詢性能。具備可變長的表都存在磁盤碎片問題,這個問題對blob數據類型更爲突出,由於其尺寸變化很是大。能夠經過使用optimize table來整理碎片,保證數據庫性能不降低,優化那些受碎片影響的數據表。 optimize table能夠用於MyISAM和BDB類型的數據表。實際上任何碎片整理方法都是用mysqldump來轉存數據表,而後使用轉存後的文件並從新建數據表;
214.
215.20、使用procedure analyse()
216.可使用procedure analyse()顯示最佳類型的建議,使用很簡單,在select語句後面加上procedure analyse()就能夠了;例如:
217.select * from students procedure analyse();
218.select * from students procedure analyse(16,256);
219.第二條語句要求procedure analyse()不要建議含有多於16個值,或者含有多於256字節的enum類型,若是沒有限制,輸出可能會很長;
220.
221.2一、使用查詢緩存
222.1)查詢緩存的工做方式:
223.第一次執行某條select語句時,服務器記住該查詢的文本內容和查詢結果,存儲在緩存中,下次碰到這個語句時,直接從緩存中返回結果;當更新數據表後,該數據表的任何緩存查詢都變成無效的,而且會被丟棄。
224.2)配置緩存參數:
225.變量:query_cache _type,查詢緩存的操做模式。有3中模式,0:不緩存;1:緩存查詢,除非與 select sql_no_cache開頭;2:根據須要只緩存那些以select sql_cache開頭的查詢; query_cache_size:設置查詢緩存的最大結果集的大小,比這個值大的不會被緩存。
226.
227.2二、調整硬件
228.1)在機器上裝更多的內存;
229.2)增長更快的硬盤以減小I/O等待時間;
230.尋道時間是決定性能的主要因素,逐字地移動磁頭是最慢的,一旦磁頭定位,從磁道讀則很快;
231.3)在不一樣的物理硬盤設備上從新分配磁盤活動;
232.若是可能,應將最繁忙的數據庫存放在不一樣的物理設備上,這跟使用同一物理設備的不一樣分區是不一樣的,由於它們將爭用相同的物理資源(磁頭)。
233.
234.
235.
236.
237.
238.
239.
240.1、鏈接MYSQL。
241.
242.格式: mysql -h主機地址 -u用戶名 -p用戶密碼
243.
244.一、例1:鏈接到本機上的MYSQL。
245.
246.首先在打開DOS窗口,而後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,若是剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車便可進入到MYSQL中了,MYSQL的提示符是:mysql>
247.
248.二、例2:鏈接到遠程主機上的MYSQL。假設遠程主機的IP爲:110.110.110.110,用戶名爲 root,密碼爲abcd123。則鍵入如下命令:
249.
250.mysql -h110.110.110.110 -uroot -pabcd123
251.
252.(注:u與root能夠不用加空格,其它也同樣)
253.
254.三、退出MYSQL命令: exit (回車)
255.
256.2、修改密碼。
257.
258.格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
259.
260.一、例1:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,而後鍵入如下命令
261.
262.mysqladmin -uroot -password ab12
263.
264.注:由於開始時root沒有密碼,因此-p舊密碼一項就能夠省略了。
265.
266.二、例2:再將root的密碼改成djg345。
267.
268.mysqladmin -uroot -pab12 password djg345
269.
270.3、增長新用戶。(注意:和上面不一樣,下面的由於是MYSQL環境中的命令,因此後面都帶一個分號做爲命令結束符)
271.
272.格式:grant select on 數據庫.* to 用戶名@登陸主機 identified by \"密碼\"
273.
274.例一、增長一個用戶test1密碼爲abc,讓他能夠在任何主機上登陸,並對全部數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MYSQL,而後鍵入如下命令:
275.
276.grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";
277.
278.但例1增長的用戶是十分危險的,你想如某我的知道test1的密碼,那麼他就能夠在internet上的任何一臺電腦上登陸你的mysql數據庫並對你的數據能夠隨心所欲了,解決辦法見例2。
279.
280.例 二、增長一個用戶test2密碼爲abc,讓他只能夠在localhost上登陸,並能夠對數據庫mydb進行查詢、插入、修改、刪除的操做(localhost指本地主機,即MYSQL數據庫所在的那臺主機),這樣用戶即便用知道test2的密碼,他也沒法從 internet上直接訪問數據庫,只能經過MYSQL主機上的web頁來訪問了。
281.
282.grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";
283.
284.若是你不想test2有密碼,能夠再打一個命令將密碼消掉。
285.
286.grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";
287.
288.在上篇咱們講了登陸、增長用戶、密碼更改等問題。下篇咱們來看看MYSQL中有關數據庫方面的操做。注意:你必須首先登陸到MYSQL中,如下操做都是在MYSQL的提示符下進行的,並且每一個命令以分號結束。
289.
290.1、操做技巧
291.
292.一、若是你打命令時,回車後發現忘記加分號,你無須重打一遍命令,只要打個分號回車就能夠了。也就是說你能夠把一個完整的命令分紅幾行來打,完後用分號做結束標誌就OK。
293.
294.二、你可使用光標上下鍵調出之前的命令。但之前我用過的一個MYSQL舊版本不支持。我如今用的是mysql- 3.23.27-beta-win。
295.
296.2、顯示命令
297.
298.一、顯示數據庫列表。
299.
300.show databases;
301.
302.剛開始時才兩個數據庫:mysql和test。mysql庫很重要它裏面有MYSQL的系統信息,咱們改密碼和新增用戶,實際上就是用這個庫進行操做。
303.
304.二、顯示庫中的數據表:
305.
306.use mysql; //打開庫,學過FOXBASE的必定不會陌生吧
307.
308.show tables;
309.
310.三、顯示數據表的結構:
311.
312.describe 表名;
313.
314.四、建庫:
315.
316.create database 庫名;
317.
318.五、建表:
319.
320.use 庫名;
321.
322.create table 表名 (字段設定列表);
323.
324.六、刪庫和刪表:
325.
326.drop database 庫名;
327.
328.drop table 表名;
329.
330.七、將表中記錄清空:
331.
332.delete from 表名;
333.
334.八、顯示錶中的記錄:
335.
336.select * from 表名;
337.
338.3、一個建庫和建表以及插入數據的實例
339.
340.drop database if exists school; //若是存在SCHOOL則刪除
341.
342.create database school; //創建庫SCHOOL
343.
344.use school; //打開庫SCHOOL
345.
346.create table teacher //創建表TEACHER
347.
348.(
349.
350.id int(3) auto_increment not null primary key,
351.
352.name char(10) not null,
353.
354.address varchar(50) default ’深圳’,
355.
356.year date
357.
358.); //建表結束
359.
360.//如下爲插入字段
361.
362.insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);
363.
364.insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);
365.
366.注:在建表中(1)將ID設爲長度爲3的數字字段:int(3)並讓它每一個記錄自動加一:auto_increment並不能爲空:not null並且讓他成爲主字段primary key(2)將NAME設爲長度爲10的字符字段(3)將ADDRESS設爲長度50的字符字段,並且缺省值爲深圳。varchar和char有什麼區別呢,只有等之後的文章再說了。(4)將YEAR設爲日期字段。
367.
368.若是你在mysql提示符鍵入上面的命令也能夠,但不方便調試。你能夠將以上命令原樣寫入一個文本文件中假設爲 school.sql,而後複製到c:\\下,並在DOS狀態進入目錄\\mysql\\bin,而後鍵入如下命令:
369.
370.mysql -uroot -p密碼 < c:\\school.sql
371.
372.若是成功,空出一行無任何顯示;若有錯誤,會有提示。(以上命令已經調試,你只要將//的註釋去掉便可使用)。
373.
374.4、將文本數據轉到數據庫中
375.
376.一、文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用\\n來代替.
377.
378.例:
379.
380.3 rose 深圳二中 1976-10-10
381.
382.4 mike 深圳一中 1975-12-23
383.
384.二、數據傳入命令 load data local infile \"文件名\" into table 表名;
385.
386.注意:你最好將文件複製到\\mysql\\bin目錄下,而且要先用use命令打表所在的庫。
387.
388.5、備份數據庫:(命令在DOS的\\mysql\\bin目錄下執行)
389.mysqldump --opt school>school.bbb
390.
391.註釋:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
392.
393.
394.
395.mysql命令行經常使用命令
396.
397.第一招、mysql服務的啓動和中止
398.net stop mysql
399.net start mysql
400.第二招、登錄mysql
401.語法以下: mysql -u用戶名 -p用戶密碼
402.鍵入命令mysql -uroot -p, 回車後提示你輸入密碼,輸入12345,而後回車便可進入到mysql中了,mysql的提示符是:
403.mysql>
404.注意,若是是鏈接到另外的機器上,則須要加入一個參數-h機器IP
405.第三招、增長新用戶
406.格式:grant 權限 on 數據庫.* to 用戶名@登陸主機 identified by "密碼"
407.如,增長一個用戶user1密碼爲password1,讓其能夠在本機上登陸, 並對全部數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,而後鍵入如下命令:
408.grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
409.若是但願該用戶可以在任何機器上登錄mysql,則將localhost改成"%"。
410.若是你不想user1有密碼,能夠再打一個命令將密碼去掉。
411.grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
412.第四招: 操做數據庫
413.登陸到mysql中,而後在mysql的提示符下運行下列命令,每一個命令以分號結束。
414.一、 顯示數據庫列表。
415.show databases;
416.缺省有兩個數據庫:mysql和 test。 mysql庫存放着mysql的系統和用戶權限信息,咱們改密碼和新增用戶,實際上就是對這個庫進行操做。
417.二、 顯示庫中的數據表:
418.use mysql;
419.show tables;
420.三、 顯示數據表的結構:
421.describe 表名;
422.四、 建庫與刪庫:
423.create database 庫名;
424.drop database 庫名;
425.五、 建表:
426.use 庫名;
427.create table 表名(字段列表);
428.drop table 表名;
429.六、 清空表中記錄:
430.delete from 表名;
431.七、 顯示錶中的記錄:
432.select * from 表名;
433.第五招、導出和導入數據
434.1. 導出數據:
435.mysqldump --opt test > mysql.test
436.即將數據庫test數據庫導出到mysql.test文件,後者是一個文本文件
437.如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
438.就是把數據庫dbname導出到文件mysql.dbname中。
439.2. 導入數據:
440.mysqlimport -u root -p123456 < mysql.dbname。
441.不用解釋了吧。
442.3. 將文本數據導入數據庫:
443.文本數據的字段數據之間用tab鍵隔開。
444.use test;
445.load data local infile "文件名" into table 表名;
446.
447.SQL經常使用命令使用方法:
448.
449.(1) 數據記錄篩選:
450.
451.sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]"
452.
453.sql="select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]"
454.
455.sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]"
456.
457.sql="select * from 數據表 where 字段名 in ('值1','值2','值3')"
458.
459.sql="select * from 數據表 where 字段名 between 值1 and 值2"
460.
461.(2) 更新數據記錄:
462.
463.sql="update 數據表 set 字段名=字段值 where 條件表達式"
464.
465.sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"
466.
467.(3) 刪除數據記錄:
468.
469.sql="delete from 數據表 where 條件表達式"
470.
471.sql="delete from 數據表" (將數據表全部記錄刪除)
472.
473.(4) 添加數據記錄:
474.
475.sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
476.
477.sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)
478.
479.(5) 數據記錄統計函數:
480.
481.AVG(字段名) 得出一個表格欄平均值
482.COUNT(*|字段名) 對數據行數的統計或對某一欄有值的數據行數統計
483.MAX(字段名) 取得一個表格欄最大的值
484.MIN(字段名) 取得一個表格欄最小的值
485.SUM(字段名) 把數據欄的值相加
486.
487.引用以上函數的方法:
488.
489.sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"
490.set rs=conn.excute(sql)
491.
492.用 rs("別名") 獲取統的計值,其它函數運用同上。
493.
494.(6) 數據表的創建和刪除:
495.
496.CREATE TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )
497.
498.例:CREATE TABLE tab01(name varchar(50),datetime default now())
499.
500.DROP TABLE 數據表名稱 (永久性刪除一個數據表)
501.
502.
503.
504.select * from test.text where 1 *表示全部欄目 test指數據庫名text指表名 where指條件
505.Select remark as r id,uid from test.text where 指id uid 2欄顯示 as 就是給欄目命名
506.select * from test.text where id>4 指ID大於4的都顯示出來
507.select * from test.text where id<>4 指ID 不等於4的都出來
508.select * from test.text where id=1 指ID等於1的出來
509.select * from test.text where id in(1,3,5) 指找出ID爲1 3 5的 not in()則相反
510.select * from test.text where uid like "%王%" 指UID裏只要帶王字的都出來 %王 表示什麼王 ,王%表示 王什麼。
511.select * from test.text where remark like "%學%" 指remark裏帶學的都出來
512.select * from test.text where id between 1 and 10 and uid like "%王%"表示ID 1-10 而且 UID帶王字的出來
513.select * from test.text where id not between 1 and 4 指ID不在1-4裏面的 出來
514.(1 and 2 表示知足1且知足2 1 or 2 表示知足1和知足2 )and or能夠鏈接不少條件
515.select * from test.text group by remark 顯示列出remark有多少類別 如圖↓ 有5類 group by 就是分組命令
516.
517.select * from test.text order by regdate asc 把regdate 按從小到大排列
518.ASC不打就是默認從小到大 DESC表示從大到小 如 order desc
519.select * from test.text order by regdate asc,id desc 這樣就查詢出日期從小到大 而後在知足日期的排列後 ID從大到小排列
520.select * from test.text limit 0,5 表示取5條記錄 若是是3,6 那就是第4-第9條記錄被取出 如圖↓
521.如過只寫一個6那就等於0,6
522.select * from test.text group by remark order by regdate limit 6 先分組 再排序 LIMIT放最後 這是語法不能顛倒。
523.select count(id) from test.text count()表示查詢有多少條信息 這樣根據表顯示出10條
524.select max(regdate) from test.text max() 查詢最大值 只能針對數字 包括日期 根據表顯示出2008-10-22 14:41:30
525.select min(regdate)from test.text min() 查詢最小值 只能針對數字 包括日期 根據表顯示出2008-10-07 13:21:32
526.select avg(id) from test.text avg() 查詢平均值 也只針對數字 包括日期 顯示出5.5 如算平均分數
527.select sum(id) from test.text sum() 查詢累計值 數字包括日期 顯示出55 1+2+3+。。10=55 如算總分數
528.insert 插入語句
529.insert into `text`(`id`,`uid`,`regdate`,`remark`)values(null,'ken',now(),'學生') 其中null就是沒有 now()就是時間日期自動生成
530.字段的類型要設計好。特別注意!
531.
532.
533.
534.
535.Update 更改語句
536.Update 表名 set 字段=值 where 條件 LIMIT(可省略)
537.update test.text set uid='kenchen' where id=11 意思是把ID是11的UID 改爲kenchen
538.
539.Delete 刪除語句
540.Delete from 表命 where limit
541.Delete from text where id=3 意思是把ID=3的信息條刪除!
542.
543.mysql 字段類型說明- -
544.
545.
546.MySQL支持大量的列類型,它能夠被分爲3類:數字類型、日期和時間類型以及字符串(字符)類型。本節首先給出可用類型的一個概述,而且總結每一個列類型的存儲需求,而後提供每一個類中的類型性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列類型的附加信息,例如你能爲其指定值的容許格式。
547.
548.由MySQL支持的列類型列在下面。下列代碼字母用於描述中:
549.
550.M
551.指出最大的顯示尺寸。最大的合法的顯示尺寸是 255 。
552.D
553.適用於浮點類型而且指出跟隨在十進制小數點後的數碼的數量。最大可能的值是30,可是應該不大於M-2。
554.方括號(「[」和「]」)指出可選的類型修飾符的部分。
555.
556.注意,若是你指定一個了爲ZEROFILL,MySQL將爲該列自動地增長UNSIGNED屬性。
557.
558.TINYINT[(M)] [UNSIGNED] [ZEROFILL]
559.一個很小的整數。有符號的範圍是-128到127,無符號的範圍是0到255。
560.
561.
562.SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
563.一個小整數。有符號的範圍是-32768到32767,無符號的範圍是0到65535。
564.
565.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
566.一箇中等大小整數。有符號的範圍是-8388608到8388607,無符號的範圍是0到16777215。
567.
568.INT[(M)] [UNSIGNED] [ZEROFILL]
569.一個正常大小整數。有符號的範圍是-2147483648到2147483647,無符號的範圍是0到4294967295。
570.
571.INTEGER[(M)] [UNSIGNED] [ZEROFILL]
572.這是INT的一個同義詞。
573.BIGINT[(M)] [UNSIGNED] [ZEROFILL]
574.一個大整數。有符號的範圍是-9223372036854775808到9223372036854775807,無符號的範圍是0到
575.18446744073709551615。注意,全部算術運算用有符號的BIGINT或DOUBLE值完成,所以你不該該使用大於9223372036854775807(63位)的有符號大整數,除了位函數!注意,當兩個參數是INTEGER值時,-、+和*將使用BIGINT運算!這意味着若是你乘2個大整數(或來自於返回整數的函數),若是結果大於9223372036854775807,你能夠獲得意外的結果。一個浮點數字,不能是無符號的,對一個單精度浮點數,其精度能夠是<=24,對一個雙精度浮點數,是在25 和53之間,這些類型如FLOAT和DOUBLE類型立刻在下面描述。FLOAT(X)有對應的FLOAT和DOUBLE相同的範圍,可是顯示尺寸和小數位數是未定義的。在MySQL3.23中,這是一個真正的浮點值。在更早的MySQL版本中,FLOAT(precision)老是有2位小數。該句法爲了ODBC兼容性而提供。
576.
577.FLOAT[(M,D)] [ZEROFILL]
578.一個小(單精密)浮點數字。不能無符號。容許的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是顯示寬度而D是小數的位數。沒有參數的FLOAT或有<24 的一個參數表示一個單精密浮點數字。
579.DOUBLE[(M,D)] [ZEROFILL]
580.一個正常大小(雙精密)浮點數字。不能無符號。容許的值是-1.7976931348623157E+308到-2.2250738585072014E-30八、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是顯示寬度而D是小數位數。沒有一個參數的DOUBLE或FLOAT(X)(25 < = X < = 53)表明一個雙精密浮點數字。
581.DOUBLE PRECISION[(M,D)] [ZEROFILL]
582.REAL[(M,D)] [ZEROFILL]
583.這些是DOUBLE同義詞。
584.DECIMAL[(M[,D])] [ZEROFILL]
585.一個未壓縮(unpack)的浮點數字。不能無符號。行爲如同一個CHAR列:「未壓縮」意味着數字做爲一個字符串被存儲,值的每一位使用一個字符。小數點,而且對於負數,「-」符號不在M中計算。若是D是0,值將沒有小數點或小數部分。DECIMAL值的最大範圍與DOUBLE相同,可是對一個給定的DECIMAL列,實際的範圍能夠經過M和D的選擇被限制。若是D被省略,它被設置爲0。若是M被省掉,它被設置爲10。注意,在MySQL3.22裏,M參數包括符號和小數點。
586.
587.
588.NUMERIC(M,D) [ZEROFILL]
589.這是DECIMAL的一個同義詞。 DATE
590.一個日期。支持的範圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示DATE值,可是容許你使用字符串或數字把值賦給DATE列。
591.DATETIME
592.一個日期和時間組合。支持的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式來顯示DATETIME值,可是容許你使用字符串或數字把值賦給DATETIME的列。
593.TIMESTAMP[(M)]
594.一個時間戳記。範圍是'1970-01-01 00:00:00'到2037年的某時。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式來顯示TIMESTAMP值,取決因而否M是14(或省略)、十二、8或6,可是容許你使用字符串或數字把值賦給TIMESTAMP列。一個TIMESTAMP列對於記錄一個INSERT或UPDATE操做的日期和時間是有用的,由於若是你不本身給它賦值,它自動地被設置爲最近操做的日期和時間。你以能夠經過賦給它一個NULL值設置它爲當前的日期和時間。
595.TIME
596.一個時間。範圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式來顯示TIME值,可是容許你使用字符串或數字把值賦給TIME列。
597.YEAR[(2|4)]
598.一個2或4位數字格式的年(缺省是4位)。容許的值是1901到2155,和0000(4位年格式),若是你使用2位,1970-2069( 70-69)。MySQL以YYYY格式來顯示YEAR值,可是容許你把使用字符串或數字值賦給YEAR列。(YEAR類型在MySQL3.22中是新類型。)
599.CHAR(M) [BINARY]
600.一個定長字符串,當存儲時,老是是用空格填滿右邊到指定的長度。M的範圍是1 ~ 255個字符。當值被檢索時,空格尾部被刪除。CHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式來定義CHAR列應該使用缺省字符集。這是MySQL的缺省。CHAR是CHARACTER的一個縮寫。
601.[NATIONAL] VARCHAR(M) [BINARY]
602.一個變長字符串。注意:當值被存儲時,尾部的空格被刪除(這不一樣於ANSI SQL規範)。M的範圍是1 ~ 255個字符。 VARCHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞值。 VARCHAR是CHARACTER VARYING一個縮寫。
603.TINYBLOB  
604.TINYTEXT
605.一個BLOB或TEXT列,最大長度爲255(2^8-1)個字符。
606.BLOB
607.TEXT
608.一個BLOB或TEXT列,最大長度爲65535(2^16-1)個字符。
609.MEDIUMBLOB  
610.MEDIUMTEXT
611.一個BLOB或TEXT列,最大長度爲16777215(2^24-1)個字符。
612.LONGBLOB  
613.LONGTEXT
614.一個BLOB或TEXT列,最大長度爲4294967295(2^32-1)個字符。
615.ENUM('value1','value2',...)
616.枚舉。一個僅有一個值的字符串對象,這個值式選自與值列表'value1'、'value2', ...,或NULL。一個ENUM最多能有65535不一樣的值。
617.SET('value1','value2',...)
618.一個集合。能有零個或多個值的一個字符串對象,其中每個必須從值列表'value1', 'value2', ...選出。一個SET最多能有64個成員。 mysql

相關文章
相關標籤/搜索