讀書記錄《SQL從小白到大牛》01

讀書記錄《SQL從小白到大牛》01

接地氣的書名,內容應當值得一讀。

第一篇 SQL基礎

01 一些基礎概念

  • SQL是結構化查詢語言(Structured Query Language),是一套用來輸入、更改和查看關系數據庫內容的命令。
  • 數據庫發展經歷三個階段:人工管理——文件系統——數據庫系統
  • 數據庫數據邏輯模型:網狀模型、層次模型、關系模型、對象模型

02 一些定義

  • 二維表:關系模型的數據結構是一個二維表組成的集合
  • 關系:每個二維表稱為關系
  • 實體:系統中的人事物
  • 表:這些實體所構成的集合
  • 元組:也稱為記錄,就是行。
  • 字段:也稱為列。
  • 鍵:Key。碼,分為超鍵、候選鍵、主鍵、外鍵。
    • 超鍵(Super Key),能夠唯一標識一行數據的字段或者字段集。【可以有多種組合】
    • 候選鍵(Candidate Key),是包含最少字段的超鍵。
    • 主鍵(Primary Key),從候選鍵中選擇出來的。
    • 外鍵(Foreign Key),一個關系數據庫可能包含多個表,通過外鍵關聯起來。

03 SQL概述

  • SQL主要分為5類,數據定義語言、數據操作語言、數據控制語言、事務控制語言、數據控制語言。

  • 數據定義語言(DDL)

    • CREATE 創建
    • DROP 刪除
    • ALTER 修改
    • TRUNCATE 刪除
  • 數據操作語言(DML)

    • INSERT 插入數據
    • UPDATE 更新數據
    • DELETE 刪除數據
    • SELECT 選擇數據
  • 數據控制語言(DCL)

    • GRANT 授權
    • REVOKE 取消授權
  • 事務控制語言(TCL)

    • COMMIT 提交事務
    • ROLLBACK 回滾事務
    • SAVEPOINT 設置事務保存點
  • 數據查詢語言(DQL)

    • SELECT 數據查詢

SQL標準

  • SQL不區分大小寫
  • 忽略空白
  • 語句結束符為;, 單獨一句可以不用

學習環境搭建

  1. SQLite搭建

    www.sqlite.org

  2. DB4S

    https://sqlitebrowser.org/dl/

image-20240707205201810

具體操作語言指令

文中詳細介紹了DB4S的使用方法(依舊是使用SQL語句),因此直接介紹具體的操作語言指令 (部分)。

1 新建表、設置表格式
CREATE TABLE student (s_id INTEGER,s_name VARCHAR(20),gender CHAR (1),PIN  CHAR(18))

INTEGER定義整數類型;

VARCHAR(20)定義可變長度,最大長度為20B;

CHAR(1)表示固定長度為1B的字符串類型。

2 指定候選鍵

兩種定義方式:

CREATE TABLE student (s_id INTEGER,s_name VARCHAR(20),gender CHAR (1),PIN  CHAR(18) UNIQUE)
CREATE TABLE student (s_id INTEGER,s_name VARCHAR(20),gender CHAR (1),PIN  CHAR(18) ,UNIQUE (PIN))

指定主鍵:PRIMARY KEY(s_id)

指定外鍵: 1 s_id INTEGER REFERENCES students (s_id)

2 FPREIGN KEY(s_id) REFERENCES student(s_id)

3 約束

DEFAULT 'F’定義默認值

NOT NULL 禁止空值

都加在CREATE TABLE 里面語句的末尾。

4 CHECK約束

單獨一句

score INTEGER CHECK(score>-0 AND score <=100)

修改表

修改表名

ALTER TABLE table_name
RENAME TO new_table_name

添加字段

ALTER TABLE table_name
ADD field_name datatype[(size)]

刪除字段

ALTER TABLE table_name
DROP COLUMN field_name

刪除表

DROP TABLE table_name

修改數據

