一、創建資料庫
創建並展示資料庫:
CREAT DATABASE `自訂義名稱`;
SHOW DATABASES;
實際案例:
CREAT DATABASE `student db`;
SHOW DATABASES;
刪除資料庫:
DROP `資料庫名稱`
屬性類別:
1.INT--整數
2.DECIMAL(X,Y)--浮點數,括弧內分別表示總共幾位跟小數點後有幾位。
3.VARCHAR(X)--字串,括弧內表示可輸入的位元數。
4.BLOB--圖片/影片/檔案
5.DATE--日期 YYYY-MM-DD
6.TIMESTAMP--日期與時間 YYYY-MM-DD HH-MM-SS
限制類別:
1.NOT NULL:此格不得空。
2.UNIQUE:此格唯一存在。
3.DEFAULT:此屬性有預設值。
4.AUTO_INCREMENT:往後可不用設置次格數字,自動+1,例如ID數字。
二、創建表格
創建表格:
USE `資料庫名稱`;
CREAT TABLE `表格名稱` (
`行資料名稱(一)` 屬性 PRIMARY KEY,
`行資料名稱(二)` 屬性
);
刪除表格:
DROP TABLE `表格名稱`;
顯示某資料庫裡的表格:
DESCRIBE `表格名稱`;
新增/刪減 行資料:
ALT TABLE `表格名稱` ADD `行資料名稱(三)` 屬性;
ALT TABLE `表格名稱` DROP COLUMN `行資料名稱(三)`;
實際案例:
USE `student db`;
CREAT TABLE `student`(
`student id` INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) UNIQUE,
`major`VARCHAR(20) DEFULT `歷史`
);
DESCRIBE `student`;
ALT TABLE `student` ADD `gpa` DECIMAL(3,2);
DESCRIBE `student`;
三、存入資料
INSTER INTO `標格名稱`(行項目1,行項目2,行項目3)
VALUES(value1,value2,value3);
INSTER INTO `student`(name,major,gpa)
VALUES(小美,中文,3.24);
插入資料沒有輸入ID是因為已經設定自動+1,而gpa設置也要注意是否符合(3,2)的規範
四、修改、刪除、取得資料
UPDATE `表格名稱`
SET 項目1 = 值, 項目2 =值 , ...
WHERE 條件;
UPDATE `student`
SET `name` = 'miss A', `major` ='理化' , ...
WHERE `name`='小美';
不論是條件或是修改的項目都可以有複數屬性
DELETE FROM `student` WHERE `name` = 'miss A';
SELECT * FROM `表格名稱`; 顯示全部屬性
SELECT `行項目1`, `行項目2` FROM `表格名稱`; 顯示行1與2的屬性
SELECT `行項目1`, `行項目2` FROM `表格名稱`
ORDER BY DESC/ASC; 遞減/增顯示
SELECT `行項目1`, `行項目2` FROM `表格名稱`
ORDER BY DESC/ASC
LIMIT 3; 遞減/增顯示前3個
SELECT * FROM `表格名稱`
WHERE `major` = '英文'; 只顯示主修為英文的人之全部屬性
取得資料也可加入AND/OR/IN作為條件篩選所要的資料
五、聚合函數、萬用字元
SELECT COUNT(*) FROM `student`;
SELECT MAX(`gpa`) FROM `student`;
SELECT MIN(`gpa`) FROM `student`;
SELECT AVG(`gpa`) FROM `student`;
SELECT SUM(`gpa`) FROM `student`;
SELECT `name` FROM `client`
WHERE `phone` LIKE '%355';
SELECT `client_id` FROM `client`
WHERE `name` LIKE '_艾_';
聚合函數:意義分別是取得學生人數、最高/最低/平均/加總成績。
萬用字元:%表示為多個字元、底線表示一個字元。意義分別代表挑選出電話末三碼為355的客戶/中間名為艾的客戶id。
六、子查詢
SELECT `name` FROM `employee`
WHERE `emp_id` = (
SELECT `emp_id` FROM `work_with`
WHERE `total_salse` = '50000');
意義:從銷售金額大於五萬的員工id,找出員工姓名。
子查詢就是將兩個取得資料的句子串起來。
七、聯集
SELECT `name` FROM `student` UNION SELECT `client_name` FROM `client`
聯集:取出學生姓名與客戶姓名。