iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
自我挑戰組

SA養成記系列 第 24

Day 24 資料庫 SQL

  • 分享至 

  • xImage
  •  

資料庫

資料庫的目的是讓使用者新增、更新、管理、存取的工具、功能和介面組合。
當中的核心-資料庫,也就是CRUD(Create建立、Delete刪除、Read查詢讀取、Update修正更新)的功能表現。

結構化查詢語言

SQL全稱是 Structured Query Language,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統。
內部系統採用是ASP.Net架構,使用MSSQL(SQLServer),雖然專案使用MySQL,基本上相去不遠。透過API都是一家人,作為一名5年的資料庫管理員enduser 還是要涉略一些SQL的。
雖然內部對話語言常常是 A系統的B資料表的C欄位,複製到F系統的G欄位。呈現一種換句話說的能力。溝通就是溝能夠通就是了,不管是SQLServer還是MySQL:

  • 基本的資料型態:
    • Int、char、Varchar、Double…
  • MySQL的限制:
    • PRIMARY KEY、UNIQUE KEY、NULL、AUTO_INCREMENT
  • 基礎語法:
    • SELECT、INSERT、UPDATE、DELETE、WHERE、GROUP BY、LIMUT
  • 多表查詢:
    • Join

- (略)更多使用,w3c都查詢得到~

基本使用語法

顯示數據庫中的某些欄位資料
select column1, column2 from table_name;

distinct 過濾重複資料
select distinct column1 from table_name;

計算筆數
select count(distinct column1) from table_name;
查詢column_name指定XXX  where
select * from table_name where column_name = "XXX";

反過來 不是XXX 用法
select * from table_name where Not column = "XXX";

查找 value X 
select * from table_name where column_name = 'X'; 單一條件
select * from table_name where column_name ='X' and 'Y' ; 同時滿足兩個條件
select * from table_name where column_name ='X' or 'Y' ; 同一欄位滿足其一條件

查找 is null
select column_name from table_name where column_name is null;
select column_name1 from table_name where column_name2 is null;
查詢 table_name 按**順序**排列 ORDER BY  (預設ASC)
ASC=ASCENDING(上升)  ABC…123…
DESC=DESCENDIN(下降) ZYX…321…

select * from table_name order by column_name1,column_name2..; // column_name 按預設排列
select * from table_name order by column_name DESC; // column_name 按倒序排列
select * from table_nam![https://ithelp.ithome.com.tw/upload/images/20231008/20154961QBI2S7oj4v.png](https://ithelp.ithome.com.tw/upload/images/20231008/20154961QBI2S7oj4v.png) order by column_name1 ASC,column_name2 DESC;

insert into 確保值的順序與表中列的順序相同。

指定要插入的列名稱和值
insert into table_name (column1, column2, column3, ...)
values (value1, value2, value3, ...);

Join 資料表 // 取自 w3schools舉例

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

工欲善其事,必先利其器,語句語法都是工具,真正的利刃,還是資料庫的正規化和標準化,才能使後續再使用發揮最大效益。
附上一張最後整理出來的圖解語句
https://ithelp.ithome.com.tw/upload/images/20231008/20154961AUlB3YaxCl.png


上一篇
Day 23 進化的專案scope紀錄
下一篇
Day 25 資料庫Table Schema
系列文
SA養成記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言