{%hackmd BJrTq20hE %} ###### tags: `MySQL` <style> .blue{ color:#08f; } .red{ color:red; } </style> # MySQL學習筆記 ==MySQL== 此為阿德的MySQL學習筆記,用於記錄學習過程及備忘,如有錯誤歡迎指正或討論。 ## 前言 SQL的全名是(Structured Query Language)翻譯為"結構化查詢語言",是資料庫的標準數據查詢語言。 --- ## SQL基本語法 在SQL語法中,基本上語句不管大小寫都可以執行,但習慣上,最好將關鍵字大寫,較長的語句 拆分成多行,以上習慣能讓撰寫出來的程式碼更方便閱讀。 ### 資料庫 DATABASE #### 基本操作 ##### 建立資料庫 **<span class="blue">CREATE DATABASE</span> \`資料庫名稱\` ;** ##### 顯示所有資料庫 **<span class="blue">SHOW DATABASES</span>;** ##### 使用資料庫 **<span class="blue">USE</span> \`資料庫名稱\`;** ##### 刪除資料庫 **<span class="blue">DROP DATABASE</span> \`資料庫名稱\` ;** --- ### 表格 TABLE #### 建立表格欄位 **<span class="blue">CREATE TABLE</span> \`表格名稱\`( \`欄位名稱\` 資料形態 參數 , \`欄位名稱\` 資料形態 參數 );** EX: ``` CREATE TABLE `article`( `id` INT PRIMARY KEY AUTO_INCREMENT, `title` VARCHAR(30), `text_content` TEXT, `create_time` DATETIME ); ``` #### 顯示表格欄位資訊 **<span class="blue">DESCRIBE</span> \`表格名稱\`;** #### 新增表格欄位 **<span class="blue">ALTER TABLE</span> \`表格名稱\` <span class="blue">ADD COLUMN</span> \`新欄位名稱\` 資料形態 參數 ;** #### 修改表格欄位 **<span class="blue">ALTER TABLE</span> \`表格名稱\` <span class="blue">CHANGE COLUMN</span> \`原欄位名稱\` \`新欄位名稱\` 資料形態 參數 ;** #### 刪除表格欄位 **<span class="blue">ALTER TABLE</span> \`表格名稱\` <span class="blue">DROP COLUMN</span> \`原欄位名稱\`;** #### 刪除表格 **<span class="blue">DROP TABLE</span> \`表格名稱\`;** #### 查詢表格資料SELECT(撈取) 全部 **<span class="blue">SELECT</span> * <span class="blue">FROM</span> \`表格名稱\`;** 單欄 **<span class="blue">SELECT</span> \`欄位名稱\` <span class="blue">FROM</span> \`表格名稱\`;** 多欄 **<span class="blue">SELECT</span> \`欄位1\` ,\`欄位2\` <span class="blue">FROM</span> \`表格名稱\`;** ##### **WHERE條件式** **<span class="blue">SELECT</span> * <span class="blue">FROM</span> \`表格名稱\ <span class="blue">WHERE</span> \`欄位1\` = 值 ;** EX: ``` SELECT * FROM \`student\` WHERE \`id\` = 1 AND \`SCORE\` > 10 ; ``` ##### **ORDER BY 排序** **<span class="blue">SELECT</span> * <span class="blue">FROM</span> \`表格名稱\` <span class="blue">ORDER BY</span> \`id\` <span class="blue">ACE</span>;**(預設) ACE:遞增排列 DESC:遞減排列 ##### **LIMIT 資料筆數限制** 限制回傳資料筆數 **<span class="blue">SELECT</span> * <span class="blue">FROM</span> \`表格名稱\` <span class="blue">LIMIT</span> 數量;** 限制從 數字1 後一筆開始回傳 數字2 筆資料 **<span class="blue">SELECT</span> * <span class="blue">FROM</span> \`表格名稱\` <span class="blue">LIMIT</span> 數字1,數字2;** #### 新增表格資料 **<span class="blue">INSERT INTO</span> \`表格名稱\` <span class="blue">VALUES</span> (\`資料1\,\`資料2\,\`資料3\...);** 也可新增指定欄位 **<span class="blue">INSERT INTO</span> \`表格名稱\`(\`欄位1\,\`欄位2\) <span class="blue">VALUES</span> (\`資料1\,\`資料2\);** #### 修改表格資料 **<span class="blue">UPDATE</span> \`表格名稱\` <span class="blue">SET</span> \`欄位1\`= 新值1,\`欄位2\`= 新值2 <span class="blue">WHERE</span> 條件;** #### 刪除表格資料 **<span class="blue">DELETE FROM</span> \`表格名稱\` <span class="blue">WHERE</span> 條件;** #### 刪除表格內所有資料 **<span class="blue">TRUNCATE</span> \`表格名稱\`;** 只清除資料,保留結構和欄位。 --- ## 欄位資料形態 附上W3schools完整的資料形態 [W3schools-MySQL](https://www.w3schools.com/mySQl/mysql_datatypes.asp) MySQL提供的資料形態大致分為三種,數值、字串、日期時間。 以下舉例常用的資料形態 ### 數值 | 資料形態 | 說明 | 範圍 | |:--------:|:----:|:----:| | INT | 整數。 |無號:0~4294967295 , 有號:-2147483648\~2147483648 | | TINYINT | 最小整數。 | 無號:0\~255,有號:-128\~127 | | SMALLINT | 短整數。 | 無號:0\~65535,有號:-32768\~32767 | | MEDIUMINT | 中型整數。 | 無號:0\~16777215,無號:-8388608\~8388607 | | BIGINT | 長整數。 | 無號:0\~1844744073709551615,有號:-9223372036854775808\~9223372036854775807 | | FLOAT(M,D) | 單精確浮點數,M為整數的位數,D為小數位數。 | ±3.402823466E+38 | | DOUBLE(M,D) | 雙精度浮點數,用途和FLOAT類似,但儲存空間是兩倍。 | ±1.7976931348623157E+308 | | DECIMAL(M,D) | M為整數的位數,D為小數位數。 | M的範圍:1\~65,D的範圍:0\~65 | ### 字串 | 資料形態 | 說明 | 範圍 | |:----------:|:----------------------------------------------:|:---------------------------:| | CHAR(M) | 固定長度字串,儲存長度不足時右邊會自動補空白。 | M=1~255 | | VARCHAR(M) | 變動長度字串。 | 65,535 ,或255( ver.<5.0.3) | | TINYTEXT | 短字串 | 255 | | TEXT | 字串 | 65,535 (65KB) | | MEDIUMTEXT | 中字串 | 16,777,215(16MB) | | LONGTEXT | 長字串 | 4GB | ### 時間 | 資料形態 | 說明 | 範圍 | |:--------:|:----:|:----:| | DATE |日期,格式 yyyy-mm-dd|1000-01-01~9999-12-31| | TIME |時間,格式 hh: mm: ss|00:00:00~23:59:59| | DATETIME |日期+時間,格式 yyyy-mm-dd hh:mm:ss|| | TIMESTAMP |時間戳記,格式yyyymmddhhmmss ||
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up