MySQL:常用的SQL語句

提醒:設定下面的語句是在數據庫名為 db_book執行的。

一、創建表

1. 創建t_booktype表

USE db_book;
CREATE TABLE t_booktype(id INT AUTO_INCREMENT, bookTypeName VARCHAR(20),bookTypeDesc varchar(200),PRIMARY KEY (id)
);

在這里插入圖片描述

2. 創建t_book表

USE db_book;
CREATE TABLE t_book(id INT PRIMARY KEY AUTO_INCREMENT, bookName VARCHAR(20) DEFAULT NULL, price DECIMAL(6, 2) DEFAULT NULL, bookTypeId INT, constraint `fk` foreign key (`bookTypeId`) references `t_booktype`(`id`)/*添加外鍵*/
);

添加外鍵約束:alter table 從表 add constraint 外鍵(形如:FK_從表_主表) foreign key (從表外鍵字段) references 主表(主鍵字段);

提醒: 大多數情況,不推薦使用外鍵,需要用到外鍵的邏輯最好放到應用層解決

外鍵的優點

  • 數據一致性;
  • 完整性會更可靠;
  • 提高數據質量;

外鍵的缺點

  • 損耗性能:當做一些涉及外鍵字段的增,刪,更新操作之前,數據庫需要檢查它是否違反數據完整性,不得不消耗資源。
  • 更高層次的框架
    許多應用程序使用編程框架,在物理數據庫之上創建另一個邏輯層。開發人員不使用插入或更新語句來修改數據,而使用API或者框架在后臺執行相關操作。ORM(對象關系映射)框架或Ruby on Rails框架就是這種情況。這些工具負責參照完整性,并與RDBMS一起創建更高級別的數據庫引擎。這些框架可以自己創建數據庫表,而不總是創建外鍵。使用這些工具的開發人員很少會干擾自動生成的模式,并且不需要外鍵。
  • 跨數據庫關系:
    一些數據庫跨越更多的物理數據庫甚至引擎,并且在技術上可能不能創建跨越數據庫的它不能在同一臺服務器上的兩個數據庫上創建key。SQL Server就是一個很好的例子 - 它不能在同一臺服務器上的兩個數據庫上創建key。而且這種架構在大型系統中很常見。
  • 開發和維護不方便
    在創建數據庫時,一般創建一些表和列是設置主鍵或唯一鍵,如果設置了外鍵時,后期無論開發還是維護,需要手工維護數據,都不太方便、降低了工作效率。

在這里插入圖片描述

二、增加、查詢、修改、刪除(CRUD)

1. t_booktype表插入數據

INSERT INTO db_book.t_booktype VALUES(NULL,'Html','前端開發');/*給表的所有字段插入數據*/

在這里插入圖片描述

查詢t_booktype表所有數據

SELECT * FROM db_book.t_booktype;

在這里插入圖片描述

2. t_book表插入數據

INSERT INTO db_book.t_book VALUES(NULL,'Html',10.00,1);/*給表的所有字段插入數據*/

在這里插入圖片描述

查詢t_book表所有數據

SELECT * FROM db_book.t_book;

在這里插入圖片描述

注意: 因為在步驟一創建t_book表時,添加了外加,所以在給t_book插入數據時,bookTypeId字段的值 需要和 t _booktype 表id字段的值一樣

其他插入數據SQL語句

INSERT INTO t_book(id,bookName,price,bookTypeId) VALUES(NULL,'Html2',10.09,6);/*給表的所有字段插入數據  注意 bookTypeId 值和t_booktype id值一樣*/INSERT INTO t_book(bookName,price,bookTypeId) VALUES('java',10.09,2);/*給表的指定字段插入數據  注意 bookTypeId 值和t_booktype id值一樣*/INSERT INTO t_book(id,bookName,price,bookTypeId) VALUES(NULL,'Html3',10.09,6),(NULL,'Html4',10.09,6),(NULL,'Html5',10.09,6);/*同時插入多條數據*/

3. 修改 t_book 表數據

UPDATE t_book SET bookName ='H5',price = 14.50 WHERE id = 7;/*更新一條數據*/

在這里插入圖片描述

查詢t_book表所有數據

SELECT * FROM db_book.t_book;

在這里插入圖片描述
從上圖可以看到id = 7的數據已經修改成功了

