傳智播客--MySQL

DAY01 MySQL入門

第一章 數據庫介紹

1.1 什么是數據庫

數據存儲的倉庫,本質上是一個文件系統,作用:方便管理數據的。

1.2 數據庫管理系統

數據庫管理系統(DataBase Management System, DBMS):指一種操作和管理數據庫的大型軟件。
數據庫管理系統—>MySQL軟件—>多個倉庫—>多張表—>多條記錄(數據)

在這里插入圖片描述
在這里插入圖片描述

1.3 實體(java類)和表關系

在這里插入圖片描述

1.4 常見關系型數據庫

1.MYSQL:開源免費的數據庫,小型的數據庫.已經被Oracle收購了,MySQL6.x版本(商業、社區)也開始收費。2.Oralce:收費的大型數據庫,Oracle公司的產品你。Oracle收購SUN公司,收購MySQL。3.DB2:IBM公司的數據庫產品,收費的。常應用在銀行系統中。4.OceanBase:阿里的大型數據庫,性能已超越Oracle全球第一。5.SQLServer:Microsoft 公司收費的中型的數據庫。C#、.net等語言常使用。6.SyBase:已經淡出歷史舞臺。提供了一個非常專業數據建模的工具PowerDesigner。7.SQLite:嵌入式的小型數據庫,應用在手機端。

第二章 MySQL安裝和使用

2.1 安裝

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2.2 配置

在這里插入圖片描述
在這里插入圖片描述

第三章 SQL

3.1 概述

什么是SQL

結構化查詢語言(Structured Query Language)

通過SQL語言完成數據庫操作。實現對數據庫中的對象(數據庫、數據庫表、數據庫中數據等)進行增刪改查。

C:create 創建

R:retrieve(read)檢索、查詢

U:update 修改

D:delete 刪除

SQL方言

SQL是一套標準,所有的數據庫廠商都實現了此標準;但是各自廠商在此標準上增加了特有的語句,這部分內容我們成為方言。

舉個例子:MySQL方言注釋 #

我們在學習sql語句時,同時要關注每一家數據庫特有的方言。

SQL書寫規范
1. sql語句可以單行或多行書寫,最后以分號結尾2.sql語句(在windows平臺下)不區分大小寫,建議關鍵字大寫SELECT * FROM student;3.注釋單行-- 所有數據庫廠商支持# 僅mysql廠商支持(方言)多行/* 注釋內容 */		
SQL分類
1. DDL(Data Definition Language)數據定義語言(命令了解,掌握圖形化工具操作)用來定義數據庫對象:數據庫,表,列等。關鍵字:create(創建),drop(刪除),alter(修改)等2. DML(Data Manipulation Language)數據操作語言(重點)用來對數據庫中表的數據進行增刪改。關鍵字:insert(插入),delete(刪除),update(修改)等3. DQL(Data Query Language)數據查詢語言(特別重要)用來查詢數據庫中表的記錄(數據)。關鍵字:select(查詢),from(從哪張表查詢),where(指定查詢條件)等4. DCL(Data Control Language)數據控制語言(了解中的了解)由DBA(數據庫管理員)完成DCL用來定義數據庫的訪問權限和安全級別,以及創建用戶。關鍵字:grant(授權),revoke(撤銷權限)等5. TCL(Transaction Control Language)事務控制語言用于控制數據庫的事務操作,關鍵字:commit,savepoint,rollback等

第四章 SQL基礎操作

4.1 DDL

  • 進入公司后,數據庫和表只創建一次,通常有DBA數據庫管理員操作 DataBase Adminisitrator
  • 而且我一會講圖形化工具,可以簡化這里面的代碼(10分鐘內搞定)
操作數據庫
  • 創建庫、顯示庫、修改庫、刪除庫操作
    C:創建
1、直接創建數據庫【掌握】語法:create  database 數據庫名稱;實例:create database day01;
2、創建數據庫并指定字符【了解】語法:create database 數據庫名稱 charset 字符集名稱;實例:create database day01_1 charset gbk;

