復習MySQL20250327

第一章? 基本操作

一、管理數據庫

難點:創建數據庫

輸入cmd的MySQL安裝路徑C:\Program Files\MySQL\MySQL Server 8.0\bin?

1.查看所有數據庫
show databases;
2.創建數據庫
create database hsusers default charset utf8 collate utf8_general_ci;create database:這是一個 SQL 關鍵字,用于指示數據庫系統創建一個新的數據庫。hsusers:這是要創建的數據庫的名稱。在實際使用時,你可以依據自身需求將其替換為合適的名稱。default charset utf8:指定了該數據庫默認的字符集為 utf8。字符集定義了數據庫存儲和處理文本時所采用的字符編碼方式。utf8 能夠支持多種語言的字符,是一種廣泛使用的字符編碼。collate utf8_general_ci:指定了該數據庫默認的排序規則為 utf8_general_ci。排序規則決定了在進行字符串比較和排序時的規則。utf8_general_ci 中的 ci 表示大小寫不敏感(Case - Insensitive),即數據庫在比較字符串時不會區分大小寫。
3.刪除數據庫
drop database day1db;
4.進入數據庫
use day1db;
5.查看數據庫中的表
show tables;
create database hsusers default charset utf8 collate utf8_general_ci;

二、管理數據表

難點:創建數據表

(一)創建表

在 MySQL 里,你可以使用?CREATE TABLE?語句來創建表。下面為你詳細介紹其基本語法、示例以及不同參數的作用。

基本語法

sql

CREATE TABLE table_name (column1 datatype [optional_constraints],column2 datatype [optional_constraints],...[table_constraints]
);
語法解釋
  • CREATE TABLE:這是用于創建表的關鍵字。
  • table_name:要創建的表的名稱,需保證在數據庫中該名稱是唯一的。
  • column1, column2, ...:表中的列名,每個列都有對應的?datatype(數據類型)。
  • datatype:指定列可以存儲的數據類型,例如?INT(整數)、VARCHAR(可變長度字符串)、DATE(日期)等。
  • optional_constraints:可選擇的列約束條件,像?NOT NULL(非空)、UNIQUE(唯一)、PRIMARY KEY(主鍵)、FOREIGN KEY(外鍵)等。
  • table_constraints:表級約束條件,用于定義跨列的約束,例如復合主鍵、唯一鍵組合等。
示例

以下是創建一個名為?employees?的表的示例,該表包含員工的基本信息:

sql

CREATE TABLE employees (id INT NOT NULL AUTO_INCREMENT,first_name VARCHAR(50) NOT NULL,last_name VARCHAR(50) NOT NULL,birth_date DATE,hire_date DATE,salary DECIMAL(10, 2),department_id INT,PRIMARY KEY (id),FOREIGN KEY (department_id) REFERENCES departments(id)
);
示例解釋
  • id:是一個自增的整數列,作為主鍵,確保每個員工記錄有唯一的標識符。
  • first_name?和?last_name:為可變長度字符串列,用于存儲員工的名字和姓氏,且不能為空。
  • birth_date?和?hire_date:為日期列,分別存儲員工的出生日期和入職日期。
  • salary:是一個十進制數,用于存儲員工的工資,精度為 10 位,小數部分為 2 位。
  • department_id:是一個整數列,作為外鍵,引用?departments?表中的?id?列,用于關聯員工所屬的部門。
創建臨時表

若你需要創建一個臨時表(該表在會話結束時會自動刪除),可以使用?CREATE TEMPORARY TABLE?語句,語法如下:

sql

CREATE TEMPORARY TABLE temp_table_name (column1 datatype [optional_constraints],column2 datatype [optional_constraints],...[table_constraints]
);

這些示例和語法應該能幫助你在 MySQL 中創建所需的表。在實際使用時,根據具體需求調整列名、數據類型和約束條件。

(二)列約束條件

在 MySQL 中,列約束條件用于限制列中存儲的數據,確保數據的完整性和一致性。以下是常見的列約束條件及其含義:

1.?NOT NULL
  • 含義:該約束規定列不允許存儲?NULL?值。也就是說,在向該列插入數據時,必須提供一個有效的值。
  • 示例

sql

CREATE TABLE users (id INT,name VARCHAR(50) NOT NULL
);

在這個?users?表中,name?列不允許為?NULL,插入數據時必須提供一個名字。

2.?UNIQUE
  • 含義:此約束保證列中的所有值都是唯一的,即同一列中不能有重復的值。
  • 示例

sql

CREATE TABLE employees (id INT,email VARCHAR(100) UNIQUE
);

在?employees?表中,email?列的每個值都必須是唯一的,不能有兩個員工使用相同的電子郵件地址。

3.?PRIMARY KEY
  • 含義PRIMARY KEY?約束用于唯一標識表中的每一行記錄。它結合了?NOT NULL?和?UNIQUE?的特性,即主鍵列的值不能為?NULL?且必須唯一。一個表只能有一個主鍵,但主鍵可以由多個列組成(復合主鍵)。
  • 示例

