Linux云計算訓練營筆記day08(MySQL數據庫)

Linux云計算訓練營筆記day08(MySQL數據庫)

目錄

  • Linux云計算訓練營筆記day08(MySQL數據庫)
    • 數據準備
    • 修改更新update
    • 刪除delete
    • 數據類型
      • 1.整數類型
      • 2.浮點數類型(小數)
      • 3.字符類型
      • 4.日期
      • 5.枚舉: 表頭的值必須在列舉的值里選擇
      • 拷貝表
        • 復制表頭和數據
        • 只復制表頭不復制數據
    • 約束條件
      • 約束種類
      • 主鍵
      • 自增
      • 非空約束
      • 唯一約束
      • 檢查約束

數據準備

– Active: 1747188627686@@127.0.0.1@3306@gongli

CREATE DATABASE gongli CHARSET=utf8;
use gongli;
CREATE Table user(id int,name VARCHAR(15),age int
);
INSERT INTO user VALUES(1,"張三",18);
INSERT INTO user VALUES(2,"李四",30);
INSERT INTO user VALUES(3,"王五",40);

修改更新update

update 表名 set 字段=值 where 條件

where中常用的基礎條件= > >= < <= <>(不等于)

-- 1.把張三的名字修改為韓立  ctrl + /
UPDATE user set name="韓立" where name="張三";
-- 2.把id為2的名字修改為王林
UPDATE user set name="王林" where id=2;
-- 3.同時修改多個值
UPDATE user set name="蕭炎", age=25 where id=3;

刪除delete

刪除 delete 用于刪除表中的記錄
delete from 表名 where 條件

-- 刪除id大于等于3的數據
DELETE from user where id>=3;
DELETE from user where name="王林";
-- 把表中所有的數據都刪除, 表還存在     
DELETE from user;
-- 顯示當前庫中的所有表
SHOW TABLES;
-- 刪除user表  把表中所有的數據都刪除, 表也不存在
DROP TABLE user;
-- 查詢所有數據
SELECT * from user;

總結:
insert 向表中插入數據
update 修改表中的數據
delete 刪除表中的數據

-- 1)創建數據庫nsd,字符集使用utf8
CREATE DATABASE nsd CHARSET=utf8;
-- 2)創建表userinfo,字段有id(整數類型,長度為3) name字段(字符串類型) 
--                   money(整數類型,長度為6)  age字段(整數類型,長度為3)
use nsd;
CREATE TABLE userinfo(id int(3),name VARCHAR(18),money int(6),age int(3)
);
-- 3)修改表名為user
RENAME TABLE userinfo to user; 
-- 4)向表中插入數據 1 元瑤  8000   28     2 李木婉 10000  30
INSERT INTO user VALUES(1,"元瑤",8000,28),(2,"李木婉",10000,30);
-- 5)修改元瑤的年齡為35歲
UPDATE user set age=35 where name="元瑤";
-- 6)修改年齡小于35歲的價格為5000
UPDATE user set money=5000 where age<35;
SELECT * from user;
-- 7)刪除價格為5000的信息
DELETE from user where money=5000;
-- 8)刪除表
DROP TABLE user;
-- 9)刪除數據庫
DROP DATABASE nsd;
show DATABASEs;

數據類型

在數據庫中每一張表的每一個字段都要指定數據類型以確保可以正確的保存對應的數據

1.整數類型

TINYINT (-128,127)
SMALLINT (-32 768,32 767)
INT (-2 147 483 648,2 147 483 647) 13049306482
BIGINT (-9,223,372,036,854,775,808,9 223 372 036 854 775 807)

CREATE Table test1(id int,phone bigint
);
INSERT into test1 VALUES(1, 13049306482);

2.浮點數類型(小數)

FLOAT 單精度
DOUBLE 雙精度
DOUBLE(m,n): m和n都是一個整數,m用于表示數字的總位數,n表示小數的位數,m包含n
double(7,4): 一共有7位數字,其中4位是小數,最大值是999.9999

