乾貨 | 帶你零基礎學習MySQL(二)

nehemiah 發佈 2020-05-23T07:43:17+00:00

但在給資料庫、表名命名時,需要主要大小寫的區別,例如:table_a 和 TABLE_a,他們是不同的表,所以特別注意這點。

相信大家已經裝好軟體了,那今天就跟著一起來實操吧。

一、SQL語言簡介

SQL:Structure Query Language,用戶完成資料庫管理,數據增刪改查,其特點如下:

  • 每條SQL語句必須以分號結束;
  • SQL中自帶的程式語言不區分大小寫,例如:createCREATE 都可以,一般在應用中,軟體會自動補齊,所以不必擔心出錯;但在給資料庫、表名命名時,需要主要大小寫的區別,例如:table_aTABLE_a,他們是不同的表,所以特別注意這點。

二、配置環境

1.Windows用戶

Windows用戶首先打開phpstudy,啟動MySQL服務,然後最小化就不用管它了,MAC用戶可省略此步驟,直接進入下一步,如下圖所示:

2.打開Navicat premium

  • 新建MySQL連接,創建本地資料庫
  • 連接名:risk_test(可自主命名,能夠體現資料庫的主題即可)
  • 主機名或IP位址:localhost
  • 埠:3306
  • 用戶名:root
  • 密碼:root

特別注意:生成資料庫後,只需要操作裡面的risk_test,其餘的information schema、mysql、performance_schema、sys均為系統自帶的,屬於資料庫的基本框架,千萬不要刪除,使用的過程中不用動它就可以了。

3.頁面介紹

  • 選中新建的資料庫,左鍵雙擊,會出現下拉菜單,常用的有表、函數、事件和查詢;
  • 表即該資料庫中所有的表(常用)
  • 函數即設定的運算代碼
  • 事件常用於定時運行代碼(如:備份數據)
  • 查詢是最常用的一塊,幾乎所有的代碼操作都可以在這裡完成

三、SQL語句實現增刪改查

1.創建庫和表(create)

(1)查看資料庫

-- 先查看所有的庫(注意databases要用複數形式)

show databases;

(2)增加資料庫

如果你還想增加個risk_test1資料庫,該如何操作呢?點擊查詢,新建查詢,輸入以下代碼,選中需要執行的代碼,右鍵點擊,選擇:運行已選擇的,即可得到相應的結果。或者新建連接,按照建立risk_test的方式來建立也可以,自己嘗試操作下,這裡就不截圖展示了。

-- 創建新的資料庫(單數)
create database 資料庫名
如:create database risk_test1;

(3)回到之前risk_test資料庫上新建表

-- 創建一個表
 create table 表名稱(
          欄位1  類型(長度)  約束,
          欄位2  類型(長度)  約束,
          ......
        )[default charset=字符集];

示例:創建訂單表(orders), 包含訂單編號、客戶名稱欄位
         create table orders(    
         order_id  varchar(32),
           cust_name varchar(128)
         ) default charset=utf8;

常見錯誤:

  • No database select: 沒有進入庫
  • 括號不匹配
  • utf8寫成了utf-8
  • 把括號、分號寫成中文符號

2.插入數據 (insert into)

(1)所有欄位都插入或選擇性插入

-- 所有欄位都插值
    insert into orders values
        ('201801010001','C0001',now(),
         1, 1, 100.00);

-- 指定欄位插入
      insert into 表名(欄位列表)
      values(值列表);
          
-- 示例:向訂單表插入一筆數據,只插入訂單編號、客戶編號兩個欄位值      
          insert into orders(order_id,cust_id)
          values('201801010002','C0002');

說明:

  • 沒有指定欄位,表示所有欄位都要賦值
  • 欄位值列表中,欄位數目、順序、類型
  • 要和表結構定義的一致
  • now()表示取系統當前日期時間
  • 字符串類型必須要單引號引起來,
  • 日期時間、數值類型不用單引號
  • 空值用NULL表示

(2)一個語句插入多筆數據

       insert into 表名(欄位列表) values
          (值列表1),
          (值列表2),
          ......;
        -- 示例:
          insert into orders values
          ('201801010003','C0003',now(),1,1,200),         
          ('201801010004','C0004',now(),1,3,480);

(3)示圖

3.查詢(select)

(1)語法

  select * from 表名 [where 查詢條件];

        select 欄位1, 欄位2 from 表名
        [where 查詢條件];

(2)示例

-- 查詢所有數據、所有欄位
          select * from orders;

-- 查詢訂單編號、金額
          select order_id, amt from orders;

-- 查詢指定欄位,給每個欄位起別名
          select order_id "訂單編號",
                    amt "訂單總金額"
          from orders;

-- 帶條件的查詢
          select * from orders 
          where order_id = '201801010001';

-- 帶多個條件查詢,多個條件同時滿足:
          select * from orders 
          where order_id = '201801010001'
          and status = 1;
          
-- 多個條件滿足其中一個:    
          select * from orders 
          where order_id = '201801010001'
          or status = 1;

(3)示圖

4.修改(update)

(1)語法

update 表名
      set 欄位1 = 值1,
                  欄位2 = 值2,
                  ......
        where 條件表達式;

(2)示例

-- 修改某個訂單狀態
    update orders
    set status = 2
    where order_id = '201801010001';

-- 修改某個訂單的金額、狀態
    update orders 
    set amt = amt - 20,
          status = 2
          where order_id = '201801010001';

注意:

  • 修改的時候一定要嚴格限制條件,不然可能整張表都被改
  • 設置的值要和欄位類型匹配,不然就無法修改

5.刪除(delete)

(1)語法

delete from 表名 where 條件表達式;

(2)示例

-- 刪除訂單編號為201801010002的數據
   delete from orders 
   where order_id = '201801010002'; 

注意:

  • 條件進行嚴格限制,不然數據會損失
  • 真實項目中,刪除之前必須做備份(數據分析師最基本素養)

四、結束語

今天帶領大家實現增刪改查,是不是很容易上手,其實這些都是標準的語句,只要在實際應用上,換成自己的數據即可實現了。

雖然簡單,大家也要多加練習,夯實基礎,這樣後面比較複雜的語句就更容易上手了。

好了,下節課將介紹MySQL數據類型以及更多查詢語句,歡迎大家關注我,也可以留言一起交流分享學習經驗。

贈人玫瑰,手有餘香~

關鍵字: