1. 程式人生 > >基本SQL命令表命令

基本SQL命令表命令

表的管理

表的基本操作

  1. 建立表(別忘了選擇庫,指定字符集(預設和庫一樣))
    create table [if not exists] 表名(
    欄位名1 資料型別,
    欄位名2 資料型別,
    欄位名3 資料型別,
    ….
    欄位名n 資料型別
    )[character set utf8];
    [可選項]
  2. 檢視建立表的語句(字符集,儲存引擎)
    show create table 表名;
  3. 查看錶結構(多少欄位,各欄位的詳細屬性資訊等)
    desc 表名;
  4. 刪除表
    drop table 表名1, 表名2,…;

表的複製

  1. 複製選擇的內容 語法:
    create table 表名 select …from 表名 where 條件;
  2. 僅僅複製表結構:
    create table 表名 select … from 表名 where false;
    # 相當於只複製擡頭 採用 desc 檢視是否成功

表字段的操作

  1. 語法: alter table 表名 ….;
  2. 新增欄位(add):
    alter table 表名 add 欄位名 資料型別;
    (預設新增在最後欄位)
    alter table 表名 add 欄位名 資料型別 first;
    (新增在第一欄位)
    alter table 表名 add 欄位名 資料型別 after 欄位名2;
    (新增在欄位名2的後邊)
  3. 刪除欄位(drop):
    alter table 表名 drop 欄位名;
  4. 修改欄位資料型別(modify):
    alter table 表名 modify 欄位名 新資料型別;
    修改會受到原有資料限制,如果原有資料不能滿足新的資料型別,修改不會成功,會報錯,超出範圍
    out of range
  5. 修改表的名字(rename):
    alter table 表名 rename 新表名;
  6. 修改欄位名(change):
    alter table 表名 change 原欄位名 新欄位名 新資料型別;

表記錄的操作 增刪改查

  1. 插入(insert)
    1. insert into 表名 values(值1), (值2),(.)..
      值1 是 一整條記錄,多個欄位值,按順序,按個數寫好
    2. insert into 表名 (欄位名1, 欄位名2,…) values(值1),(值2)…; 剩餘欄位自動插入預設值
  2. 查詢(select)
    1. select * from 表名 [where 條件];
      查詢記錄(滿足條件的)所有記錄
    2. select 欄位1,欄位2… from 表名 [where 條件];
      查詢(滿足條件的)欄位記錄
  3. 刪除表記錄(delete)
    1. delete from 表名 where 條件;
      注意: 刪除條件, 一定要加刪除條件,否則會全部刪除
  4. 更新表記錄(update)
    1. update 表名 set 欄位名=值1, 欄位2=值2 where 條件;
      注意: 條件, 一定要加條件,否則會全部更改

資料匯入(匯入表記錄)

  1. 作用: 將檔案系統中的內容匯入到資料庫中
  2. 語法格式:
    load data infile “路徑+檔名”
    into table 表名
    fields terminated by “分隔符” # 每一個單元格與欄位用分隔符分隔
    lines terminated by “\n”; # 遇到換行符開始下一條記錄

示例:將×××.csv匯入到資料庫中

  1. 先在資料庫中建立對應的表
    create table score(
    欄位名 資料型別,

    )character set utf8;
  2. 執行資料匯入
  3. 檢視 將檔案放入mysql使用者的 搜尋路徑中
    show variables like “secure_file_priv”;
    # /var/lib/mysql-files/
  4. 將檔案拷貝到搜尋路徑中(採用tab判斷路徑正確性)
    sudo cp ~/×××.csv /var/lib/mysql-files/
    sudo ls /var/lib/mysql-files/ 檢視一下有沒有複製成功
  5. 執行資料匯入語句
    load data infile “/var/lib/mysql-files/×××.csv”
    into table score
    fields terminated by “,”
    lines terminated by “\n”;

資料匯出(匯出表記錄)

  1. 把資料庫表的記錄匯出到系統檔案裡
  2. 匯出語法:
    select …from 表名 where 條件
    into outfile “路徑+檔名”
    fields terminated by ‘分隔符’
    lines terminated by ‘\n’;
  3. 步驟:
    1. 檢視搜尋路徑:
      show variables like “%secure%”
      # /var/lib/mysql-files/
    2. 執行資料匯出語句:
      select 欄位1, 欄位2, 欄位3 from 庫名.庫內的表名
      into outfile “/var/lib/mysql-files/×××.csv”
      fields terminated by ‘,’
      lines terminated by ‘\n’;
      # 空值 變為 \N
      # 空字串 變為 空

檢視及更改檔案的許可權

  1. ls -l 檔名 # 檢視檔案詳細資訊,可以檢視檔案許可權
    - rw- r– r– 1 root root 142 8月 31 16:28 ×××.csv
    符號:許可權:計數
    r: 可讀 4
    w: 可寫 2
    x: 可執行 1
    例:chmod 555 檔名 更改此檔案均為讀和執行許可權
  2. 三組許可權分別所屬
    u: 使用者/所有者
    g: 所屬組,同組其他使用者
    o: 其他組其他人

    a: 所有人

  3. 新增許可權: +r +w +x +rw …
    刪除許可權: -r -w -x -rw …
    chmod u +w ×××.txt 給檔案的所有者 新增寫許可權