create table person(age TINYINT(3), salary DOUBLE(7,2)   
);
desc person;
-- TINYINT的范圍是-128 ~~ 127, 取值不能超過,超范圍會報錯
INSERT into person VALUES(99,500.00);
-- 總共是7位.小數點保留2位,最大值是99999.99
INSERT into person VALUES(99,99999.99); 
-- 插入小數時,如果精度超多了最大范圍,會四舍五入
INSERT into person VALUES(99, 99999.678);
-- INSERT into person VALUES(99, 99999.996); 四舍五入后超過了范圍也會報錯
select * from person;
CREATE Table t1(id INT,age TINYINT
);
desc t1;

3.字符類型

char(n) 定長字符串,無論實際保存的字符是多少,該字段一定占用字段指定長度的字符兩,不足部分補充空格
n是一個數字,最大長度是255
缺點:磁盤空間有所浪費 優點:磁盤空間占用長度是固定的,查詢效率高

varchar(n)變成字符串,磁盤占用量由實際保存的數據決定(用多少占多少)
n是一個數字,最大長度是65535
缺點:查詢效率慢一點 優點:磁盤空間沒有浪費

如果超出字符的個數會報錯

CREATE DATABASE tedu1 CHARSET=utf8;
use tedu1;
CREATE Table user(id int,name VARCHAR(3),email VARCHAR(15),city char(10)
);
-- 如果超出字符的個數會報錯
INSERT INTO user VALUES(1, "唐三", "59361882@qq.com");
INSERT INTO user VALUES(12, "唐小舞", "59361882@qq.com");
SELECT * from user;
drop table user;

4.日期

DATE(僅日期,格式YYYY-MM-DD) 年月日 19991117
TIME(時間或時間間隔,格式HH:MM:SS) 時分秒
DATETIME(日期+時間,范圍1000-9999年) 年月日時分秒
YEAR(1字節,存儲年份) 年

CREATE TABLE s1(姓名 CHAR(10),生日 DATE,出生年份 YEAR,家庭聚會 DATETIME,聚會地點 VARCHAR(10),上班時間 TIME
);
INSERT INTO s1 VALUES("秦塵",19991117,1999,20250514180000,"東門大橋",090000);
INSERT INTO s1 VALUES("林楓","2000-11-17","2000","2025-05-14 19:00:00","春熙路","10:00:00");
SELECT * from s1;

5.枚舉: 表頭的值必須在列舉的值里選擇

enum(“男”,“女”) 只能選一個
set(“吃”,“喝”,“玩”) 可以選多個

CREATE Table s2(id int,name CHAR(5),sex  ENUM("男","女","人妖"),love SET("美杜莎","古薰兒","小醫仙","云韻","納蘭嫣然")
);
INSERT INTO s2 VALUES(1,"蕭炎","男","美杜莎,古薰兒");
INSERT INTO s2 VALUES(2,"蕭蕭","女","美杜莎");
INSERT INTO s2 VALUES(NULL,"蕭蕭","女","美杜莎");
SELECT * from s2;
desc s2;
show TABLES;

拷貝表

CREATE Table s3 select * from s2; 復制表頭和數據

復制表頭和數據
CREATE Table s3 select * from s2;
SELECT * from s3;
只復制表頭不復制數據

CREATE TABLE s4 like s2; 只復制表頭不復制數據

CREATE TABLE s4 like s2;
SELECT * from s4;

約束條件

給表添加特點的約束條件,只有滿足該約束添加的操作才可以進行,否則數據庫直接拒絕

約束種類

1)主鍵約束
2)非空約束
3)唯一約束
4)外鍵約束
5)檢查約束

主鍵

主鍵: 主鍵字段的值用來唯一表示該表中的一條記錄
主鍵必須是 非空 且 唯一
非空: 表中的每條記錄都要有值
唯一: 表中的每條記錄的值不可以重復
PRIMARY KEY
通常主鍵字段的名為ID

