後端技術考古題-資料庫篇(上)

閱讀時間約 4 分鐘

※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。

  • SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。

語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為 "從哪拿"。

SELECT table_column1, table_column2, table_column3... 
FROM table_name
  • SELECT *:一次取得整張資料表裡所有的資料。

※ 避免使用 SELECT *:因為一次取得整張資料表會比較耗費系統資源。

  • WHERE:使用 WHERE 可以限制查詢的範圍與條件。

※ 語法:

SELECT column1, column2, ...
FROM table_name
WHERE condition
WHERE: 用於指定條件的子句。
※ condition: 描述了檢索的條件。
  • CREATE:是一個用於創建新數據庫對象(如表、索引、視圖等)

※ 語法:

CREATE TABLE "表格名"
("欄位 1" "欄位 1 資料種類",
"欄位 2" "欄位 2 資料種類",
... )
  • UPDATE:更新現有資料表中的資料我們就會需要用到 UPDATE。

※ 語法:

UPDATE table_name 
SET column1=value1, column2=value2, column3=value3···
WHERE some_column=some_value
  • DELETE :用來刪除資料表中的資料可以選擇性地使用 WHERE 子句指定刪除的條件。

※ 語法:

DELETE FROM customers
WHERE city = 'New York'
這個語句告訴數據庫刪除 customers 表中所有 city 列值為 'New York' 的行。



※ 主題關鍵字

  • . primary key:主鍵。

※ 功能:

  1. 代表一筆資料表中的一筆資料需要具備「唯一性」和「持有性」的屬性。
  2. 每個資料表都必須要有一個主鍵的欄位。
  • foreign key:外鍵。

※ 功能:用來建立不同資料之間的關係,而外鍵一定是其他資料表的主鍵。

  • relation:關係。

※ 功能:指一個實體在另一個實體之間關聯的方式。

※ 關係:

  1. 一對一關係:一筆資料只會對應到最多一筆資料。

例:在一個購物網站裡,一個使用者只會有一個購物車,該購物車也只會被一個使用者所擁有。

raw-image


  1. 一對多關係:一筆資料 A 會對應到多筆資料 B,但資料 B 反過來卻只會對應到一筆資料 A。

例:在一個購物網站的一個商品分類裡會有多個商品,而一個商品只會屬於一個分類。

raw-image
  1. 多對多關係:一筆資料 A 會對應到多筆資料 B,而一筆資料 B 也會對應到多筆資料 A。

例:一個使用者會參與多個活動,而一個活動也會有多個使用者參與。

raw-image


  • SQL Injection:SQL注入式攻擊,是一種常見的駭客攻擊方式駭客會在設計不良的程式中夾帶惡意指令透過修改SQL語句改變語意,進而達到對資料庫的惡意攻擊。

例:以一個登錄表單來說,使用者在用戶名和密碼字段中輸入其憑證。

SELECT * FROM users 
WHERE username = 'input_username'
AND password = 'input_password'

如果攻擊者在用戶名字段中輸入 input_username' OR '1'='1'; --

SELECT * FROM users 
WHERE username = 'input_username' OR '1'='1'; --'
AND password = 'input_password'

結果使得條件總是成立,並且注入的 -- 部分注釋掉原始查詢的其餘部分。導致,攻擊者可能成功登錄,而不知道有效的用戶名和密碼。因此,網站中只要有提供輸入的欄位,就有SQL injection的風險

    全端網頁開發專業知識分享
    留言0
    查看全部
    發表第一個留言支持創作者!
    認識程式與電腦
    閱讀時間約 1 分鐘
    老爸的私房錢的專案介紹
    閱讀時間約 2 分鐘
    專案開發心得-Simple Twitter
    閱讀時間約 4 分鐘
    A28: 畢業部落格-自我成長
    閱讀時間約 2 分鐘
    資料與資料庫
    閱讀時間約 1 分鐘
    你可能也想看
    後端硬體輸出-解說 製作檔案後續流程 -->底片-->曬版-->印刷機---印刷 -->出版----------->印刷機---印刷 最先接觸的是底片機,那時照相機還是膠捲時代,而報紙與周刊要印刷前都是輸出成透明黑字圖底片,再經由曬版功序進入印刷機。 出片機 以下廠牌為當時最大宗(中譯名),西元年是我
    Thumbnail
    avatar
    怡伶
    2023-08-29
    非本科轉職後端工程師的心路歷程菜雞成長故事 寫這一篇主因也是因為身邊朋友陸陸續續想往軟體業發展,或是想動手做做小專案,故才成就了這一篇心路歷程,這邊會介紹我的背景、學習管道跟我如何選擇第一個程式語言作為敲門磚跟學習時間,希望能幫助還在努力中或是預計要轉職的各位有一個方向或是參考?(雖然我依然還是一個小菜雞,請鞭小力)
    Thumbnail
    avatar
    DDDDD
    2023-08-18
    【好想工作室 — 後端 (backend Camp)培訓心得(五):這麼多東西,要怎麼學最有效率?】初學後端的人,可能對如何學習後端技術或語言會感到很困惑。 本篇文章提供了作者的幾種思路,幫助後端學員進行學習
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(四):我快崩潰了,怎麼辦?】在工作室培訓難免會陷入低潮的原因,本篇文章分析了陷入低潮的原因,及提供預防及解決方法。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    好想工作室 — 後端 (backend Camp)培訓心得(三):我好想進來好想這篇文章針對對好想工作室後端培訓(backend camp)有興趣的人,給他們一些申請建議。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(二):backend camp 在幹嘛】本篇文章介紹了好想工作室後端培訓(backend camp)可能會遇到的各種狀況。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(一):好想工作室簡介】簡單介紹好想工作室。 好想工作室是一個在台南的「資訊聚落」,提供免費的軟體工程師培訓,目前位於台南火車站旁。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    技術分享 | 如何成為後端工程師嗨 我是森妮 上週讓大家投票下一篇文章,沒想到後端工程師篇壓倒性勝利 前端工程師篇不知道大家喜不喜歡!陸續在IG有收到私訊有不少關於後端工程師的問題,我只要有時間都會回應,也歡迎來跟我聊聊天 【後端工程師】 [工作流程] 團隊中的PM、SA與客戶進行需求確認 [學習路徑] >基礎概念與工具
    Thumbnail
    avatar
    森妮後端工程師日常
    2022-09-07
    碳權商機|因應極端氣候與國際碳定價趨勢,蘇貞昌:積極修定《氣候法》,納 2050 淨零排放 隨著全球啟動「淨零競逐」(Race to Zero),以及國際碳定價趨勢越來越盛行,行政院長蘇貞昌 8 月要求環保署積極辦理「溫室氣體減量及管理法」修法作業,不僅要納入 2050 淨零排放的減排目標,也要加速台灣碳定價制度的擬定。 蘇貞昌:台灣深受極端氣候衝擊,氣候行動不應落於人後 今年台灣面臨嚴
    Thumbnail
    avatar
    本住人
    2021-09-11
    Laravel Socialite 實作前後端分離的第三方登入 API本文使用網站的 FB 登入做示範 採用 Laravel 8 + Socialite 5 使用 Session 記錄狀態 不同版本可能會有些許語法及方法上的差異,請自行調整 前言 最近因為碰到需要實作 OAuth 第三方登入的需求,只好把之前隨便看看的東西撿回來研究並實作。不過我找到多數現存的中文文章
    Thumbnail
    avatar
    hms5232
    2021-02-21