sql

CREATE TABLE products (product_id INT PRIMARY KEY,product_name VARCHAR(200)
);

這里?product_id?列被定義為主鍵,用于唯一標識每個產品。

4.?FOREIGN KEY
  • 含義FOREIGN KEY?約束用于建立表與表之間的關聯。它引用另一個表的主鍵列,確保該列中的值必須存在于被引用表的主鍵列中。通過外鍵可以實現數據庫的參照完整性。
  • 示例

sql

CREATE TABLE orders (order_id INT PRIMARY KEY,product_id INT,FOREIGN KEY (product_id) REFERENCES products(product_id)
);

在?orders?表中,product_id?列是外鍵,它引用了?products?表的?product_id?主鍵列。這意味著?orders?表中的?product_id?值必須是?products?表中已經存在的?product_id?值。

5.?DEFAULT
  • 含義DEFAULT?約束為列指定一個默認值。當插入數據時,如果沒有為該列提供值,則會使用默認值。
  • 示例

sql

CREATE TABLE customers (customer_id INT,status VARCHAR(20) DEFAULT 'active'
);

在?customers?表中,如果插入數據時沒有為?status?列提供值,那么該列將自動使用默認值?'active'

6.?CHECK
  • 含義CHECK?約束用于限制列中的值必須滿足特定的條件。在 MySQL 8.0.16 及以后的版本中,CHECK?約束是強制執行的。
  • 示例

sql

CREATE TABLE students (student_id INT,age INT,CHECK (age >= 18)
);

在?students?表中,CHECK?約束確保?age?列的值必須大于或等于 18。

7.?AUTO_INCREMENT
  • 含義AUTO_INCREMENT?約束用于為整數類型的列自動生成唯一的、遞增的值。通常與?PRIMARY KEY?約束一起使用,用于自動生成主鍵值。
  • 示例

sql

CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50)
);

在?users?表中,每次插入新記錄時,user_id?列會自動生成一個比上一個記錄的?user_id?值大 1 的新值。

注意:MySQL并非只有這個7個列約束條件,其他孤不常用,在此不作深入講解。

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

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

相關文章

谷歌推出Gemini實時AI視頻功能,開啟智能交互新體驗

3月24日,谷歌發言人亞歷克斯約瑟夫向媒體證實,谷歌已開始向 Gemini Live 推出新的人工智能功能。這些功能使 Gemini 能夠“看到”用戶的屏幕內容,或通過智能手機攝像頭獲取畫面,并實時回答與之相關的問題。這一創新標志著人工智能…

Windows 新型零日漏洞:遠程攻擊可竊取 NTLM 憑證,非官方補丁已上線

近日,安全研究人員披露了一個新型 Windows 零日漏洞,影響從Windows 7和Server 2008 R2到最新Windows 11 v24H2及Server 2025的所有Windows操作系統版本。攻擊者只需誘使用戶在Windows資源管理器中查看惡意文件,即可利用該零日漏洞竊取NTLM&am…

一款超級好用且開源免費的數據可視化工具——Superset

認識Superset 數字經濟、數字化轉型、大數據等等依舊是如今火熱的領域,數據工作有一個重要的環節就是數據可視化。 看得見的數據才更有價值! 現如今依舊有多數企業號稱有多少多少數據,然而如果這些數據只是呆在冷冰冰的數據庫或文件內則毫無…

作業14 (2023-05-22_const修飾指針)

第1題/共5題【單選題】 C程序常見的錯誤分類不包含:( ) A.編譯錯誤 B.鏈接錯誤 C.棧溢出 D.運行時錯誤 回答正確 答案解析: 棧溢出是運行時錯誤的一種,因此C程序不會將棧溢出錯誤單獨列出來,棧溢出包含在運行時錯誤中。 因此:選擇C 第2題/共5題【單選題】 以下關于…

《Tr0ll2 靶機滲透實戰:弱口令+SUID+兩種緩沖區溢出+ 提權完整+fcrackzip暴力破解+shellshock漏洞+臟牛三種root提權復盤》