CREATE Table t3(id INT PRIMARY KEY,name VARCHAR(10),age INT(3)
);
-- 主鍵 PRIMARY KEY 非空 唯一
INSERT INTO t3 VALUES(1,"張三",18),(2,"李四",20);
INSERT INTO t3 VALUES(NULL,"王五",18); --主鍵不能插入空值, 也不能插入重復的id
-- INSERT INTO t3(name,age) VALUES("小醫仙",18); 插入數據時不能忽略主鍵字段, 除非自增
-- UPDATE t3 set id=1 where name="李四";  修改的時候,不可以把重復的值更新到主鍵上
-- UPDATE t3 SET id=NULL WHERE name="李四";  修改的時候,不可以把NULL更新到主鍵上
SELECT * from t3;

自增

具有主鍵約束的字段都會為其添加自增,自增是數據庫為字段生成值的一種機制
AUTO_INCREMENT 自增
id INT PRIMARY KEY AUTO_INCREMENT

CREATE Table t4(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10),age INT(3)
);INSERT INTO t4(name,age) VALUES("蕭炎",30);
INSERT INTO t4(name,age) VALUES("王林",25);SELECT * from t4;desc t4;desc t3;
-- 給已有的主鍵字段添加 自增
ALTER Table t3 CHANGE id id int AUTO_INCREMENT;
desc s2;
-- 給已有的字段添加 主鍵 和 自增
ALTER Table s2 CHANGE id id int PRIMARY KEY AUTO_INCREMENT;

非空約束

NOT NULL,當字段添加非空約束后,字段的值不能為NULL
一張表可以有多個字段為非空約束

CREATE TABLE t5(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10) NOT NULL,age INT(3)
);INSERT INTO t5 VALUES(1,"王林",28);
-- INSERT INTO t5(age) VALUES(30); 插入值的時候NULL 不能為空
INSERT INTO t5(name) VALUES("李倩梅");
INSERT INTO t5(name,年齡) VALUES("王林",35);desc t5;
SELECT * from t5;DELETE FROM t5 WHERE id=2; --刪除id為2的數據
--  在已經存在的表中添加非空約束
ALTER Table t5 CHANGE age age int(3) NOT NULL;
ALTER Table t5 CHANGE age 年齡 INT(3) NOT NULL; -- 修改字段名

唯一約束

UNIQUE 要求對應字段在整張表中的值是不可以重復的,一張表可以有多個字段添加唯一約束

CREATE Table t6(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10) UNIQUE,age INT(3) NOT NULL
);INSERT INTO t6(name,age) VALUES("蕭炎",25);
-- UNIQUE 唯一約束 可以插入NULL值
INSERT INTO t6(name,age) VALUES(NULL,30);
-- NULL是不不存在的值,所以不存在重復的意思
INSERT INTO t6(name,age) VALUES(null,30);SELECT * from t6;
desc t6;
-- 修改字段不能為空 并且 唯一
ALTER Table t6 CHANGE name name VARCHAR(10) NOT NULL UNIQUE;
DELETE FROM t6 WHERE id>=3;
-- 若指定唯一約束時,會將非空約束取消
ALTER Table t6 CHANGE age age INT(3) UNIQUE;

檢查約束

CHECK 該約束允許我們自定義約束條件,只有滿足該條件的操作才可以進行

CREATE Table t7(id int PRIMARY KEY AUTO_INCREMENT,name VARCHAR(10),age int(3) CHECK(age>0 and age<110)
);
INSERT INTO t7 VALUES(1,"元瑤",101);
INSERT INTO t7 VALUES(2,"韓立",3);
INSERT INTO t7(age) VALUES(7);
INSERT INTO t7(age) VALUES(8);
INSERT INTO t7(age) VALUES(9);SELECT * from t7;

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

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

相關文章

致遠OA人事標準模塊功能簡介【附應用包百度網盤下載地址,官方售價4W】

人事管理應用&#xff0c;圍繞崗位配置、招聘管理、員工檔案、入轉調離、員工自助申報、數據信息管理等人力資源管理關鍵業務&#xff0c;構建全員可參與的人事工作協同平臺&#xff0c;讓人事從繁雜瑣碎的事務中解脫出來&#xff0c;高質高效工作&#xff0c;讓管理層清楚掌握…

