04_SQL概述及DDL

文章目錄

    • 一、關于SQL
      • 1.1、SQL概述
      • 1.2、SQL分類
    • 二、數據庫操作
      • 2.1、查看數據庫
      • 2.2、切換數據庫
      • 2.3、查詢當前使用的數據庫
      • 2.4、創建數據庫
      • 2.5、查看數據庫創建信息
      • 2.6、修改數據庫
      • 2.7、刪除數據庫
    • 三、表的操作
      • 3.1、數據類型
        • 3.1.1、數值類型
        • 3.1.2、字符串類型
        • 3.1.3、日期時間類型
      • 3.2、創建表
      • 3.3、查看表
      • 3.4、修改表
      • 3.5、刪除表

一、關于SQL

1.1、SQL概述

SQL:Structured Query Language(結構化查詢語言),客戶端使用SQL來操作數據庫,可以應用到所有關系型數據庫中。

SQL語言標準由ISO(國際標準化組織)發布,ISO定義了很多SQL標準(例如SQL99)對RDBMS進行統一的操作,相同的語句可以操作Oracle,MySQL。各個數據庫廠商有自己的標準,類似于方言,MySQL中的limit。

SQL語法:

  • SQL語句可以在單行或多行書寫,以分號結尾;
  • 可使用空格和縮進來增強語句的可讀性;
  • MySQL不區分大小寫,建議大寫。

經驗:通常執行對數據庫的“增刪改查”,簡稱C(Create)R(Read)U(Update)D(Delete)。

1.2、SQL分類

DDL(Data Definition Language)數據定義語言:創建、刪除、修改庫與表結構;

DML(Data Manipulation Language)數據操作語言:增、刪、改表記錄;

TPL(Transaction Process Language)事務處理語言:用于對事務進行處理;

DQL(Data Query Language)數據查詢語言:用來查詢記錄;

DCL(Data Control Language)數據控制語言:用來定義訪問權限和安全級別。

二、數據庫操作

2.1、查看數據庫

# 查看所有的數據庫
mysql> SHOW DATABASES; 
數據庫名稱描述
information_schema信息數據庫,其中保存著關于所有數據庫的信息(元數據),元數據是關于數據的數據,如數據庫名或表名,列的數據類型,或訪問權限等。
mysql核心數據庫,主要負責存儲數據庫的用戶、權限設置、關鍵字等,以及需要使用的控制和管理信息,不可以刪除。
performance_schema性能優化的數據庫,MySQL 5.5版本中新增的一個性能優化的引擎。
sys系統數據庫,MySQL5.7版本中新增的可以快速的了解元數據信息的系統庫,便于發現數據庫的多樣信息,解決性能瓶頸問題。

2.2、切換數據庫

# 切換到想要操作的數據庫
mysql> USE sys;

2.3、查詢當前使用的數據庫

mysql>  select database();

2.4、創建數據庫

#創建名字為mydb1數據庫
mysql> CREATE DATABASE mydb1; 
#創建數據庫并設置編碼格式為utf8
mysql> CREATE DATABASE mydb2 CHARACTER SET utf8;
#如果mydb3數據庫不存在,則創建;如果存在,則不創建。
mysql> CREATE DATABASE IF NOT EXISTS mydb3; 

2.5、查看數據庫創建信息

 mysql> SHOW CREATE DATABASE mydb1;

2.6、修改數據庫

#修改數據庫的字符集
mysql> ALTER DATABASE mydb1 CHARACTER SET gbk; 

2.7、刪除數據庫

#刪除數據庫mydb1
mysql> DROP DATABASE mydb1; 
#如果存在數據庫mydb2就刪除
mysql> DROP DATABASE IF EXISTS mydb2; 

三、表的操作

3.1、數據類型

MySQL支持多種類型,大致可以分為三類:

  • 數值;
  • 字符串(字符)類型;
  • 日期時間。

數據類型對于我們約束數據的類型有很大的幫助。