R:查詢

1、查看所有數據庫語法:show databases;
2、查看建庫語句語法:show create database 數據庫名稱;實例:show create database day01;

在這里插入圖片描述
U:修改

1、修改數據庫字符集語法:alter database 數據庫名稱 charset  新字符集;實例:alter database day01_1 charset utf8;

D:刪除

1、直接刪除數據庫語法:drop database 數據庫名稱;實例:drop database day01_1;

使用數據庫

1、進入/切換某一個具體的數據庫語法:use 數據庫名稱;實例:use day01;
2、查看當前所在哪個數據庫中語法:select database();

在這里插入圖片描述

操作表
  • 創建表、顯示表、修改表、刪除表操作

C:創建

1. 創建表(掌握)語法:CREATE TABLE 表名(列名1 數據類型,列名2 數據類型,列名3 數據類型,...);實例:CREATE TABLE student(id INT,name VARCHAR(32));
2. 常用數據類型(平時去寫會用就行)int:整形float:浮點型double:浮點型decimal:浮點型(保留精準度)decimal(m,n) 指定范圍m 總長度n 小數長度例如:decimal(5,2)999.99 最大值0.01 最小值varchar:字符型varchar(n) 指定容納多少個字符 1-65535 包含字母,符號,漢字text:文本型date:日期類型datetime:日期時間類型3. 克隆表創建表時,可以快速指定另一個張表的結構語法:create table 新表名 like 舊表明;實例:create table stu like student;

R:查詢

1. 查看所有表語法:show tables;2. 查看建表語句語法:show create table 表名;實例:show create table stuent;3. 查看表結構    	語法:desc 表名稱;實例:desc student;

U:修改

1. 添加一列語法:alter table 表名 add 列表 數據類型;實例:alter table stu add jieshao varchar(50);2. 修改類型語法:alter table 表名 modify 列表 數據類型;實例:alter table stu modify jieshao varchar(100);3. 修改列名和類型語法:alter table 表明 change 舊列表 新列表 新類型;實例:alter table stu change jieshao intro varchar(100);4. 刪除指定列語法:alter table 表名 drop 列表;實例:alter table stu drop intro;5. 修改表字符集語法:alter table 表名 charset 字符集;實例:alter table stu charset gbk;6. 修改表名字語法:rename table 舊名稱 to 新名稱;實例:rename table stu to stu1;

D:刪除

1. 直接刪除表語法:drop table 表明;實例:drop table stu;
圖形化工具

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.2 DML

添加記錄
1. 語法:insert into 表名(列名1,列名2 ...) values(值1,值2...);2. 注意:列名和值的數據類型要對應字符串類型可以使用單雙引號,推薦單引號字符串可以插入一切(任意)類型,MySQL底層實現了隱式轉換個別列名字段名如果跟關鍵字沖突了,我們可以使用反引號包裹起來例如:`name`3. 練習:-- 插入一條學院信息INSERT INTO student(id,`name`) VALUE(1,'張三');-- 指定部分列名INSERT INTO studnt(id) VALUES(2);-- 省略表列表名 前提:values中為所有列賦值INSERT INTO student VALUES(3,'劉備');-- 如下語法錯誤INSERT INTO student VALUES(4);--批量插入數據INSERT INTO student(id,`name`) VALUES(5,'趙云'),(6,'諸葛亮');

蠕蟲復制