數字孿生工廠實戰指南:基于Unreal Engine/Omniverse的虛實同步系統開發

引言&#xff1a;工業元宇宙的基石技術 在智能制造2025與工業元宇宙的交匯點&#xff0c;數字孿生技術正重塑傳統制造業。本文將手把手指導您構建基于Unreal Engine 5.4與NVIDIA Omniverse的實時數字孿生工廠系統&#xff0c;集成Kafka實現毫秒級虛實同步&#xff0c;最終交付…

【向量模型 + HNSW 參數如何選擇】

目錄 一、embedding_function&#xff08;向量模型&#xff09; 可選方式 選型建議 二、HNSW 參數選擇&#xff08;核心影響搜索速度與準確率&#xff09; 2.1 參數解釋和推薦值 2.2 配置模板參考 1、推薦默認配置&#xff08;適合大多數項目&#xff09;&#xff1a; 2…

fpga系列 HDL : Microchip FPGA開發軟件 Libero Soc 安裝 license申請

啟動 注冊賬號&#xff1a;https://login.microchip.com/申請免費許可&#xff1a;https://www.microchipdirect.com/fpga-software-products C:\Windows\System32>vol驅動器 C 中的卷是 Windows卷的序列號是 ****-****為“D:\Microsemi\License.dat”創建環境變量“LM_LICE…

【C++】解析C++面向對象三要素:封裝、繼承與多態實現機制

解析C面向對象三要素&#xff1a;封裝、繼承與多態實現機制 1. 面向對象設計基石2. 封裝&#xff1a;數據守衛者2.1 訪問控制實現2.2 封裝優勢 3. 繼承&#xff1a;代碼復用藝術3.1 繼承的核心作用3.2 繼承類型對比3.3 典型應用場景3.4 構造函數與析構函數處理3.4.1 構造順序控…

Python并發編程:開啟性能優化的大門(7/10)

1.引言 在當今數字化時代&#xff0c;Python 已成為編程領域中一顆璀璨的明星&#xff0c;占據著編程語言排行榜的榜首。無論是數據科學、人工智能&#xff0c;還是 Web 開發、自動化腳本編寫&#xff0c;Python 都以其簡潔的語法、豐富的庫和強大的功能&#xff0c;贏得了廣大…

數學復習筆記 10

前言 我覺得數學的高分乃至滿分屬于那些&#xff0c;聰明&#xff0c;堅韌&#xff0c;勇敢&#xff0c;細致的人。我非常慚愧自己不是這樣的人&#xff0c;我在生活中發現了這樣的同學&#xff0c;和他們交流的時候我常常感到汗流浹背&#xff0c;因為他們非常扎實的基礎知識…

深入理解 Webpack 核心機制與編譯流程

&#x1f916; 作者簡介&#xff1a;水煮白菜王&#xff0c;一位前端勸退師 &#x1f47b; &#x1f440; 文章專欄&#xff1a; 前端專欄 &#xff0c;記錄一下平時在博客寫作中&#xff0c;總結出的一些開發技巧和知識歸納總結?。 感謝支持&#x1f495;&#x1f495;&#…

概率相關問題

問題匯總 1. 貝葉斯定理&#xff08;貝葉斯公式和全概率公式&#xff09;2. 概率題2.1 隨機發生器的概率為1/2 1. 貝葉斯定理&#xff08;貝葉斯公式和全概率公式&#xff09; 定義&#xff1a;在信息和條件有限的情況下&#xff0c;基于過去的數據&#xff0c;通過動態調整的…

【系統架構師】2025論文《WEB系統性能優化技術》

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一個正在變禿、變強的文藝傾年。 &#x1f514;本文分享【系統架構師】2025論文《系統可靠性設計》&#xff0c;期待與你一同探索、學習、進步&#xff0c;一起卷起來叭&#xff01; 目錄 項目介紹背景介紹系統模塊技術棧性能…

ADS1220高精度ADC(TI)——應用 源碼

