相信大家已經裝好軟體了,那今天就跟著一起來實操吧。
一、SQL語言簡介
SQL:Structure Query Language,用戶完成資料庫管理,數據增刪改查,其特點如下:
- 每條SQL語句必須以分號結束;
- SQL中自帶的程式語言不區分大小寫,例如:create 和 CREATE 都可以,一般在應用中,軟體會自動補齊,所以不必擔心出錯;但在給資料庫、表名命名時,需要主要大小寫的區別,例如:table_a 和 TABLE_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數據類型以及更多查詢語句,歡迎大家關注我,也可以留言一起交流分享學習經驗。
贈人玫瑰,手有餘香~