數據庫的存儲引擎,數據類型,約束條件,嚴格模式

【一】存儲引擎
1.什么是存儲引擎存儲引擎可以理解為處理數據的不同方式
2.查看存儲引擎show engines;
3.須知的引擎MyISAM5.5之前版本MySQL默認的存儲引擎特點:存取數據的速度快 但是功能很少 安全性較低速度快因為自帶索引InnoDB5.5之后版本MySQL默認的存儲引擎特點:有諸多功能 安全性較高 存取速度沒有MyISAM快BlackHole(吃數據的黑洞)任何寫入的數據都會立刻消失(類似于垃圾回收處理站)Memory(比作是緩存)以內存作為數據存取地 速度快但是斷電立刻丟失 
4.自定義選擇存儲引擎語句create table t1(id int)engine=myisam;
【二】各個引擎的特點
1.innodb引擎frm : 存儲的表結構ibd : 存儲表的數據特點:存儲數據持久化存儲退出也存在
2.myisam引擎frm : 存儲的表結構MYD : 表的數據MYI : 表的索引結構特點:存儲數據持久化存儲,退出也存在
3.blackhole引擎frm :存儲的表結構特點:存儲數據不會有任何反應,不會存儲任何數據
4.memory引擎frm:存儲的表結構特點就是基于內存存儲,只要服務重啟,所有數據丟失
【三】創建表的完整語法
create table 表名(字段名1 字段類型(數字) 約束條件,字段名2 字段類型(數字) 約束條件,字段名3 字段類型(數字) 約束條件
);
1.字段名和字段類型是必須的
2.數字和約束條件是可選的
3.約束條件可以寫多個 空格隔開即可(后面詳細講解)字段名1 字段類型(數字) 約束條件1 約束條件2 約束條件3
4.最后一行字段結尾不能加逗號極其容易被忽略!!!
【四】約束條件(null)
約束條件之為空和不為空---》意思為這個字段的數據可以空還是不空
【五】嚴格模式
它要求數據庫在執行某些操作時遵循更嚴格的規則和限制
sql_mode(嚴格模式)
show variables like "%mode";
show variables like "_mode";%匹配任意個字符_只能匹配單個字符
-- 臨時修改 : 退出客戶端重新連接,修改后嚴格模式還是原來的
set session sql_mode = 'STRICT_TRANS_TABLES'
-- 永久修改 : 退出客戶端重新連接,嚴格模式修改會一直生效
set global sql_mode = 'STRICT_TRANS_TABLES'
【六】數據類型
【1】整型
整數類型字節無符號數的取值范圍有符號數的取值范圍
TINYINT10~255-128~127
SMALLINT20~65535-32768~32767
MEDIUMINT30~16777215-8388608~8388607
INT40~4294967295-2147483648~2147483647
BIGINT80~18446744073709551615-9223372036854774808~9223372036854774807
1.是否有符號 默認情況下是帶符號的
2.超出最大范圍會如何 超出限制只能存最大接受值
3.字段類型后面跟著的寬度只是顯示的寬度int(4)只顯示四位
4.插入的長度是按照誰,當前字段的最大長度進行限制
5.約束條件之 zerofill會左填充0直到滿足我所給的長度,比我所給的長度長只要沒超限制顯示不用填充
【2】浮點型
數據類型字節數取值范圍
FLOAT4-2^128~2 ^128,即-3.40E+38~+3.40E+38
DOUBLE8-2^1024~ 2^1024,即-1.79E+308~1.79E+308
DECIMAL設置位數和精度。65 ~ 30
 ?decimal>double>float