文章目錄 德州儀器ADS1220概述資料引腳&封裝布線寄存器配置寄存器0&#xff08;00h&#xff09;配置寄存器1&#xff08;01h&#xff09;配置寄存器2&#xff08;02h&#xff09;配置寄存器3&#xff08;03h&#xff09; 連續轉換流程驅動源碼ads1220.cads1220.h 德州儀器A…

Uniapp 安卓實現訊飛語音聽寫(復制即用)

在移動應用開發中&#xff0c;語音交互功能能夠極大提升用戶體驗&#xff0c;讓操作更加便捷自然。訊飛語音聽寫技術憑借其高準確率和穩定性&#xff0c;成為眾多開發者的選擇。本文將詳細介紹如何在 Uniapp 項目中&#xff0c;實現安卓端的訊飛語音聽寫功能&#xff0c;幫助你…

【golang】DNS 資源記錄(RR)接口

Go 中 miekg/dns 包對 DNS 資源記錄&#xff08;RR&#xff09;接口 的定義&#xff1a; type RR interface {Header() *RR_HeaderString() stringcopy() RRlen(off int, compression map[string]struct{}) intpack(...)unpack(...)parse(...)isDuplicate(r2 RR) bool }這個接…

16.2 VDMA視頻轉發實驗之模擬源

文章目錄 1 實驗任務2 系統框圖3 硬件設計3.1 IP核配置3.2 注意事項3.3 自定義IP核源碼 4 軟件設計4.1 注意事項4.2 工程源碼4.2.1 main.c文件 1 實驗任務 基于14.1&#xff0c;相較于16.1&#xff0c;使用自定義IP核vid_gen_motion替換Xilinx TPG IP核。 2 系統框圖 基于14…

深度學習之用CelebA_Spoof數據集搭建一個活體檢測-訓練好的模型用MNN來推理

一、模型轉換準備 首先確保已完成PyTorch到ONNX的轉換&#xff1a;深度學習之用CelebA_Spoof數據集搭建活體檢測系統&#xff1a;模型驗證與測試。這里有將PyTorch到ONNX格式的模型轉換。 二、ONNX轉MNN 使用MNN轉換工具進行格式轉換&#xff1a;具體的編譯過程可以參考MNN的…

JVM學習專題(一)類加載器與雙親委派

目錄 1、JVM加載運行全過程梳理 2、JVM Hotspot底層 3、war包、jar包如何加載 4、類加載器 我們來查看一下getLauncher&#xff1a; 1.我們先查看getExtClassLoader() 2、再來看看getAppClassLoader(extcl) 5、雙親委派機制 1.職責明確&#xff0c;路徑隔離?&#xff…

部署安裝gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目錄 ?編輯 實驗環境 所需軟件 實驗開始 安裝部署gitlab171.配置清華源倉庫&#xff08;版本高的系統無需做&#xff09;vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下載包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…

使用LoRA微調Qwen2.5-VL-7B-Instruct完成電氣主接線圖識別

使用LoRA微調Qwen2.5-VL-7B-Instruct完成電氣主接線圖識別 動機 任務適配需求 Qwen2.5-VL在視覺理解方面表現優異&#xff0c;但電氣主接線圖識別需要特定領域的結構化輸出能力&#xff08;如設備參數提取、拓撲關系解析&#xff09;。微調可增強模型對專業符號&#xff08;如…

系統集成項目管理工程師學習筆記

第九章 項目管理概論 1、項目基本要素 項目基礎 項目是為創造獨特的產品、服務或成果而進行的臨時性工作。 項目具有臨時性、獨特性、漸進明細的特點。項目的“臨時性”是指項目只有明確的起點和終點。“臨時性”并一定意味著項目的持續時間短。 項目可宣告結束的情況&…

Secs/Gem第七講(基于secs4net項目的ChatGpt介紹)

好的&#xff0c;那我們現在進入&#xff1a; 第七講&#xff1a;掉電重連后&#xff0c;為什么設備不再上報事件&#xff1f;——持久化與自動恢復的系統設計 關鍵詞&#xff1a;掉電恢復、狀態重建、初始化流程、SecsMessage 緩存機制、自動重連、事件再注冊 本講目標 你將理…