使用LIKE修改多條數據

UPDATE t_book SET bookName ='H4'WHERE bookName LIKE'Html';/*更新多條數據*/

4. 指定刪除t_book數據

DELETE FROM t_book WHERE id = 8;/*刪除一條數據*/

在這里插入圖片描述

驗證刪除id = 8的操作執行成功
在這里插入圖片描述

刪除多條數據

DELETE FROM t_book WHERE bookName = 'H4';/*刪除多條數據*/

三、查看表的結構

1. 查看表的基本結構:desc t_booktype;

在這里插入圖片描述

2. 查看表的詳細結構:show create table t_booktype;

在這里插入圖片描述

修改表示例:將t_book重命名為t_book2

SQL語句:alter table t_book rename t_book2;

提醒下面目錄標題是博客鏈接,直接點擊即可查看

四、單表查詢

五、合并查詢語句

六、使用聚合函數查詢

七、連接查詢

八、子查詢

九、函數

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

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

相關文章

[筆記] wsl 禁用配置 win系統環境變量+代理

wsl 配置禁用 win系統環境變量 進入 wsl 的 /etc/wsl.conf 目錄,增加以下配置: [interop] enabledfalse appendWindowsPathfalse然后退出wsl,并且執行關閉正在運行的 wsl,執行命令 wsl --shutdown 最后重新進入wsl 即可。 參考…

C語言-----動態內存管理(1)

1.引入 我們之前已經學習了幾種開辟內存空間的方式: (1)int a10;開辟4個字節大小的空間 (2)int arr[10]{0}定義數組開辟了一串連續的空間 2.malloc和free (1)malloc開辟內存空間可能會失敗,因此需要檢查…

HTML5+CSS3+JS小實例:文字陰影還能這么玩

實例:文字陰影還能這么玩 技術棧:HTML+CSS+JS 效果: 源碼: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"…

Android java基礎_泛型

一.java泛型是什么 Java 泛型&#xff08;Generic&#xff09;是 Java 5 中引入的一種特性&#xff0c;它允許類、接口和方法在定義時使用一個或多個類型參數&#xff0c;這些類型參數在調用時會被實際類型替換&#xff0c;從而增強了代碼的重用性和類型安全性。通過使用泛型&…

鴻蒙Harmony應用開發—ArkTS聲明式開發(通用屬性:形狀裁剪)

用于對組件進行裁剪、遮罩處理。 說明&#xff1a; 從API Version 7開始支持。后續版本如有新增內容&#xff0c;則采用上角標單獨標記該內容的起始版本。 clip clip(value: boolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute) 按指定的形狀對當…

Spring基礎——XML配置Bean的實例化

目錄 實例化Bean的方式使用構造函數實例化Bean使用靜態工廠的方式實例化Bean使用實例化工廠方式實例化Bean通過實現FactoryBean自定義實例化Bean 實例化Bean的方式 bean的創建本質上就是創建一個或多個具有外部配置屬性的對象&#xff0c;容器在啟動的時候會查看命名Bean的配置…

中美加密監管突傳“巨響”!比特幣突破7萬信號出現!馬斯克一句話掀起大行情!

比特幣本周觸及64000美元高價&#xff0c;2月交易所儲備減少近45000多枚比特幣&#xff0c;市場將其解讀為看漲70000美元的關鍵信號。中美加密監管傳利好&#xff0c;香港加密牌照申請期限結束&#xff0c;已有24家機構入列待批&#xff0c;美國考慮允許比特幣ETF及相關信托期權…

uview2中上傳文件和若依前后端分離配合的代碼

uview2中的上傳文件需要配合著自己后端的上傳的代碼 uview2 代碼&#xff1a; uploadFilePromise(url) {return new Promise((resolve, reject) > {// 后續自己封裝let a uni.uploadFile({//自己的請求路徑url: that.$baseURL /uploadAvater, //上傳的文件filePath: tha…

Java | vscode如何使用命令行運行Java程序

1.在vscode中新建一個終端 2.在終端中輸入命令 javac <源文件>此命令執行后&#xff0c;在文件夾中會生成一個與原java程序同名的.class文件。然后輸入如下命令&#xff1a; java <源文件名稱>這樣java程序就運行成功了。&#x1f607;

LeetCode:2368. 受限條件下可到達節點的數目(dfs Java)