"""
雖然三者精確度有差距 但是具體用哪個應該結合實際情況比如正常業務 使用float足夠如果是高精尖 可以使用decimal
"""
【3】字符
1.char定長,給長度 4 位,超出會報錯,不夠默認用空格補全,前提是嚴格模式開啟
2.varchar變長,給 4 個長度,超過四個直接報錯,有幾個存幾個
比較:
(1)char
缺點:浪費空間
優點:存儲簡單 
直接按照固定的字符存儲數據即可
(2)varchar
優點:節省空間
缺點:存儲麻煩 
存的時候,在真正數據的前面加報頭(表示數據真正大小)
取的時候,需要先讀取報頭,才能讀取真實的數據
【4】日期時間類型
date : 年月日
datetime : 年月日時分秒
time : 時分秒
year : 年份
mysql> create table student(->  id int,->     name varchar(16),->     born_year year,->     birth date,->     study_time time,->     reg_time datetime-> );
insert into student values(1,'dream','2024','2024-5-31','11:11:11','2023-6-30 11:11:11'
);
【5】枚舉和集合類型
枚舉:多選一 用枚舉類型給多個備選項,但是你只能選一個 enum
集合:多選多 用集合類型給多個備選項,但是你能選多個 set
1.枚舉類型 enum:
create table user(id int,name char(16),gender enum('male','female','others')
);
insert into user(id,name,gender) values(1,'dream','male');插數據的時候再枚舉選項中選一個否則會報錯
2.集合類型 set
create table teacher(id int,name varchar(16),gender enum('male','female','others'),hobby set('read books','listen music','play games')
);
insert into teacher values(2,'chimeng','female','read books,listen music'
);
【七】MySQL中有哪些約束條件
1.約束條件之 zerofill會左填充0直到滿足我所給的長度,比我所給的長度長只要沒超限制顯示不用填充
2.null或not null插入的數據是否可以為空
3.DEFAULT(默認約束)為列指定默認值,當插入新記錄時,如果沒有為該列指定值,則使用默認值。
4.UNIQUE(唯一約束),確保列中的所有值都是唯一的。
注意:唯一約束允許NULL值,但最多只能有一個NULL值。
5.PRIMARY KEY(主鍵約束),唯一標識表中的每一行數據,確保主鍵列中的值唯一且不為NULL。
注意:一個表只能有一個主鍵,但主鍵可以由多個列組成(復合主鍵)。
6.FOREIGN KEY(外鍵約束),用于限制兩個表之間的關系,確保從表中的外鍵值在主表中存在。
注意:外鍵約束指向的表必須存在一個對應的主鍵或唯一約束。
7.CHECK(檢查約束),規定一個必須為真的邏輯條件,確保插入到表中的所有數據都滿足這個條件。
注意:MySQL 8.0.16及以后版本開始支持CHECK約束。

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

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

相關文章

工程施工合同無效但竣工交付,應當參照合同關于工程價款的約定計算折價補償款

審判實踐中,對于建設工程施工合同無效但工程竣工并交付使用的,應以何種標準計算折價補償款的問題,認識不一致。【法官會議意見】:建設工程施工合同是承包人進行工程建設、交付工作成果即建設工程并由發包人支付價款的合同。建設工…

httpd目錄顯示亂碼問題

vim /etc/httpd/conf/httpd.conf 在<Directory “/var/www/html”>下添加&#xff1a; IndexOptions CharsetUTF-8重啟httpd: systemctl restart httpd.service還是不好看&#xff0c;調整下顯示寬度&#xff0c;還是這個位置&#xff1a; <Directory “/var/www/ht…

區塊鏈論文速讀A會-ISSTA 2023(2/2)如何檢測DeFi協議中的價格操縱漏洞

Conference&#xff1a;ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) CCF level&#xff1a;CCF A Categories&#xff1a;Software Engineering/System Software/Programming Languages Year&#xff1a;2023 第1~5篇區塊鏈文章 請點擊此…

09視圖,觸發器,事務,存儲過程,函數,流程控制,索引,隔離機制,鎖機制,三大范式

【一】視圖 (1)視圖須知概念 1.什么是視圖&#xff1f; 視圖就是通過查詢得到一張虛擬表&#xff0c;然后保存下來&#xff0c;下次可以直接使用 2.為什么要用視圖&#xff1f; 如果要頻繁操作一張虛擬表(拼表組成)&#xff0c;就可以制作成視圖&#xff0c;后續直接操作 注意…

IDEA 創建springboot項目雜記-更新中

一、工具使用雜記 1、使用maven 創建新springboot項目時&#xff0c;因為https://start.spring.io/ 連接不上項目無法創建。直接把腳手架地址換為國內的 http://start.aliyun.com

田忌賽馬 貪心

本題是更難的那道,一場50 最低為o 第一行一個整數 &#x1d45b;n &#xff0c;表示他們各有幾匹馬&#xff08;兩人擁有的馬的數目相同&#xff09;。第二行 &#x1d45b;n 個整數&#xff0c;每個整數都代表田忌的某匹馬的速度值&#xff08;0≤0≤ 速度值 ≤100≤1…

Python】從文本字符串中提取數字、電話號碼、日期、網址的方法

關于從文本字符串中提取數字、電話號碼、日期和網址的方法&#xff1a; 提取數字&#xff1a; 在 Python 中&#xff0c;使用正則表達式 \d 來匹配數字。 \d 表示匹配一個數字字符&#xff08;0-9&#xff09;。如果要匹配連續的數字&#xff0c;可以使用 \d 。 import re def …

C++面向對象的常見面試題目(一)

1. 面向對象的三大特征 &#xff08;1&#xff09;封裝&#xff1a;隱藏對象的內部狀態&#xff0c;只暴露必要的接口。 #include <iostream> #include <string>// 定義一個簡單的類 Person class Person { private: // 私有成員&#xff0c;外部不可直接訪問std…

