基本SQL命令表命令
阿新 • • 發佈:2019-01-10
表的管理
表的基本操作
- 建立表(別忘了選擇庫,指定字符集(預設和庫一樣))
create table [if not exists] 表名(
欄位名1 資料型別,
欄位名2 資料型別,
欄位名3 資料型別,
….
欄位名n 資料型別
)[character set utf8];
[可選項] - 檢視建立表的語句(字符集,儲存引擎)
show create table 表名; - 查看錶結構(多少欄位,各欄位的詳細屬性資訊等)
desc 表名; - 刪除表
drop table 表名1, 表名2,…;
表的複製
- 複製選擇的內容 語法:
create table 表名 select …from 表名 where 條件; - 僅僅複製表結構:
create table 表名 select … from 表名 where false;
# 相當於只複製擡頭 採用 desc 檢視是否成功
表字段的操作
- 語法: alter table 表名 ….;
- 新增欄位(add):
alter table 表名 add 欄位名 資料型別;
(預設新增在最後欄位)
alter table 表名 add 欄位名 資料型別 first;
(新增在第一欄位)
alter table 表名 add 欄位名 資料型別 after 欄位名2;
(新增在欄位名2的後邊) - 刪除欄位(drop):
alter table 表名 drop 欄位名; - 修改欄位資料型別(modify):
alter table 表名 modify 欄位名 新資料型別;
修改會受到原有資料限制,如果原有資料不能滿足新的資料型別,修改不會成功,會報錯,超出範圍
out of range - 修改表的名字(rename):
alter table 表名 rename 新表名; - 修改欄位名(change):
alter table 表名 change 原欄位名 新欄位名 新資料型別;
表記錄的操作 增刪改查
- 插入(insert)
- insert into 表名 values(值1), (值2),(.)..
值1 是 一整條記錄,多個欄位值,按順序,按個數寫好 - insert into 表名 (欄位名1, 欄位名2,…) values(值1),(值2)…; 剩餘欄位自動插入預設值
- insert into 表名 values(值1), (值2),(.)..
- 查詢(select)
- select * from 表名 [where 條件];
查詢記錄(滿足條件的)所有記錄 - select 欄位1,欄位2… from 表名 [where 條件];
查詢(滿足條件的)欄位記錄
- select * from 表名 [where 條件];
- 刪除表記錄(delete)
- delete from 表名 where 條件;
注意: 刪除條件, 一定要加刪除條件,否則會全部刪除
- delete from 表名 where 條件;
- 更新表記錄(update)
- update 表名 set 欄位名=值1, 欄位2=值2 where 條件;
注意: 條件, 一定要加條件,否則會全部更改
- update 表名 set 欄位名=值1, 欄位2=值2 where 條件;
資料匯入(匯入表記錄)
- 作用: 將檔案系統中的內容匯入到資料庫中
- 語法格式:
load data infile “路徑+檔名”
into table 表名
fields terminated by “分隔符” # 每一個單元格與欄位用分隔符分隔
lines terminated by “\n”; # 遇到換行符開始下一條記錄
示例:將×××.csv匯入到資料庫中
- 先在資料庫中建立對應的表
create table score(
欄位名 資料型別,
…
)character set utf8; - 執行資料匯入
- 檢視 將檔案放入mysql使用者的 搜尋路徑中
show variables like “secure_file_priv”;
# /var/lib/mysql-files/ - 將檔案拷貝到搜尋路徑中(採用tab判斷路徑正確性)
sudo cp ~/×××.csv /var/lib/mysql-files/
sudo ls /var/lib/mysql-files/ 檢視一下有沒有複製成功 - 執行資料匯入語句
load data infile “/var/lib/mysql-files/×××.csv”
into table score
fields terminated by “,”
lines terminated by “\n”;
資料匯出(匯出表記錄)
- 把資料庫表的記錄匯出到系統檔案裡
- 匯出語法:
select …from 表名 where 條件
into outfile “路徑+檔名”
fields terminated by ‘分隔符’
lines terminated by ‘\n’; - 步驟:
- 檢視搜尋路徑:
show variables like “%secure%”
# /var/lib/mysql-files/ - 執行資料匯出語句:
select 欄位1, 欄位2, 欄位3 from 庫名.庫內的表名
into outfile “/var/lib/mysql-files/×××.csv”
fields terminated by ‘,’
lines terminated by ‘\n’;
# 空值 變為 \N
# 空字串 變為 空
- 檢視搜尋路徑:
檢視及更改檔案的許可權
- ls -l 檔名 # 檢視檔案詳細資訊,可以檢視檔案許可權
- rw- r– r– 1 root root 142 8月 31 16:28 ×××.csv
符號:許可權:計數
r: 可讀 4
w: 可寫 2
x: 可執行 1
例:chmod 555 檔名 更改此檔案均為讀和執行許可權 三組許可權分別所屬
u: 使用者/所有者
g: 所屬組,同組其他使用者
o: 其他組其他人a: 所有人
- 新增許可權: +r +w +x +rw …
刪除許可權: -r -w -x -rw …
chmod u +w ×××.txt 給檔案的所有者 新增寫許可權