/*插入數據*/INSERT INTO table_name 
[(field_list)]
VALUES
(value_list);/*更改數據*/
UPDATE table_name
SET field1 = value1, field2 = value2,...
[WHERE condition];
/*例如 WHERE 編號=666*//*更改數據*/
DELETE FROM table_name
[WHERE condition];

后續一些內容

  • 視圖管理

  • 查詢數據

  • 匯總查詢結果

  • 子查詢

  • 表的連接

待更新

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42953.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42953.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42953.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python自動化與系統安全

信息安全是運維的根本&#xff0c;直接關系到企業的安危&#xff0c;稍有不慎會造成災難性的后果。比如經年發生的多個知名網站會員數據庫外泄事件&#xff0c;信息安全體系建設已經被提到了前所未有的高度。如何提升企業的安全防范水準是目前普遍面臨的問題&#xff0c;主要有…

Swagger的原理及應用詳解(四)

本系列文章簡介: 在當今快速發展的軟件開發領域,特別是隨著微服務架構和前后端分離開發模式的普及,API(Application Programming Interface,應用程序編程接口)的設計與管理變得愈發重要。一個清晰、準確且易于理解的API文檔不僅能夠提升開發效率,還能促進前后端開發者之…

Greenplum(一)【MPP 架構 數據類型】

1、Greenplum 入門 Greenplum 是基于 MPP 架構的一款分布式分析型數據庫&#xff0c;具備關系型數據庫的特點&#xff0c;因為它處理的是結構化的數據&#xff0c;同時具備大數據分布式的特點。 1.1、MPP 架構 MPP&#xff08;Massively Parallel Processing&#xff09;架構是…

從Java開發者到.NET Core初級工程師學習路線:目錄

C#語言基礎 1.1 C#語法概覽 1.2 變量和數據類型 1.3 運算符和表達式 1.4 控制流語句 1.5 方法和參數 1.6 類和對象 1.7 繼承和多態 1.8 接口和抽象類 1.9 委托和事件 1.10 泛型 1.11 LINQ (Language Integrated Query) 1.12 異步編程 (async/await) 1.13 異常處理 1.14 文件I/O…

IOC、DI<3> IServiceConllection 自定義IOC含屬性注入、多實現注入,方法注入