作用:將一張表的記錄,快速復制到另外一張表應用場景:數據的遷移需求:創建一張stu新表,表結構與student一致,實現數據的快速遷移要求:二張表結構相同步驟:1. 克隆表create table stu like student;2. 數據遷移-- 查詢student表中的所有數據SELECT * FROM student;-- 將student表的查詢結果插入到stu表INSERT INTO stu SELECT * FROM student;
修改記錄
1. 語法:update 表名 set 列1=值1,列2=值2 ... [where 條件]注意:where條件可以不指定,如果沒有指定,就是修改所有記錄mysql語法中,如果講師通過中括號括起來內容,代表該內容可以不寫2. 實例:-- 修改名稱為'zhangfei'UPDATE stu SET `name`='zhangfei';-- 指定where條件UPDATE student SET `name`='zhangfei' WHERE id=1;
刪除記錄
1. 語法:delete from 表名 [where條件]2. 解釋:[] 中的語法內容可以不寫,如果沒有寫where條件,刪除所有3. 實例:-- 刪除數據DELETE FROM student WHERE id=2;4. 摧毀表,重構表先把表刪除,再創建一個相同結構的新表truncate table 表名;-- 刪除整張表數據DELETE FROM stu; -- 一條條的刪除,最終刪除所有數據TRUNCATE TABLE stu; -- 刪除整張表后,再重新創建表	
知識小結
  • 新增:insert into 表名
  • 修改:updat 表名 set
  • 刪除:delete from 表名

4.3 DQL簡單查詢(檢索)

導入數據

-- 創建表
create table student1(id int,name varchar(20),chinese double,english double,math double
);
-- 插入記錄
insert into student1(id,name,chinese,english,math) values(1,'tom',89,78,90);
insert into student1(id,name,chinese,english,math) values(2,'jack',67,98,56);
insert into student1(id,name,chinese,english,math) values(3,'jerry',87,78,77);
insert into student1(id,name,chinese,english,math) values(4,'lucy',88,NULL,90);
insert into student1(id,name,chinese,english,math) values(5,'james',82,84,77);
insert into student1(id,name,chinese,english,math) values(6,'jack',55,85,45);
insert into student1(id,name,chinese,english,math) values(7,'tom',89,65,30);

語法

1. 格式:-- 查詢展示所有列:SELECT * FROM 表名;-- 查詢展示指定列:SELECT 列1, 列2, ... FROM 表名;2. 去重關鍵字 DISTINCT:用于去除重復記錄SELECT DISTINCT 列名 FROM 表名;3. 查詢結果可進行數學運算,不影響原表記錄4. NULL 參與數學運算結果仍為 NULL,可使用 IFNULL() 函數處理:IFNULL(列名, 默認值) 若該列值為 NULL,則返回默認值(如:IFNULL(english, 0))。5. 設置別名(AS 可省略):SELECT 列名 [AS] 列別名 FROM 表名 [AS] 表別名;注意:AS 關鍵字在別名設置中可以省略。

練習

-- 查詢表中所有學生的信息  
SELECT * FROM student1;  -- 查詢表中所有學生的姓名和對應的語文成績  
SELECT `name`, chinese FROM student1;  -- 查詢表中學生姓名(去重)  
SELECT DISTINCT `name` FROM student1;  -- 在所有學生數學分數上加10分特長分  
SELECT id, `name`, math + 10 FROM student1;  -- 統計每個學生的總分  
SELECT id, `name`, chinese + IFNULL(english, 0) + math FROM student1;  -- 使用別名表示學生總分  
SELECT id, `name`, chinese + IFNULL(english, 0) + math AS '總分' FROM student1;  

4.4 DQL條件查詢

導入數據

-- 創建表
CREATE TABLE student2 (id int,name varchar(20),age int,sex varchar(5),address varchar(100),math int,english int
);-- 插入記錄
INSERT INTO student2(id,NAME,age,sex,address,math,english) VALUES
(1,'馬云',55,'男','杭州',66,78),
(2,'馬化騰',45,'女','深圳',98,87),
(3,'馬景濤',55,'男','香港',56,77),
(4,'柳巖',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'劉德華',57,'男','香港',99,99),
(7,'馬德',22,'女','香港',99,99),
(8,'德瑪西亞',18,'男','南京',56,65);

在這里插入圖片描述
練習

