Java基礎知識回顧 -SQL

Jesse J發表於2020-12-06

1、什麼是SQL

SQL是指結構化組織語言(Structured Query Language),可以實現對資料庫進行【增刪改查】的操作。
【CRUD】
create:建立 read:檢索 update:更新 delete:刪除

2、SQL方言

SQL是一套標準,所有的資料庫廠商都實現了此標準;也就都可以實現CRUD操作。
只不過各自廠商在此標準上增加了特有的語句,這部分內容我們稱為方言。
如:mysql:註釋 # 是其特有的

3、書寫規範

  1. sql語句,可以單行或多行書寫,最後以分號結尾

  2. 在windows環境下,mysql不區分大小寫,將關鍵字大寫,普通欄位小寫,多個單詞之間以下劃線分割==【欄位USER_ID這樣?】==

  3. 註釋
    單行
    – sql標準註釋
    # mysql特有的註釋
    多行
    /* 多行註釋 */

4、SQL分類

  1. DDL(Data Definition Language)資料定義語言
    用來定義資料庫物件:資料庫,表,列等。關鍵字:create,drop,alter等

  2. DML(Data Manipulation Language)資料操作語言
    用來對資料庫中表的資料進行增刪改。關鍵字:insert,delete, update等

  3. DQL(Data Query Language) 資料查詢語言
    用來查詢資料庫中表的記錄(資料)。關鍵字:select, where等

  4. DCL(Data Control Language)資料控制語言
    用來定義資料庫的訪問許可權和安全級別,及建立使用者。關鍵字:grant,revoke等

  5. TCL(Transaction Control Language) 事務控制語言
    用於控制資料庫的事務操作,關鍵字; commit,savepoint,rollback等

4.1 DDL對資料庫

C:建立

  1. 直接建立
    語法:
    create database 資料庫名;

  2. 先判斷,若不存在建立資料庫
    語法:
    create database if not exists 資料庫名;

  3. 建立資料庫並指定字符集
    語法:
    create database 資料庫名 character set 編碼;

R:查詢

  1. 查詢所有資料庫
    語法:
    show databases;

  2. 檢視建庫語句
    語法:
    show create database 資料庫名;

U:修改

  1. 修改資料庫字符集
    語法:
    alter database 資料庫名 character set 編碼;

D:刪除

  1. 直接刪除資料庫
    語法:
    drop database 資料庫名;

  2. 先判斷,若存在就去刪除
    語法:
    drop database if exists 資料庫名;

進入指定的資料庫內

  1. 檢視當前所在庫的位置
    語法:
    select database();

  2. 進入到指定庫內
    語法:
    use 資料庫;

4.2 DDL對錶

C:建立

  1. 建立表
    語法:
    create table 表名(
    列名(欄位名) 資料型別,
    列名(欄位名) 資料型別,

    );

  2. 常見資料型別
    整型: int bigint
    浮點型:float double
    字串:varchar(長度) 1~65535
    text longtext
    日期:date datetime

  3. 快速建立表結構(複製表)
    語法:
    create table 新表 like 舊錶;

R:查詢

  1. 查詢所有表
    語法:
    show tables;

  2. 檢視建表語句
    語法:
    show create table 表名;

  3. 檢視錶結構
    語法:
    desc 表名;

U:修改

  1. 新增一列(欄位)
    語法:
    alter table 表名 add 欄位名 資料型別;

  2. 修改欄位型別
    語法:
    alter table 表名 modify 欄位名 新資料型別;

  3. 修改欄位名
    語法:
    alter table 表名 change 舊欄位名 新欄位名 新資料型別;

  4. 刪除列(欄位)
    語法:
    alter table 表名 drop 欄位名;

  5. 修改表的字符集
    語法:
    alter table 表名 charset=編碼;

  6. 修改表名
    語法:
    rename table 舊錶名 to 新表名;

D:刪除

  1. 直接刪除
    語法:
    drop table 表名;

  2. 先判斷,若存在刪除
    語法:
    drop table if exists 表名;

4.3 DML對錶記錄增刪改

增加記錄

  1. 語法:
    insert into 表名(欄位1,欄位2,…) values(值1,值2,…);
  2. 注意:
    1)欄位名與值的型別要求一一對應
    2)字串型別,可以使用單雙引,推薦使用單引號
    3)字串型別可以插入一切資料,資料庫底層實現了隱式轉換
    4)如果插入所有欄位,我們可以省略欄位

修改記錄

  1. 語法:
    update 表名 set 欄位1=值1,欄位2=值2… [where 條件];
  2. 注意:
    1)[] 表示內容可以省略

刪除記錄

  1. 語法:
    delete from 表名 [where 條件];

  2. 注意:
    1)[] 表示內容可以省略
    2)一般刪除都是根據id

  3. 補充刪除命令
    truncate table 表名; 摧毀表,構建表。

4.3 DML對錶記錄查詢

  1. 實現簡單查詢
    語法:
    select * from 表名;
    select 欄位1,欄位2,… from 表名;
    去重關鍵字:
    select distinct 欄位1,欄位2,… from 表名;
    如果多個欄位去重,所有欄位內容需要完全一樣
    我們在查詢時,進行數學運算,不會改變表中原有的記錄。
    NULL值與其他數值進行運算,結果都為NULL。
    ifnull高階函式
    IFNULL(欄位名,指定預設值) 如果欄位有值就直接返回,如果為null那麼返回指定的預設值
    別名
    select 列名 [as] 列別名,列名 [as] 列別名,… from 表名 [as] 表別名

相關文章