3.1.1、數值類型
類型大小范圍(有符號)范圍(無符號)用途
INT4 字節(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整數值
DOUBLE8 字節(-1.797E+308,-2.22E-308)(0,2.22E-308,1.797E+308)雙精度浮點數值
DOUBLE(M,D)8個字節,M表示長度,D表示小數位數同上,受M和D的約束 DOUBLE(5,2) -999.99-999.99同上,受M和D的約束雙精度浮點數值
DECIMAL(M,D)DECIMAL(M,D)依賴于M和D的值,M最大值為65依賴于M和D的值,M最大值為65小數值,和錢相關,不會出現精度缺失的問題
3.1.2、字符串類型
類型大小用途
CHAR0-255字符定長字符串CHAR(10)10個字符
VARCHAR0-65535 字節變長字符串VARCHAR(10)10個字符
BLOB(binary large object)0-65535字節二進制形式的長文本數據
TEXT0-65535字節長文本數據

關于CHAR和VARCHAR:

  • CHAR(255) 數據長度不足指定長度,補足到指定長度,用于身份證號,手機號,時間固定長度的內容;
  • VARCHAR(65535) 數據長度不足指定長度,不補足到指定長度,用于用戶名,備注不固定長度的內容;
  • VARCHAR單獨至少花一個字節保存數據長度,如果長度超過一個字節,就要花費兩個字節。
3.1.3、日期時間類型
類型大小范圍格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS時間值或持續時間
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和時間值
TIMESTAMP41970-01-01 00:00:00/2038 結束時間是第 2147483647 秒北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和時間值,時間戳

3.2、創建表

語法:

CREATE TABLE [IF NOT EXISTS] 表名(列名 數據類型 [約束],列名 數據類型 [約束],列名 數據類型 [約束]       //最后一列的末尾不加逗號[CHARSET=utf8];			//可根據需要指定表的字符編碼集

關于約束后面會講到,這里可以暫時不關注。

舉例:

學生表(student)

列名數據類型說明
idINT編號
nameVARCHAR(20)姓名
ageINT年齡
birthdayTIMESTAMP生日
phonenumCHAR(11)手機號
addressVARCHAR(20)住址
CREATE TABLE student (id INT,name VARCHAR(20),age INT,birthday TIMESTAMP,phonenum CHAR(11),address VARCHAR(20)
);

3.3、查看表

# 查看當前數據庫中所有表名稱
SHOW TABLES;
# 查看指定表的創建語句
SHOW CREATE TABLE 表名;
# 查看表結構
DESC 表名;

3.4、修改表

# 添加列
ALTER TABLE 表名 ADD (列名 列類型,列名 列類型
)# 修改列類型(如果被修改的列已存在數據,那么新的類型可能會影響到已存在數據), 修改表中的某列時,也要寫全列的名字,數據類型,約束
ALTER TABLE 表名 MODIFY 列名 列類型;   # 修改列名, 在給定列新名稱時,要指定列的類型和約束
ALTER TABLE 表名 CHANGE 原列名 新列名 列類型;# 刪除列, 刪除列時,每次只能刪除一列
ALTER TABLE 表名 DROP 列名;# 修改表名稱
ALTER TABLE 原表名 RENAME TO 新表名;
ALTER TABLE 原表名 RENAME 新表名; 

3.5、刪除表

DROP TABLE 表名;

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

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

相關文章

HCIA-數據通信datacom認證

文章目錄 一、數據通信簡介1.1 標準協議1.2 數據傳輸過程 二、通用路由平臺VRP2.1 VRP簡介2.2 命令行基礎 三 、網絡層協議IP3.1 數據封裝3.2 數據包傳輸2.3 IP地址2.4 子網劃分2.5 ICMP 四、IP路由基礎4.1 路由概述4.2 路由表4.3 路由轉發4.4 靜態路由4.5 動態路由4.6 路由高級…

fast_pow(),c語言冪函數

double fast_pow(double a, int n) { double res 1.0; while (n > 0) { if (n & 1) res * a; // 如果當前位是1,累乘 a * a; // 平方 n >> 1; // 右移一位(相當于 n / 2&…

OpenBMC:BmcWeb 處理http請求2 查找路由對象

OpenBMC:BmcWeb 處理http請求1 生成Request和AsyncResp對象_bmc web-CSDN博客 當接收到http請求,并且完成解析后,調用了App::handle處理請求 而App::handle又調用了router.handle(req, asyncResp);來處理請求 1.Router::handle void handle(const std::shared_ptr<Requ…

[Mac]利用hexo-theme-fluid美化個人博客

接上文,使用Fluid美化個人博客 文章目錄 一、安裝hexo-theme-fluid安裝依賴指定主題創建「關于頁」效果展示 二、修改個性化配置1. 修改網站設置2.修改文章路徑顯示3.體驗分類和標簽4.左上角博客名稱修改5.修改背景圖片6.修改關于界面 歡迎大家參觀 一、安裝hexo-theme-fluid 參…

深入理解二叉樹、B樹與B+樹:原理、應用與實現

文章目錄 引言一、二叉樹&#xff1a;基礎而強大的結構基本概念特性分析Java實現應用場景 二、B樹&#xff1a;適合外存的多路平衡樹基本概念關鍵特性查詢流程示例Java簡化實現典型應用 三、B樹&#xff1a;數據庫索引的首選核心改進優勢分析范圍查詢示例Java簡化實現實際應用 …

8.4考研408簡單選擇排序與堆排序知識點深度解析

考研408「簡單選擇排序與堆排序」知識點全解析 一、簡單選擇排序 1.1 定義與核心思想 簡單選擇排序(Selection Sort)是一種選擇排序算法,其核心思想是: 每趟選擇:從待排序序列中選擇最小(或最大)的元素,與當前位置的元素交換。逐步構建有序序列:經過 n ? 1 n-1

為什么需要開源成分分析?庫博同源分析工具介紹

在當今的軟件開發世界中&#xff0c;開源組件已經成為不可或缺的一部分。無論是加速開發進程&#xff0c;還是降低開發成本&#xff0c;開源組件都為我們帶來了巨大的便利。然而&#xff0c;隨著開源組件的廣泛使用&#xff0c;安全風險也隨之而來。你是否曾擔心過&#xff0c;…

ros2 humble無法識別頭文件<rclcpp/rclcpp.hpp>

首先在C/C配置中設置路徑&#xff1a; 可以編輯文件.vscode/c_cpp_properties.json ${workspaceFolder}/**/opt/ros/humble/include/**編譯配置 確保配置好了CMakeLists.txt文件。 colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDSON這樣會在目錄下生成compile_com…

常用的排序算法及對比

1. 選擇排序&#xff08;Selection Sort&#xff09; 算法思想與理論推導 基本思想&#xff1a; 每次從待排序數組中選擇最小&#xff08;或最大&#xff09;的元素&#xff0c;將它與當前序列的起始位置交換&#xff0c;逐步將整個數組排序。 推導過程&#xff1a; 設數組長…

Linux基礎入門:從零開始掌握Linux命令行操作

&#x1f64b;大家好&#xff01;我是毛毛張! &#x1f308;個人首頁&#xff1a; 神馬都會億點點的毛毛張 &#x1f388;有沒有覺得電影里的黑客&#x1f412;酷斃了&#xff1f;他們只用鍵盤?就能搞定一切。今天&#xff0c;毛毛張要帶你們體驗這種快感&#x1f600;&…

OpenAI發布的《Addendum to GPT-4o System Card: Native image generation》文件的詳盡筆記

Native_Image_Generation_System_Card 文件基本信息 文件名稱&#xff1a;《Addendum to GPT-4o System Card: Native image generation》發布機構&#xff1a;OpenAI發布日期&#xff1a;2025年3月25日主要內容&#xff1a;介紹GPT-4o模型中新增的原生圖像生成功能&#xff…

5.02 WPF的 Combox、ListBox,slider、ProgressBar使用

1. 關于Combox\ListBox使用&#xff1a; 1.1 內容綁定有兩種方法&#xff0c; 優先使用方法1&#xff0c;因為列表變化的時候&#xff0c;Combox會自動顯示新的內容。而方法2并不會實時更新。 方法1&#xff1a;使用DataContext this.comboBox1.DisplayMemberPath "na…

《孟婆湯的SHA-256加密》

點擊下面圖片帶您領略全新的嵌入式學習路線 &#x1f525;爆款熱榜 88萬閱讀 1.6萬收藏 文章目錄 **第一章&#xff1a;黃泉路上的數據風暴****第二章&#xff1a;堿基對的非對稱加密****第三章&#xff1a;RAFT協議暴動事件****第四章&#xff1a;靈魂分叉與硬重放****終章&…

SpringBoot事務管理(四)

記錄幾條SpringBoot事務管理中踩過的坑及解決辦法&#xff1a; 1. 自調用問題 問題描述 在同一個類中&#xff0c;一個非事務方法調用另一個有 Transactional 注解的事務方法&#xff0c;事務不會生效。因為 Spring 的事務管理是基于 AOP 代理實現的&#xff0c;自調用時不會…

HTTP 1.1長連接問題

在長連接問題上&#xff0c;HTTP 1.1與HTTP 1.0還是有所區別的。 下面一起來看看&#xff1a; HTTP 1.1 支持長連接&#xff08;PersistentConnection&#xff09;和請求的流水線&#xff08;Pipelining&#xff09;處理&#xff0c;在一個 TCP 連接上可以傳送多個 HTTP 請求…

鴻蒙應用元服務開發-Account Kit概述

Account Kit&#xff08;華為賬號服務&#xff09;提供簡單、快速、安全的登錄功能&#xff0c;讓用戶快捷地使用華為賬號登錄元服務。用戶授權后&#xff0c;Account Kit可提供頭像、手機號碼等信息&#xff0c;幫助元服務更了解用戶。Account Kit提供的SampleCode示例工程體現…

IP綜合實驗

1.配置eth-trunk進行綁定 [LSW1]interface Eth-Trunk 0 [LSW1-Eth-Trunk0]q [LSW1]interface g0/0/2 [LSW1-GigabitEthernet0/0/2]eth-trunk 0 [LSW1-GigabitEthernet0/0/2]int g0/0/3 [LSW1-GigabitEthernet0/0/3]eth-trunk 0 [LSW1-GigabitEthernet0/0/3]display et…

SAP 學習筆記 - 系統移行業務 - MALSY(由Excel 移行到SAP 的收費工具)

以前有關移行&#xff0c;也寫過一些文章&#xff0c;比如 SAP 學習筆記 - 系統移行業務 - Migration cockpit工具 - 移行Material&#xff08;品目&#xff09;-CSDN博客 SAP 學習筆記 - 系統移行業務 - Migration cockpit工具2 - Lot導入_sap cockpit-CSDN博客 SAP學習筆記…

二叉樹搜索樹與雙向鏈表

一&#xff1a;題目 二&#xff1a;思路 把二叉搜索樹的值升序的打印出來&#xff0c;中序打印即可&#xff0c;但是此題不僅僅是有序的打印出二叉搜索樹的值&#xff0c;而是要將其的結構也改變了&#xff0c;也就是說要改變節點間的指向&#xff0c;讓其成為一個雙向鏈表 我…

31天Python入門——第17天:初識面向對象

你好&#xff0c;我是安然無虞。 文章目錄 面向對象編程1. 什么是面向對象2. 類(class)3. 類的實例關于self 4. 對象的初始化5. __str__6. 類之間的關系繼承關系組合關系 7. 補充練習 面向對象編程 1. 什么是面向對象 面向對象編程是一種編程思想,它將現實世界的概念和關系映…