# SQL 練習 - 關系運算符
-- 查詢math分數大于80分的學生
SELECT * FROM student2 WHERE math > 80;
-- 查詢english分數小于或等于80分的學生  
SELECT * FROM student2 WHERE english <= 80;
-- 查詢age等于20歲的學生
SELECT * FROM student2 WHERE age = 20;
-- 查詢age不等于20歲的學生
SELECT * FROM student2 WHERE age != 20;# SQL 練習 - 邏輯運算符
-- 查詢age大于35且性別為男的學生(兩個條件同時滿足)
SELECT * FROM student2 WHERE age > 35 AND sex = '男';
-- 查詢age大于35或性別為男的學生(兩個條件其中一個滿足)
SELECT * FROM student2 WHERE age > 35 OR sex = '男';
-- 查詢id是1或3或5的學生
SELECT * FROM student2 WHERE id = 1 OR id = 3 OR id = 5;
-- in關鍵字
-- 再次查詢id是1或3或5的學生
SELECT * FROM student2 WHERE id IN (1, 3, 5);
-- 查詢id不是1或3或5的學生
SELECT * FROM student2 WHERE id NOT IN (1, 3, 5);
-- 查詢english成績大于等于77,且小于等于87的學生
SELECT * FROM student2 WHERE english BETWEEN 77 AND 87;
-- 查詢英語成績為null的學生
SELECT * FROM student2 WHERE english IS NULL;# SQL 練習 - like模糊匹配
-- 查詢姓馬的學生
SELECT * FROM student2 WHERE name LIKE '馬%';
-- 查詢姓名中包含'德'字的學生
SELECT * FROM student2 WHERE name LIKE '%德%';
-- 查詢姓名,且姓名有三個字的學生
SELECT * FROM student2 WHERE name LIKE '馬__';

DAY02 查詢&約束&多表

回顧

1、數據庫介紹  數據庫存儲的倉庫,是文件系統。數據庫中的數據都會持久化到磁盤中。  數據庫管理系統(DBMS)---> mysql軟件 ---> 數據庫 ---> 多張表 ---> 多條記錄(多條數據)2、安裝與啟動mysql  參照 mysql安裝教程一步步操作即可  登錄  mysql [-h主機IP] -u用戶名 -p密碼  退出  exit 或者 quit  3、SQL語句  結構化查詢語言,作用:通過SQL完成數據庫對象的CRUD(增刪改查)操作  數據庫方言:例如:mysql可以通過 # 進行單行注釋  DDL:操作數據庫和表 create alter drop  DML:對表中數據進行增刪改操作 insert update delete  DQL:對表中數據進行查詢操作 select from where  DCL:主要進行權限控制 grant  TCL:主要進行事務控制 begin commit rollback4、基本操作  DDL  操作庫  create database 數據庫名稱;  drop database 數據庫名;  use 數據庫名稱; # 切換數據庫  select database(); # 查看當前數據庫操作表create table 表名(列名1 數據類型,列名2 數據類型,...);常操作的一些數據類型:int 整型varchar(長度)datedatetimefloatdoubletext刪除表:drop table 表名;查看表結構:desc 表名;DML (重點)insert into 表名(列名1,列名2...) values(值1,值2...);update 表名 set 列名1=值1,列名2=值2 ... [where條件]delete from 表名 [where條件]DQL (重點)select ... from 表名 [where條件]關系運算: > < = !=邏輯運算: and or notin關鍵字between ... and ... 取值范圍條件空值條件is nullis not null

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

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

相關文章

[Dify] 實現“多知識庫切換”功能的最佳實踐

在構建知識驅動的問答系統或 AI 助手時,一個常見需求是:根據用戶問題所屬領域或上下文,切換使用不同的知識庫(Knowledge Base, KB)進行檢索。這樣可以提升回答的準確性、減少無關內容干擾,在多業務線或多主題應用中尤其有用。 本文將介紹: 為什么要做知識庫切換 Dify …

Jenkins運維之路(Jenkins流水線改造Day02-2-容器項目)