目錄 2368. 受限條件下可到達節點的數目 題目描述&#xff1a; 實現代碼與解析&#xff1a; DFS 原理思路&#xff1a; 2368. 受限條件下可到達節點的數目 題目描述&#xff1a; 現有一棵由 n 個節點組成的無向樹&#xff0c;節點編號從 0 到 n - 1 &#xff0c;共有 n - …

02-Vue 計算屬性與監聽器與VUE-cli使用

1.計算屬性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,…

Android java基礎_反射

一.反射的基本概念 反射&#xff08;Reflection&#xff09;&#xff0c;Java 中的反射機制是指&#xff0c;Java 程序在運行期間可以獲取到一個對象的全部信息。 反射機制一般用來解決Java 程序運行期間&#xff0c;對某個實例對象一無所知的情況下&#xff0c;如何調用該對…

單源最短路的建圖方式

1129. 熱浪 - AcWing題庫 這道題可以有三種方法來做&#xff0c;樸素版的dijkstra、堆優化版的dijkstra和spfa算法 &#xff08;1&#xff09;spfa算法 這里的隊列用循環隊列&#xff0c;而不是像模板那樣用普通隊列是因為它的隊列長度不確定 import java.util.*;public class…

mysql 大數據量分批添加索引

先在測試環境測試&#xff0c;沒問題再上生產環境&#xff0c;避免生產環境數據庫負載過多而崩潰 創建存儲過程 DELIMITER //CREATE PROCEDURE batch_add_index_to_email() BEGINDECLARE done INT DEFAULT FALSE;DECLARE start_id INT DEFAULT 0;DECLARE end_id INT;DECLARE …

貝葉斯優化CNN分類(matlab代碼)

貝葉斯優化CNN分類matlab代碼 數據為Excel分類數據集數據。 數據集劃分為訓練集、驗證集、測試集&#xff0c;比例為8:1:1 數據處理: 在數據加載后&#xff0c;對數據進行了劃分&#xff0c;包括訓練集、驗證集和測試集&#xff0c;這有助于評估模型的泛化能力。 數據標準化…

13.7隊列的實戰(通過鏈表實現)

學個二叉樹&#xff0c;又要用上隊列的代碼&#xff0c;上學期學的隊列忘光光了&#xff0c;這不沒辦法回來復習咯 代碼&#xff1a; #include <stdio.h> #include <stdlib.h>typedef int ElemType; typedef struct LinkNode{ElemType data;struct LinkNode *next…

動態規劃(算法競賽、藍橋杯)--樹形DP沒有上司的舞會

1、B站視頻鏈接&#xff1a;E17 樹形DP Luogu P1352 沒有上司的舞會_嗶哩嗶哩_bilibili 題目鏈接&#xff1a;沒有上司的舞會 - 洛谷 #include <bits/stdc.h> using namespace std; const int N6010; int n; int w[N]; vector<int>a[N];//鄰接表 bool fa[N]; int…

011 Linux_線程概念與創建

前言 本文將會向你介紹線程的概念&#xff0c;以及線程是怎么被創建的 線程概念 一、進程是承擔系統資源的基本實體&#xff0c;線程是cpu調度的基本單位 首先&#xff0c;地址空間在邏輯上相當于進程的資源窗口&#xff0c; 每個進程都有這樣一個資源窗口。通過地址空間頁…

工控傳感器選型原則及舉例說明

工控傳感器選型原則及舉例說明 前言選型原則知識儲備光電傳感器接近開關和行程開關磁性開關模擬量傳感器類型及使用范圍數字量傳感器類型及使用范圍 選型舉例食品包裝箱運輸過程中的檢測有無倉庫提升伺服的極限位檢測產品高度檢測 前言 這里僅以數字量和模擬量信號的傳感器舉例…

Vue源碼系列講解——實例方法篇【二】(事件相關方法)

目錄 0.前言 1. vm.$on 1.1 用法回顧 1.2 內部原理 2. vm.$emit 2.1 用法回顧 2.2 內部原理 3. vm.$off 3.1 用法回顧 3.2 內部原理 4. vm.$once 4.1 用法回顧 4.2 內部原理 0.前言 與事件相關的實例方法有4個&#xff0c;分別是vm.$on、vm.$emit、vm.$off和vm.$o…