using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks;namespace IOC.Common {public class ZenServiceCollection : IZenServiceCollection{// 記錄IOC注冊的抽象、實現private Di…

SpringSecurity初始化過程

SpringSecurity初始化過程 SpringSecurity一定是被Spring加載的&#xff1a; web.xml中通過ContextLoaderListener監聽器實現初始化 <!-- 初始化web容器--><!--設置配置文件的路徑--><context-param><param-name>contextConfigLocation</param-…

sql注入問題批量處理

問題&#xff1a;SQL注入修改&#xff0c;歷史代碼全是${};無法修改的比如表名&#xff0c;列名&#xff0c;動態排序之類的不改&#xff0c;其他的都要修改完成 背景&#xff1a;新公司第一個任務就是SQL注入的修改&#xff0c;歷史sql全部都是${},一個個調整不太合適只能批量…

機場的出租車問題折線圖

分析并可視化機場離場車輛數數據 本文將詳細介紹如何使用Python的正則表達式庫re和繪圖庫matplotlib對機場離場車輛數數據進行分析和可視化。以下是具體步驟和代碼實現。 數據資源&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1rU-PRhrVSXq-8YdR6obc6Q?pwd1234 提…

Android C++系列:Linux常用函數和工具

1. 時間函數 1.1 文件訪問時間 #include <sys/types.h> #include <utime.h> int utime (const char *name, const struct utimebuf *t); 返回:若成功則為 0,若出錯則為- 1如果times是一個空指針,則存取時間和修改時間兩者都設置為當前時間; 如果times是非空指針…

一個python文件實現openai 轉換請求轉換成 ollama

最近在微軟開源了GraphRAG,項目&#xff0c;是一個很棒的項目&#xff0c;本著研究學習的態度下載了該項目測試&#xff0c;發現目前只可以使用openai chat gpt,或azure open chat gpt,也就是說意味著資料要上傳到第三方網站處理&#xff0c;為了本地的ollama也可以使用特意開發…

輪播圖案例

丐版輪播圖 <!DOCTYPE html> <html lang"zh-cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title> 基礎輪播圖 banner 移入移出</t…

6000字以上論文參考:基于Java+SpringMvc+Vue技術的實驗室管理系統設計與實現

可參考&#xff1a;基于JavaSpringMvcVue技術的實驗室管理系統設計與實現&#xff08;6000字以上論文參考&#xff09;-CSDN博客 論文參考&#xff1a;

【python】字典、列表、集合綜合練習

1、練習1(字典) 字典dic,dic {‘k1’:‘v1’, ‘k2’: ‘v2’, ‘k3’: [11,22,33]} (1). 請循環輸出所有的key dic {"k1": "v1", "k2": "v2", "k3": [11, 22, 33]} for k in dic.keys():print(k)k1 k2 k3(2). 請循環輸…

2024 WAIC|第四范式胡時偉分享通往AGI之路:行業大模型匯聚成海

7月4日&#xff0c;2024世界人工智能大會&#xff08;WAIC&#xff09;正式開幕。此次大會圍繞核心技術、智能終端、應用賦能等板塊展開&#xff0c;展覽規模、參展企業數均達歷史最高。第四范式受邀參展&#xff0c;集中展示公司十年來在行業大模型產業應用方面的實踐。在當天…

【知網CNKI-注冊安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊&#xff0c;存在如下安全問題&#xff1a; 暴力破解密碼&#xff0c;造成用戶信息泄露短信盜刷的安全問題&#xff0c;影響業務及導致用戶投訴帶來經濟損失&#xff0c;尤其是后付費客戶&#xff0c;風險巨大&#xff0c;造成虧損無底洞…

dockerfile里的copy只能使用相對路徑嗎?

在 Dockerfile 中&#xff0c;COPY 指令既可以使用相對路徑&#xff0c;也可以使用絕對路徑&#xff08;但絕對路徑的使用方式和上下文有關&#xff09;。不過&#xff0c;在實踐中&#xff0c;你通常會看到使用相對路徑&#xff0c;因為 Dockerfile 的構建上下文&#xff08;b…

NewspaceGPT帶你玩系列之【Song Maker】

目錄 注冊一個賬號&#xff0c;用qq郵箱&#xff0c;然后登錄選一個可用的Plus&#xff0c;不要選3.5探索GPT今天的主角是【Song Maker】翻譯一下用漢語吧我寫詞。你譜曲和其他伴奏&#xff0c;例子&#xff1a; 搖滾&#xff0c;憂傷&#xff0c;吉他&#xff0c;鼓&#xff0…

聊一聊Oracle的空間計算函數SDO_NN

網上對這個函數介紹的很少&#xff0c;對使用上也很模糊&#xff0c;我來補充一下&#xff0c;讓大家了解一下這個函數 from test1 y, test2 p where SDO_NN(p.geom,y.geom,sdo_num_res1, 0.5 )TRUE; 上面這個表達式的含義也就是說在test2中找到一個距離test1很近的&#x…

Android約束布局的概念與屬性(1)

目錄 1&#xff0e;相對定位約束2&#xff0e;居中和偏移約束 約束布局&#xff08;ConstraintLayout&#xff09;是當前Android Studio默認的布局方式&#xff0c;也是最靈活的一種布局方式。約束布局推薦使用所見即所得的模式進行布局&#xff0c;約束布局的大部分布局可以通…

超詳細的 Linux 環境下 Anaconda 安裝與使用教程

超詳細的 Linux 環境下 Anaconda 安裝與使用教程 前言 在數據科學和機器學習領域&#xff0c;Anaconda 是一個非常受歡迎的發行版&#xff0c;提供了許多常用的包和工具。本文將詳細介紹如何在 Linux 系統上安裝和配置 Anaconda 環境&#xff0c;并展示如何高效地使用它。 一…