MySQL怎么给表简明_科学网—mySQL简明入门 - 张金龙的博文
詳情請參考http://downloads.mysql.com/docs/mysql-tutorial-excerpt-5.1-en.pdfmysql-u root-p回車密碼12345Ctrl+D退出查看版本SELECTVERSION(),CURRENT_DATE;查看數據庫SHOW DATABASES;創建數據庫CREATEDATABASE menagerie;使用數據庫USE menagerie創建表格CREATE TABLEpet(nameVARCHAR(20),ownerVARCHAR(20),speciesVARCHAR(20),sexCHAR(1),birthDATE,deathDATE);顯示數據庫中的表格的名稱SHOW TABLES;顯示表格各列的屬性DESCRIBEpet;從本地讀取文件LOADDATA LOCALINFILE'/path/pet.txt'INTO TABLEpet;注意,如果是Windows,要使用LINES TERMINATEDBY'rn';在表格中插入一行INSERT INTOpetVALUES('Puffball','Diane','hamster','f','1999-03-30',NULL);INSERT INTOpetVALUES('Fluffy',' Harold ','cat ','f ','1993-02-04',NULL);INSERT INTOpetVALUES('Claws ','Gwen ','cat ','m ','1994-03-17',NULL);INSERT INTOpetVALUES('Buffy ','Harold ','dog ','f ','1989-05-13',NULL);INSERT INTOpetVALUES('Fang ','Benny',' dog ','m ','1990-08-27',NULL);INSERT INTOpetVALUES('Bowser ','Diane ','dog ','m ','1979-08-31','1995-07-29');INSERT INTOpetVALUES('Chirpy',' Gwen',' bird',' f',' 1998-09-11',NULL)INSERT INTOpetVALUES('Whistler',' Gwen',' bird',' NULL','1997-12-09',NULL)INSERT INTOpetVALUES('Slim',' Benny',' snake',' m ','1996-04-29',NULL)從數據表中獲取數據SELECT的基本語句格式:SELECTwhat_to_selectFROMwhich_tableWHEREconditions_to_satisfy;### 查詢全部數據SELECT*FROMpet;### 修改部分數據UPDATEpetSETbirth='1989-08-31'WHEREname='Bowser';### 查詢部分數據SELECT*FROMpetWHEREname='Bowser';### 比較運算SELECT*FROMpetWHEREbirth>='1998-1-1';### 邏輯運算ANDSELECT*FROMpetWHEREspecies='dog'ANDsex='f';### 邏輯運算ORSELECT*FROMpetWHEREspecies='snake'ORspecies='bird';### 運算的優先級SELECT*FROMpetWHERE(species='cat'ANDsex='m')OR(species='dog'ANDsex='f');### 選擇特定的列SELECTname,birthFROMpet;SELECTownerFROMpet;### 去重復SELECT DISTINCTownerFROMpet;###SELECT的基本組合SELECTname,species,birthFROMpetWHEREspecies='dog'ORspecies='cat';### 排序,默認是 由小到大排序SELECTname,birthFROMpetORDER BYbirth;### 由大到小排序SELECTname,birthFROMpetORDER BYbirthDESC;### 多個列排序SELECTname,species,birthFROMpetORDER BYspecies,birthDESC;### 當前日期CURDATE()### 兩個日期相隔時間TIMESTAMPDIFF()### 形成新的一列ASage(見后面的例子)### 日期計算SELECTname,birth,CURDATE(),TIMESTAMPDIFF(YEAR,birth,CURDATE())ASageFROMpet;### 加入新一列的表格再排序,按照nameSELECTname,birth,CURDATE(),TIMESTAMPDIFF(YEAR,birth,CURDATE())ASageFROMpetORDER BYname;### 加入新一列的表格再排序,按照ageSELECTname,birth,CURDATE(),TIMESTAMPDIFF(YEAR,birth,CURDATE())ASageFROMpetORDER BYage;### 判斷is not nullSELECTname,birth,death,TIMESTAMPDIFF(YEAR,birth,death)ASageFROMpetWHEREdeathIS NOT NULL ORDER BYage;### 時間計算YEAR(),MONTH(),DAYOFMONTH()### 哪個月份出生SELECTname,birth,MONTH(birth)FROMpet;### 按照運算出的結果查找SELECTname,birthFROMpetWHERE MONTH(birth) =5;### 十二月份等的處理SELECTname,birthFROMpetWHERE MONTH(birth) =MOD(MONTH(CURDATE()),12) +1;### 對NULL的判斷SELECT1IS NULL,1IS NOT NULL;#### 匹配與正則表達式,尋找name中以b開頭的SELECT*FROMpetWHEREnameLIKE'b%';#### 尋找name中以fy結尾的SELECT*FROMpetWHEREnameLIKE'%fy';#### 尋找名字中含有w的SELECT*FROMpetWHEREnameLIKE'%w%';#### 尋找名字只包含五個字母的,用五個_SELECT*FROMpetWHEREnameLIKE'_____';#### 正則表達式的關鍵字REGEXP and NOT REGEXPoperators(orRLIKEand NOTRLIKE)#### 正則表達式.任意單個字符[a-z]a到z的任意字符[0-9]0到9的任意字符“*” 之前,放任何字符,表示的是任意重復次數的該字符.*表示任意重復次數的任意字符^開始$ 結束### 正則表達式舉例### 以b開始的人名(不區分大小寫)SELECT*FROMpetWHEREnameREGEXP'^b';### 匹配大小寫BINARY,名字以小寫的b開頭的SELECT*FROMpetWHEREnameREGEXP BINARY'^b';### 名字以fy結尾的SELECT*FROMpetWHEREnameREGEXP'fy$';### 名字中含有w的SELECT*FROMpetWHEREnameREGEXP'w';### 名字僅由五個字母組成SELECT*FROMpetWHEREnameREGEXP'^.....$';或者SELECT*FROMpetWHEREnameREGEXP'^.{5}$';### 統計表格的行數SELECTCOUNT(*)FROMpet;###GROUP BY,針對每一個水平進行計算SELECTowner,COUNT(*)FROMpetGROUP BYowner;SELECTspecies,COUNT(*)FROMpetGROUP BYspecies;SELECTsex,COUNT(*)FROMpetGROUP BYsex;### 分組可以同時考慮幾個因素SELECTspecies,sex,COUNT(*)FROMpetGROUP BYspecies,sex;### 進一步篩選,只要dog或者cat的部分記錄SELECTspecies,sex,COUNT(*)FROMpetWHEREspecies='dog'ORspecies='cat'GROUP BYspecies,sex;### 只保留已知性別的,按照species和sex統計SELECTspecies,sex,COUNT(*)FROMpetWHEREsexIS NOT NULL GROUP BYspecies,sex;注意:select后面的列,如果使用了count()函數,則后面的group by后面,必須跟上相同的列.否則mysql會報錯.####### 使用多個表格#### 創建一個新的表CREATE TABLEevent(nameVARCHAR(20),date DATE,type VARCHAR(15),remarkVARCHAR(255));#### 載入數據LOADDATAINFILE'/home/jinlong/programming/mysql/event.txt'INTO TABLEevent;#### 同時查詢兩個表格,注意應該先將兩個表格用INNER JOIN合并.ON表格合并的憑借 對于pet表格來說,是name,所以是pet.name對于event表格來說,也是name,所以是event.name而篩選的條件,是event表格中的type為'litter'SELECTpet.name,(YEAR(date)-YEAR(birth)) - (RIGHT(date,5)SELECTp1.name,p1.sex,p2.name,p2.sex,p1.speciesFROMpetASp1INNER JOINpetASp2ONp1.species=p2.speciesANDp1.sex='f'ANDp2.sex='m';#### 查詢數據庫的名稱SELECTDATABASE();#### 顯示表名SHOW TABLES;#### 獲取表格的結構DESCRIBEpet;####MYSQL的批處理 從terminal運行UNIX平臺mysqlmysql.out#### 從terminal運行 在批處理模式下顯示輸出mysql-t#### 從terminal運行 在批處理模式下,保存輸入的命令mysql-vvv#### 在mySQL中運行腳本文件source filename;或.filename;####################################################################### 創建一個商品價目表,并基于該表做各種查詢show databases;createdatabase test;use test;CREATE TABLEshop(articleINT(4)UNSIGNED ZEROFILLDEFAULT'0000'NOT NULL,dealerCHAR(20)DEFAULT''NOT NULL,priceDOUBLE(16,2)DEFAULT'0.00'NOT NULL,PRIMARY KEY(article,dealer));INSERT INTOshopVALUES(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69),(3,'D',1.25),(4,'D',19.95);SELECT*FROMshop;#### 查找最貴商品SELECTMAX(article)ASarticleFROMshop;#### 查找最高價對應的貨品,供應商SELECTarticle,dealer,priceFROMshopWHEREprice=(SELECTMAX(price)FROMshop);#### 每一組的最貴商品SELECTarticle,MAX(price)ASpriceFROMshopGROUP BYarticle;#### 每組最貴商品所在的行SELECTarticle,dealer,priceFROMshop s1WHEREprice=(SELECTMAX(s2.price)FROMshop s2WHEREs1.article=s2.article);#### 臨時變量SELECT@min_price:=MIN(price),@max_price:=MAX(price)FROMshop;SELECT*FROMshopWHEREprice=@min_priceORprice=@max_price;##########################################KEYSCREATE TABLEperson(idSMALLINTUNSIGNEDNOT NULLAUTO_INCREMENT,nameCHAR(60)NOT NULL,PRIMARY KEY(id));CREATE TABLEshirt(idSMALLINTUNSIGNEDNOT NULLAUTO_INCREMENT,style ENUM('t-shirt','polo','dress')NOT NULL,color ENUM('red','blue','orange','white','black')NOT NULL,ownerSMALLINTUNSIGNEDNOT NULL REFERENCESperson(id),PRIMARY KEY(id));INSERT INTOpersonVALUES(NULL,'Antonio Paz');SELECT@last:=LAST_INSERT_ID();INSERT INTOshirtVALUES(NULL,'polo','blue',@last),(NULL,'dress','white',@last),(NULL,'t-shirt','blue',@last);INSERT INTOpersonVALUES(NULL,'Lilliana Angelovska');SELECT@last:=LAST_INSERT_ID();INSERT INTOshirtVALUES(NULL,'dress','orange',@last),(NULL,'polo','red',@last),(NULL,'dress','blue',@last),(NULL,'t-shirt','white',@last);SELECT*FROMperson;###### 查詢keysSELECTfield1_index,field2_indexFROMtest_tableWHEREfield1_index='1'ORfield2_index='1'### 查詢每個月的訪問量CREATE TABLEt1(year YEAR(4),month INT(2)UNSIGNED ZEROFILL,day INT(2)UNSIGNED ZEROFILL);INSERT INTOt1VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),(2000,2,23),(2000,2,23);SELECT year,month,BIT_COUNT(BIT_OR(1<
總結
以上是生活随笔為你收集整理的MySQL怎么给表简明_科学网—mySQL简明入门 - 张金龙的博文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sharepoint中一些gridvie
- 下一篇: 浅谈Python和VC中的编码问题(转)