mysql經常使用基礎知識

經常使用的數據類型

int:整型sql

varchar(n):可變長度的char數據庫

datetime:時間windows

float(m,d): 共有m位數,少數點後有d位函數

test:最多能夠存65535個數url

 

數據庫操做(CRUD)

  C:create,R:read,U:update,D:deletespa

具體操做:3d

  INSERT INTO table_name(列1,列2) VALUES(值1,值2)code

  SELECT */列名稱 FROM 表名稱server

  UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值blog

  DELET FROM 表名稱 WHERE 列名稱 = 值(實際上公司的開發中,數據庫歷來不刪除DELETE數據,而是用狀態字段表示用戶採起的措施)。

不區分大小寫

  在windows中全部指令不區分大小寫

     如圖所示:

  

  

  create==CREate且aa==AA

 

不建議用*查詢全部字段

  在workbench中用指令操做數據庫:

1 insert into first_db.user(name, password) values('yulang', '123456');
2 SELECT * FROM first_db.user;

  在實際工做中不要用*,由於數據庫有不少列,讀取全部列須要佔用很大一部分網速。

  結果顯示:

  

 

select語句進階

  以下:

1 //選出某幾列
2 SELECT {COLA, COLB, *} FROM {TABLE}
3 //只有知足CONDITION條件才顯示
4 WHERE {CONDITION}
5 //每一行按照某列的大小升序,或降序(desc)排列
6 ORDER BY {COL} DESC
7 //取出必定數目的行,OFF表示偏移量,COUNT表示取出的行數
8 LIMIT {OFF},{COUNT}

 擴展

  condition表達式能夠包含一些運算符,例如:

  1.>, <, ==等比較運算符。

  2.in。例子:id in (1, 5, 6) 表示id爲1或者5或者6。

  3. and等邏輯運算符。

  4.between。例子:id between 2 and 5;表示在id在[2,5]中。 

  代碼:

 1 #insert into first_db.user(id,name, password) values(1,'a1', 'b1');
 2 #insert into first_db.user(id,name, password) values(2,'a2', 'b2');
 3 #insert into first_db.user(id,name, password) values(3,'a3', 'b3');
 4 #insert into first_db.user(id,name, password) values(4,'a4', 'b4');
 5 #insert into first_db.user(id,name, password) values(5,'a5', 'b5');
 6 #insert into first_db.user(id,name, password) values(6,'a6', 'b6');
 7 #SELECT * FROM first_db.user;
 8 SELECT * FROM first_db.user where id > 2;
 9 SELECT * FROM first_db.user where id in (3, 4, 5, 6);
10 SELECT * FROM first_db.user where id > 2 and id <= 6;
11 SELECT * FROM first_db.user where id between 3 and 6;

  它們的結果都同樣:

  

  還能夠使用函數:

  例如:count()等函數。

SELECT count(id) FROM first_db.user where id > 2;

  結果顯示:

  

  

  大綜合:

SELECT * FROM first_db.user where id between 1 and 6 order by id desc limit 2, 3;

  按id降序查詢[1,6]的記錄,而且偏移量爲2,取3條記錄。

  顯示結果:

  

Mysql中遇到的坑

1.把反引號` `誤認爲時單引號' '

  例如:

  

  而我寫成了:

 1 DROP TABLE IF EXISTS 'user';
 2 CREATE TABLE 'user' (
 3     'id' int(11) unsigned NOT NULL AUTO_INCREMENT,
 4     'name' varchar(64) NOT NULL DEFAULT ' ',
 5     'password' varchar(128) NOT NULL DEFAULT ' ',
 6     'salt' varchar(32) NOT NULL DEFAULT ' ',
 7     'head_url' varchar(256) NOT NULL DEFAULT ' ',
 8     PRIMARY KEY ('id'),
 9     UNIQUE KEY 'name' ('name')
10 )    ENGINE=InnoDB DEFAULT CHARSET=utf8;

  報錯:16:30:06 DROP TABLE IF EXISTS 'user' Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user'' at line 1 0.000 sec各類查資料,結果都不能解釋,最後才知道原來這是反引號!!!

  反引號的做用:當有些字段的名字跟關鍵字的名字相同,用反引號能夠避免發生錯誤。

   修改後:

 1 DROP TABLE IF EXISTS `user`;
 2 CREATE TABLE `user` (
 3     `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 4     `name` varchar(64) NOT NULL DEFAULT ' ',
 5     `password` varchar(128) NOT NULL DEFAULT ' ',
 6     `salt` varchar(32) NOT NULL DEFAULT ' ',
 7     `head_url` varchar(256) NOT NULL DEFAULT ' ',
 8     PRIMARY KEY (`id`),
 9     UNIQUE KEY `name` (`name`)
10 )    ENGINE=InnoDB DEFAULT CHARSET=utf8;

  使用腳本後,能夠使用右鍵數據庫Refresh All,參看數據庫的修改。

相關文章
相關標籤/搜索