上篇文章中已經將絕大部分&#xff0c;Jenkins容器項目打包的相關功能改造完成了&#xff0c;這里在對構建部署后的告警類操作進行一些補充1.流水線告警1.1 安裝釘釘插件image-202509151111086851.2 配置釘釘插件image-20250915111235865image-202509151115328291.3 Pipeline釘…

64_基于深度學習的蝴蝶種類檢測識別系統(yolo11、yolov8、yolov5+UI界面+Python項目源碼+模型+標注好的數據集)

目錄 項目介紹&#x1f3af; 功能展示&#x1f31f; 一、環境安裝&#x1f386; 環境配置說明&#x1f4d8; 安裝指南說明&#x1f3a5; 環境安裝教學視頻 &#x1f31f; 二、數據集介紹&#x1f31f; 三、系統環境&#xff08;框架/依賴庫&#xff09;說明&#x1f9f1; 系統環…

N1ctf-2025-PWN-ez_heap近隊容器的禮儀

ez_heap 保護全開 程序邏輯&#xff1a; 讀入0x30的字符串&#xff0c;進行字符串校驗&#xff1a;以冒號為標志split&#xff0c;分成四份。最后輸入字符串形如&#xff1a; xor 0x111111111111111 validate badmin:p64(xor)b:Junior:111111創建0x180的chunk存放note 結構體…

縱深防御實踐:東方隱俠CI/CD安全體系構建全解析

前言:CI/CD安全的必要性 企業上云是近些年的潮流,但是風險如影隨形。之前有家電商平臺出了個大岔子——半夜自動發新版本的時候,因為流程里沒做安全檢查,直接導致系統故障,一天就損失了300多萬。這還不算完,某銀行測試人員通過未授權的自動發布流程把代碼推到了生產環境…