Tr0ll2 1、主機發現 arp-scan -l 2、端口掃描 nmap -sS -sV 192.168.66.181 nmap -sS -A -T4 -p- 192.168.66.181 nmap --scriptvuln 192.168.66.181PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.8 or later 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.4 (…

redis常用部署架構之redis分片集群。

redis 3.x版本后開始支持 作用: 1.提升數據讀寫速度 2..提升可用性 分片集群就是將業務服務器產生的數據儲存在不同的機器上。 redis分片集群的架構 如上圖所示,會將數據分散存儲到不同的服務器上,相比于之前來說,redis要處…

分布式數據庫介紹

分布式數據庫介紹 一、定義與核心概念 分布式數據庫是一種在物理上分散存儲、邏輯上統一管理的數據管理系統,其核心特征包括數據分布性、邏輯關聯性、場地透明性和可擴展性。根據最新定義,分布式數據庫需具備分布式事務處理能力、平滑擴展能力&#xf…

MybatisPlus(SpringBoot版)學習第五講:條件構造器和常用接口

目錄 1.wrapper介紹 2.QueryWrapper 2.1 例1:組轉查詢條件 Compare Nested Join Func 2.2 例2:組裝排序條件 2.3 例3:組裝刪除條件 2.4 例4:條件的優先級 2.5 例5:組裝select子句 2.6 例6:實現子查…

OkHttp 的證書設置

在 Android 開發中,通過 OkHttp 自定義 SSLSocketFactory 和 X509TrustManager 可以有效增強 HTTPS 通信的安全性,防止中間人攻擊(如抓包工具 Charles/Fiddler 的攔截)。以下是實現防抓包的關鍵技術方案: 一、Okhttp設…

計算機視覺算法實戰——手術導航:技術、應用與未來

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ??? ????????? ?? 1. 手術導航中的計算機視覺:領域介紹 計算機視覺在手術導航領域的應用代表了現代醫學與人工智…

【科研繪圖系列】R語言繪制PCA與變量的相關性散點圖(scatter plot)

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹加載R包數據下載導入數據畫圖輸出圖片系統信息介紹 【科研繪圖系列】R語言繪制PCA與變量的相關性散點圖(scatter plot) 加載R包 library(tidyverse) library(ggpubr)數據下載 …

深度解析Spring Boot可執行JAR的構建與啟動機制

一、Spring Boot應用打包架構演進 1.1 傳統JAR包與Fat JAR對比 傳統Java應用的JAR包在依賴管理上存在明顯短板,依賴項需要單獨配置classpath。Spring Boot創新的Fat JAR(又稱Uber JAR)解決方案通過spring-boot-maven-plugin插件實現了"…

安科瑞微電網能量管理控制箱,光伏發電的守護者

安科瑞顧強 隨著工業的發展,很多用電設備和工廠設備采用直流系統供電,直流系統的正極和負極不接地。對于不接地(IT)配電系統,應該進行絕緣電阻的監控以保證供電系統的安全運行。 AIM-D100-TS 系列直流絕緣監測儀可以…

[計算機網絡]網絡I/O模型

歡迎來到啾啾的博客🐱。 這是一個致力于構建完善的Java程序員知識體系的博客📚,記錄學習的點滴,分享工作的思考、實用的技巧,偶爾也分享一些雜談💬。 歡迎評論交流,感謝您的閱讀😄。…

Vue中使用JsonView進行JSON數據展示

前言 最近在開發公司的管理系統的操作日志模塊,要查看某條操作日志的請求參數,要將請求的參數以 JSON 格式的形式展示出來,于是用到了Vue-JSON-Viewer 這個插件。 一、Vue-JSON-Viewer 基礎入門 插件簡介 Vue-JSON-Viewer 是一個用于在Vue項…

vue vue3 走馬燈Carousel

背景: 在項目中需要展示多張圖片,但在頁面上只有一張圖片的有限位置,此時考慮使用輪播圖實現多張圖片的展示。element組件官網有走馬燈Carousel的組件詳細介紹。 實現效果: 官網鏈接:點擊跳轉 核心代碼: …

重學vue3(三):vue3基本語法及使用

組合式 API是vue3 的核心特性&#xff0c;替代 Vue2 的選項式 API&#xff0c;強調邏輯復用和代碼組織。基本語法如下&#xff1a; <script setup> import { ref, reactive, computed, onMounted } from vue;// 1. 響應式數據 const count ref(0); // 基本類…

Spring Boot分布式項目異常處理實戰:從崩潰邊緣到優雅恢復

當單體應用拆分成分布式系統&#xff0c;異常就像被打開的潘多拉魔盒&#xff1a;RPC調用超時、分布式事務雪崩、第三方接口突然罷工…在最近的電商大促中&#xff0c;我們的系統就經歷了這樣的至暗時刻。本文將用真實代碼示例&#xff0c;展示如何構建分布式異常處理體系。 一…

導出sql命令

除了之前提到的 \G 命令&#xff0c;以下是其他優化 MySQL 查詢結果顯示的方法&#xff0c;供你參考&#xff1a; --- ### 1. **使用 \T 命令導出結果到文件** - 在 MySQL 命令行中&#xff0c;使用 \T 文件名 可以將查詢結果以表格形式導出到指定文件&#xff0c;便于后續…

TDengine 3.3.2.0 集群報錯 Post “http://buildkitsandbox:6041/rest/sql“

原因&#xff1a; 初始化時處于內網環境下&#xff0c;Post “http://buildkitsandbox:6041/rest/sql“ 無法訪問 修復&#xff1a; vi /etc/hosts將buildkitsandbox映射為本機節點 外網環境下初始化時沒有該問題