Mac OS ssh 連接提示 Permission denied (publickey)

這錯誤有點奇葩&#xff0c;MacBook的IDE(vscode和pycharm)遠程都連不上&#xff0c;terminal能連上&#xff0c;windows的pycharm能連上&#xff0c;見鬼了&#xff0c;所以肯定不是秘鑰的問題了&#xff0c;查了好久竟然發現是權限的問題。。 chmod 400 ~/.ssh/id_rsa http…

華為機試HJ37統計每個月兔子的總數

華為機試HJ37統計每個月兔子的總數 題目&#xff1a; 想法&#xff1a; 上述題目實際是一個斐波那契數列&#xff0c;利用斐波那契數列對問題進行求解 input_number int(input())def fib(n):if n < 2:return 1else:n_1 1n_2 1count 2while count < n:n_1, n_2 n_…

【Android】【多屏】多屏異顯異觸調試技巧總結

這里寫目錄標題 如何獲取多屏IDs獲取多屏的size/density如何啟動應用到指定DisplayId多屏截屏/錄屏screencapscreenrecord發送按鍵到指定DisplayId 如何獲取多屏IDs dumpsys display | grep mDisplayIdtrinket:/ # dumpsys display | grep mDisplayIdmDisplayId0mDisplayId2 t…

【AI資訊】可以媲美GPT-SoVITS的低顯存開源文本轉語音模型Fish Speech

Fish Speech是一款由fishaudio開發的全新文本轉語音工具&#xff0c;支持中英日三種語言&#xff0c;語音處理接近人類水平&#xff0c;使用Flash-Attn算法處理大規模數據&#xff0c;提供高效、準確、穩定的TTS體驗。 Fish Audio

區塊鏈技術的應用場景和優勢。

區塊鏈技術具有廣泛的應用場景和優勢。 區塊鏈技術的應用場景&#xff1a; 1. 金融服務&#xff1a;區塊鏈可用于支付、跨境匯款、借貸和結算等金融服務&#xff0c;提高交易效率、降低成本并增強安全性。 2. 物聯網&#xff08;IoT&#xff09;&#xff1a;區塊鏈可以用于物…

機器學習Day12:特征選擇與稀疏學習

1.子集搜索與評價 相關特征&#xff1a;對當前學習任務有用的特征 無關特征&#xff1a;對當前學習任務沒用的特征 特征選擇&#xff1a;從給定的特征集合中選擇出相關特征子集的過程 為什么要特征選擇&#xff1f; 1.任務中經常碰到維數災難 2.去除不相關的特征能降低學習的…

Git注釋規范

主打一個有用 代碼的提交規范參考如下&#xff1a; init:初始化項目feat:新功能&#xff08;feature&#xff09;fix:修補bugdocs:文檔&#xff08;documentation&#xff09;style:格式&#xff08;不影響代碼運行的變動&#xff09;refactor:重構&#xff08;即不是新增功能…

NodeJs獲取文件擴展名

path.extname 是 Node.js 路徑模塊 (path) 中的一個方法&#xff0c;用于獲取文件路徑的擴展名。擴展名是指文件名中最后一個 .&#xff08;點&#xff09;之后的部分&#xff0c;包括這個 .。 const path require(path);const filename example.txt; const ext path.extna…

計算機網絡之令牌環

1.令牌環工作原理 令牌環&#xff08;Token Ring&#xff09;是一種局域網&#xff08;LAN&#xff09;的通信協議&#xff0c;最初由IBM在1984年開發并標準化為IEEE 802.5標準。在令牌環網絡中&#xff0c;所有的計算機或工作站被連接成一個邏輯或物理的環形拓撲結構。網絡中…

排序(2)

我們在排序&#xff08;1&#xff09;中說到選擇排序的代碼&#xff1a; void SelectSort(int* a,int n) {int begin0,endn-1;int minibegin,maxbegin;for(int ibegin1;i<end;i){if(a[i]>a[max]){maxii;}if(a[i]<a[mini]){minii;}begin;--end;}Swap(&a[beign],&a…

SKF軸承故障頻率查詢

1&#xff0c;第一步&#xff1a;搜索軸承型號 skf官網 2&#xff0c;第二步&#xff1a;查詢故障頻率。 第三步&#xff1a;

尚品匯-(十四)

&#xff08;1&#xff09;提交git 商品后臺管理到此已經完成&#xff0c;我們可以把項目提交到公共的環境&#xff0c;原來使用svn&#xff0c;現在使用git 首先在本地創建ssh key&#xff1b; 命令&#xff1a;ssh-keygen -t rsa -C "your_emailyouremail.com" I…