1.建立資料庫
create database 資料庫名稱;
建立資料庫並設定編碼
create database 資料庫名稱 default character set 編碼方式;
2.列出所有資料庫
show databases;
3.刪除資料庫
drop database 資料庫名稱;
4.使用資料庫
use database 資料庫名稱;
5.建立資料表
create table 資料表名稱(
sn integer auto_increment primary key, //建立自動增量主鍵
name char(20) NOT NULL DEFAULT ' ',
mail char(50) NOT NULL auto_increment,
home char(50),
messages char(50),
primary key(name),//建立主鍵
foreign key(自己的欄位) references 要對應到的資料表名稱(欄位));//建立外鍵
**auto_increment 自動+1
**default ' ' 預設為空白
**NOT NULL 不使用NULL
6.列出資料表欄位資訊
a. describe 資料表名稱;
b. explain 資料表名稱;
7.刪除資料表
drop table 資料表名稱;
8.新增資料表欄位
alter table 資料表名稱 add column 欄位名稱 資料型態;
9.刪除資料表欄位
alter table 資料表名稱 drop column 欄位名稱;
10.修改資料表欄位
alter table 資料表名稱 change column 原來欄位名稱 新欄位名稱 資料型態;
11.允許資料庫使用中文
set names utf8;
set names big5;
12.清空資料表
truncate table 資料表名稱;
13.新增三筆資料
insert into 資料表名稱 values
(欄位1,欄位2,欄位3),
(欄位1,欄位2,欄位3),
(欄位1,欄位2,欄位3);
14.顯示資料表全體資料
select * from 資料表名稱;
可以另外為「SELECT」後面查詢的資料取一個自己想要的名稱,這個作法稱為「別名(alias name)」
*取欄位別名時,若欄位別名包含 空白字元 或使用SQL保留字 做命名一定要加上 '?? ??'
15.查詢單一欄位資料
select 欄位名 from 資料表名稱;
16.查詢多欄位資料
select 欄位名,欄位名 from 資料表名稱;
17.查詢欄位資料的唯一值
select distince 欄位名 from 資料表名稱;
18.條件式查詢
select * from 資料表名稱 where 條件式
19.查詢語法需要依照順序
依序為 SELECT-->FROM-->WHERE-->GROUP BY-->HAVING-->ORDER BY-->LIMIT
SELECT------想查詢的欄位
FROM--------想查詢的表格
WHERE-------查詢條件
GROUP BY----分組設定
HAVING------分組條件
ORDER BY----排序設定
LIMIT-------限制設定
*-----------表示所有欄位
如果目前使用中的資料庫是aaa,若不先用「USE cmdev」敘述切換使用中的資料庫
可以使用下列的語法查詢「cmdev」資料庫中的「emp」表格:
SELECT * FROM cmdev.emp
a.select * from aaa; 沒使用WHERE會回傳所有紀錄
b.select * from aaa where Countrycode = 'TWN'; 使用WHERE設定回傳台灣的紀錄
c.select * from aaa where Population <800; 回傳人口數小於800的紀錄
d.select * from aaa where Population <= 800; 回傳人口數小於等於800的紀錄
20.避開 mysql-client 的編碼問題可以使用此指令強制使用utf8連線
$ mysql -h 127.0.0.1 -u root -p --default-character-set=utf8
21.查詢當前環境編碼資訊
$ mysql show variables like "char%";
設定--default-character-set=utf8影響的僅有character_set_client、
character_set_connection和character_set_results
22.nvarchar, varchar, nchar, char的抉擇
(1) var因為額外儲存地址,讀取時會先去抓資料,會比非var來的略慢效能:(nvarchar, varchar) < (nchar, char)
(2) n因為1字2Byte,所以正常會花費2倍儲存空間儲存體:(nvarchar, nchar) >> (varchar, char)
確認一定長度,且只會有英數字:char
確認一定長度,且可能會用非英數以外的字元:nchar
長度可變動,且只會有英數字:varchar
長度可變動,且可能會用非英數以外的字元:nvarchar
23.修改 UPDATE
UPDATE 資料表名稱 set 欄位名稱=? where id=?";