2025年滲透測試面試題總結-71(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 2. 滲透測試流程 & 內網滲透經驗 3. SQL注入報錯利用 4. XSS利用&#xff08;反射型/DOM型&#xff0…

基于Echarts+HTML5可視化數據大屏展示-茶園大數據平臺指揮艙

效果展示&#xff1a;代碼結構&#xff1a;主要代碼實現 index.html布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…

華為網路設備學習-33(BGP協議 八)BGP路由 選路規則

一、目標與背景BGP路由特性&#xff1a;支持豐富的路徑屬性選路規則多樣注&#xff1a;在BGP路由表中最優選&#xff0c;不一定是路由表中的最優選。有可能存在靜態路由或者ospf路由等&#xff0c;其優先級高于BGP路由。二、選路規則概述從1到12&#xff0c;依次對比優先級。一…

深度學習(七):梯度下降

梯度下降&#xff08;Gradient Descent&#xff09;是深度學習中最核心的優化方法之一&#xff0c;它通過迭代更新模型參數&#xff0c;使得損失函數達到最小值&#xff0c;從而訓練出性能良好的神經網絡模型。 基礎原理 損失函數 在深度學習中&#xff0c;損失函數 L(θ) 是衡…

常見巖性分類與油氣勘探意義筆記

常見巖性分類與油氣勘探意義筆記 相關科普視頻可查看【說說巖石的分類-嗶哩嗶哩】 一、巖石基本分類體系 根據成因&#xff0c;自然界巖石可分為三大類&#xff0c;其中沉積巖與油氣勘探關系最為密切&#xff1a; 1. 火成巖&#xff08;巖漿巖&#xff09; 由巖漿冷卻凝固…

【Kubernetes】Tomcat 啟用 Prometheus 監控指標

之前出過一篇文章關于 “自定義監控指標實現業務 HPA 伸縮” &#xff0c;其中使用了 webapp 應用的指標數據&#xff08;JVM&#xff09;&#xff0c;接下來&#xff0c;這篇文章將介紹如何在通過 Tomcat 部署的 webapp 中啟用 Metrics 指標&#xff0c;一起來看看吧&#xf…

JVM 三色標記算法詳解!

目錄1. 什么是三色標記算法&#xff1f;三種顏色及其含義&#xff1a;2. 基礎三色標記算法流程 (非并發)3. 并發場景下的挑戰&#xff1a;一致性問題3.1. 漏標 (Missing Live Object) - 最嚴重的問題3.2. 錯標 (Floating Garbage) - 不那么嚴重的問題4. 屏障機制 (Barrier) - 解…

優化神經網絡模型以提升R2值至0.99的全面方案

優化神經網絡模型以提升R值至0.99的全面方案 1. 問題分析與背景 在深度學習項目中&#xff0c;提升模型的R&#xff08;決定系數&#xff09;值至0.99是一個具有挑戰性的目標&#xff0c;特別是在處理復雜的時間序列數據時。我們的現有模型結合了LSTM層、自注意力機制和MLP處理…

pgNow:一款免費的PostgreSQL監控與性能診斷工具

pgNow 是一款免費的桌面工具&#xff0c;可以為 PostgreSQL 數據庫提供快速集中的監控與性能診斷。 pgNow 不依賴代理&#xff0c;無需任何配置&#xff0c;可以幫助開發者或數據庫管理員&#xff08;DBA&#xff09;直觀地查看數據庫的統計信息和關鍵性能指標。 功能特性 跨平…

深入理解棧與隊列——從原理理解到實戰應用

目錄 一、引言 二、棧&#xff08;Stack&#xff09; 2.1 棧的基本概念 2.2 棧的使用 2.3 棧的模擬實現 2.4 棧的實戰應用 2.4.1 括號匹配 2.4.2 逆波蘭表達式求值 2.4.3 出棧入棧次序匹配 2.4.4 最小棧 三、隊列&#xff08;Queue&#xff09; 3.1 隊列的基本概念 …

用html5寫王者榮耀之王者墳墓的游戲2deepseek版

我將為您創建一個王者榮耀英雄墳墓游戲的提詞器HTML頁面。這個工具將幫助游戲主播或玩家在游戲中快速查看英雄技能、連招順序等信息。設計思路 創建英雄選擇界面實現提詞器顯示區域&#xff0c;可自定義文本內容添加字體大小、滾動速度控制設計符合王者榮耀風格的UI下面是…

輕閱讀:一鍵解決瀏覽器無法預覽Office文檔的實用方案

在日常辦公中&#xff0c;通過瀏覽器直接打開Word、Excel或PPT等文檔時&#xff0c;常遇到“需下載后用本地軟件打開”的困擾&#xff0c;不僅流程繁瑣&#xff0c;還面臨格式兼容、設備存儲不足等問題。輕閱讀&#xff08;QingYueDu&#xff09;作為一款輕量級文件在線預覽工具…

鴻蒙開發實戰項目(六十七):常見組件和容器低代碼開發示例(ArkTS)

本文詳細代碼需訂閱下面專欄獲取(訂閱后私信郵箱+項目名): https://blog.csdn.net/m0_68036862/category_12333038.html 目錄 介紹 環境搭建 代碼結構解讀 創建低代碼工程 低代碼設計界面布局 實現數據動態渲染 手動創建低代碼頁面 介紹 本篇Codelab是基于ArkTS語言的…

MySQL學習筆記04-DML-數據的增刪改

新增數據--insert樣例代碼-- DML : 數據操作語言 -- DML : 插入數據 - insert -- 1. 為 emp 表的 username, password, name, gender, phone 字段插入值 insert into emp (username,password,name,gender,phone) values(fei,123456,張飛,1,13888888888);-- 2. 為 emp 表的 所有…

拼多多返利app的服務網格(Service Mesh)實踐:Istio在導購系統中的應用

拼多多返利app的服務網格&#xff08;Service Mesh&#xff09;實踐&#xff1a;Istio在導購系統中的應用 大家好&#xff0c;我是阿可&#xff0c;微賺淘客系統及省賺客APP創始人&#xff0c;是個冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在拼多多返利app的…