SQL語句(一)—— DDL

目錄

一、SQL 基礎知識

(一)SQL 通用語法

(二)SQL 分類

二、DDL ——?數據庫操作

1、查詢所有數據庫

2、查詢當前數據庫

3、創建數據庫

4、刪除數據庫

5、切換數據庫

三、DDL —— 表操作

(一)查詢創建

1、查詢當前數據庫所有表

2、查看指定表結構

3、查詢指定表的建表語句

4、創建表結構

(二)數據類型

1、數值類型

2、字符串類型

3、日期時間類型

(三)修改

1、添加字段

2、修改數據類型

3、修改字段名和字段類型

4、刪除字段

5、修改表名

(四)刪除

1、刪除表?

2、刪除指定表,并重新創建表


????????SQL 全稱 Structured Query Language,結構化查詢語言。操作關系型數據庫的編程語言,定義了一套操作關系型數據庫統一標準

一、SQL 基礎知識

(一)SQL 通用語法

????????在學習具體的SQL語句之前,先來了解一下SQL語言的通用語法。

SQL語句可以單行或多行書寫,以分號結尾

SQL語句可以使用空格/縮進來增強語句的可讀性。

MySQL數據庫的SQL語句不區分大小寫,關鍵字建議使用大寫。

④ 注釋:單行注釋為?“-- 注釋內容”?或 “# 注釋內容”;多行注釋為 “/* 注釋內容 */”

(二)SQL 分類

????????SQL語言,根據其功能,主要分為四類:DDL、DML、DQL、DCL。

????????1、DDL:全稱為 Data Definition Language,即數據定義語言。用來定義數據庫對象(數據庫、表、字段)

? ? ? ? 2、DML:全稱為 Data Manipulation Language,即數據操作語言。用來對數據庫表中的數據進行增刪改

? ? ? ? 3、DQL:全稱為Data Query Language,即數據查詢語言。用來查詢數據庫中表的記錄

? ? ? ? 4、DCL:全稱為Data Control Language,即數據控制語言。用來創建數據庫用戶控制數據庫的訪問權限

二、DDL ——?數據庫操作

1、查詢所有數據庫

show databases;

2、查詢當前數據庫

select datebase();

3、創建數據庫

create database [ if not exists ] 數據庫名 [ default charset 字符集 ] [ collate 排序規則 ] ;

? ? ? ? 這條指令的基本形式是 create database 數據庫名,方括號中的部分可加可不加。

? ? ? ? if not exists:同一個數據庫服務器中,不能創建兩個名稱相同的數據庫,否則會報錯。可以通過 if not exists 參數來解決這個問題,數據庫不存在,則創建該數據庫,如果存在,則不創建。

? ? ? ? default charest 字符集:如果不指定,則使用默認的字符集utf8mb4,建議使用這個。

create database my123;

4、刪除數據庫

drop database [ if exists ] 數據庫名 ;

????????如果刪除一個不存在的數據庫,將會報錯。此時,可以加上參數 if exists ,如果數據庫存在,再執行刪除,否則不執行刪除。

drop database my123;

5、切換數據庫

use 數據庫名 ;

????????我們要操作某一個數據庫下的表時,就需要通過該指令,切換到對應的數據庫下,否則是不能操作的。 比如,切換到itcast數據庫,執行如下SQL:

use itcast;

三、DDL —— 表操作

(一)查詢創建
1、查詢當前數據庫所有表

show tables;

????????比如,我們可以切換到 sys 這個系統數據庫,并查看系統數據庫中的所有表結構。

use sys;
show tables;

2、查看指定表結構

desc 表名;

????????通過這條指令,我們可以查看到指定表的字段,字段的類型、是否可以為NULL,是否存在默認值等信息。

3、查詢指定表的建表語句

show create table 表名 ;

????????通過這條指令,主要是用來查看建表語句的,而有部分參數我們在創建表的時候,并未指定也會查詢到,因為這部分是數據庫的默認值,如:存儲引擎、字符集等。

4、創建表結構

CREATE TABLE 表名(
????字段1 字段1類型 [COMMENT 字段1注釋 ],
????字段2 字段2類型 [COMMENT 字段2注釋 ],
????字段3 字段3類型 [COMMENT 字段3注釋 ],
????......
????字段n 字段n類型 [COMMENT 字段n注釋 ]?
) [ COMMENT 表注釋 ] ;?

????????注意:[...] 內為可選參數,最后一個字段后面沒有逗號,因為這就是一條SQL語句,一條SQL語句只有一個逗號。

????????比如,我們創建一張表 tb_user,對應的結構如下,那么建表語句為:

create table tb_user(id int comment '編號',name varchar(50) comment '姓名',age int comment '年齡',gender varchar(1) comment '性別'
) comment '用戶表';
(二)數據類型

????????在上述的建表語句中,我們在指定字段的數據類型時,用到了int,varchar,那么在MySQL中除了以上的數據類型,還有哪些常見的數據類型呢?

????????接下來,我們詳細介紹一下MySQL的數據類型。 MySQL中的數據類型有很多,主要分為三類:數值類型字符串類型日期時間類型

1、數值類型

? ? ? ? 對表格進行歸納,前 5 個數據類型 tinyint、smallint、mediumint、int/integer、bigint 表示整型數據僅僅是取值范圍不同。接下來?2 個數據類型 float、double 表示浮點型數據

????????最后一個 decimal 是精確的浮點型數據,其中的?M 表示小數的位數有多少位D 表示小數點后面有多少位。例如,decimal(10,2),即小數的整體位數是 10?位,小數點后面有 2?位。

????????同時,float 與 double 也可以對位數進行規定,如double(4,1),但是我們常用的精確的浮點型數據類型還是decimal。

? ? ? ? 同時如果希望是無符號數,則可在數據類型后面加上 unsigned,如 age tinyint unsigned。

2、字符串類型

????????char 與 varchar 都可以描述字符串。char 表示定長字符串,指定長度多長,就占用多少個字符,和字段值的長度無關,例如char(10)。而?varchar 表示變長字符串,指定的長度為最大占用長度,例如varchar(10)。

? ? ? ? char 中未占用的字符,會用空格來補位;varchar 則是存多少個字符就占用多少個空間。即varchar在規定具體長度的同時,還需要根據當前字符串修改長度,所以相對而言char的性能會更高一些,用空間換時間

? ? ? ? 還有兩個就是blob與text,只是前綴的不同導致長度的不同,其前綴為tiny、無、medium、long。blob中存儲的文本形式是二進制形式的、而?text?中的就是文本

3、日期時間類型

--例如: 
-- 1). 生日字段 birthdaybirthday date-- 2). 創建時間 createtimecreatetime datetime
(三)修改
1、添加字段

alter table?表名 add?字段名 類型 [ comment?注釋 ] [ 約束 ];

? ? ? ?其中 “alter table 表名” 是選中具體的表,“add 字段名 類型” 是具體的操作,“comment 注釋” 是給代碼添加注釋。代碼中方括號的部分可以省略。

? ? ? ? 添加字段的意思,就是在一張表中,再加一列如為 emp 表增加一個新的字段”昵稱”為 nickname,類型為varchar(20)。代碼與執行結果如下:

alter table emp add nickname varchar(20) comment '昵稱';

2、修改數據類型

alter table 表名 modify 字段名 新數據類型;?

3、修改字段名和字段類型

alter table 表名 change 舊字段名 新字段名 類型 (長度) [ comment 注釋 ] [ 約束 ];?

????????將 emp 表的 nickname 字段修改為 username,類型為varchar(30)。代碼與執行結果如下:

alter table emp change nickname username varchar(30) comment '昵稱';

4、刪除字段

alter table?表名 drop?字段名;

????????將 emp 表的字段 username 刪除,代碼與執行結果如下:

alter table emp drop username;

5、修改表名

alter table?表名 rename to?新表名;

????????將emp表的表名修改為 employee,具體代碼如下:

alter table emp rename to employee;
(四)刪除
1、刪除表?

drop table?[ if exists ] 表名;

????????可選項 if exists代表,只有表名存在時才會刪除該表,表名不存在,則不執行刪除操作(如果不加該參數項,刪除一張不存在的表,執行將會報錯)。

????????如果tb_user表存在,則刪除tb_user表,具體代碼如下:

drop table?if exists tb_user;
2、刪除指定表,并重新創建表

truncate table 表名;

????????注意: 在刪除表的時候,表中的全部數據也都會被刪除;這個操作就是將這張表進行重置

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

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

相關文章

【Android】界面布局-線性布局LinearLayout-例子

線性布局(LinearLayout)是一種重要的界面布局中,也是經常使用到的一種界面布局 ? 在線性布局中,所有的子元素都按照垂直或水平的順序在界面上排列 ?如果垂直排列,則每行僅包含一個界面元素 ?如果水平排列&…

leetcode數組-長度最小的子數組

題目 題目鏈接:https://leetcode.cn/problems/minimum-size-subarray-sum/ 給定一個含有 n個正整數的數組和一個正整數 target** 。** 找出該數組中滿足其總和大于等于target的長度最小的 子數組 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其長度**…

一周學會Pandas2 Python數據處理與分析-Jupyter Notebook安裝

鋒哥原創的Pandas2 Python數據處理與分析 視頻教程: 2025版 Pandas2 Python數據處理與分析 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili Jupyter (Project Jupyter | Home)項目是一個非營利性開源項目,于2014年由IPython項目中誕生…

前端頁面鼠標移動監控(鼠標運動、鼠標監控)鼠標節流處理、throttle、限制觸發頻率(setTimeout、clearInterval)

文章目錄 使用lodashjs庫手動實現節流&#xff08;通過判斷之前設定的定時器setTimeout是否存在&#xff09; 使用lodashjs庫 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

java流程控制04:if選擇結構

選擇結構 if單選擇結構 if雙選擇結構 if多選擇結構 嵌套的if結構 switch多選擇結構 if單選擇結構 我們很多時候需要去判斷一個東西是否可行&#xff0c;然后我們才去執行&#xff0c;這樣一個過程在程序中用if語句來表示 語法&#xff1a; if(布爾表達式){//如果布爾表達…

在uniapp中,video比普通的標簽層級高解決問題

<view style"position: relative;"><video style"position: absolute;z-index:-1"></video><view style"position: absolute;z-index:999"></view> </view> 上面代碼并沒有解決view的層級比video高的問題&…

基于R語言與MaxEnt的物種分布建模全流程解析:從算法優化到科研制圖實戰

隨著全球氣候變化與生物多樣性保護需求的加劇&#xff0c;物種分布模型&#xff08;Species Distribution Model, SDM&#xff09;已成為生態學、保護生物學研究的核心工具。MaxEnt模型憑借其?對小樣本數據的強適應性?和?環境變量非線性關系的解析能力?&#xff0c;成為SDM…

DPDI版本升級說明

Dispatch PDI v2.0.3版本升級說明 自Dispatch PDI社區版全新版本V2.0.0于2025 年3月25日發布以來&#xff0c;我們始終緊密關注用戶動態&#xff0c;并全力協助用戶線上完成從V0.0.4到V2.0.0的遷移工作。在短短一周內&#xff0c;我們成功助力約90%的用戶完成了遷移。在此期間…

大鉦資本押注儒拉瑪特全球業務,累計交付超2500條自動化生產線儒拉瑪特有望重整雄風,我以為它破產倒閉了,擔心很多非標兄弟們失業

1. 交易概況 時間與主體:大鉦資本于2025年4月1日正式宣布完成對儒拉瑪特自動化技術(蘇州)有限公司及其全球子公司和關聯企業的收購。交易通過大鉦資本旗下美元基金設立的儒拉瑪特(新加坡)公司作為控股主體進行,交易金額未披露。 收購范圍:包括儒拉瑪特亞太、歐洲、北美等…

LabVIEW 調用 Python 函數

此程序是 LabVIEW 調用 Python 函數實現雙精度數相加的典型示例。通過 LabVIEW 搭建交互框架&#xff0c;借助 “Open Python Session” 創建 Python 代碼運行環境&#xff0c;定位 Python 模塊路徑后調用 “Add” 函數&#xff0c;最終實現數據處理并關閉會話。整個流程展現了…

基于SpringBoot的“考研學習分享平臺”的設計與實現(源碼+數據庫+文檔+PPT)

基于SpringBoot的“考研學習分享平臺”的設計與實現&#xff08;源碼數據庫文檔PPT) 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系統展示 系統總體功能結構圖 局部E-R圖 系統首頁界面 …

恒盾C#混淆加密衛士 - 混淆加密保護C#程序

對于大部分C#開發者來說&#xff0c;寫完代碼點個發布就完事兒了&#xff0c;但你可能不知道——用記事本都能扒開你編譯好的程序&#xff01;像dnSpy這類反編譯工具&#xff0c;分分鐘能把你的EXE/DLL變回原汁原味的源代碼&#xff0c;商業機密赤裸裸曝光不說&#xff0c;競爭…

selectdb修改表副本

如果想修改doris&#xff08;也就是selectdb數據庫&#xff09;表的副本數需要首先確定是否分區表&#xff0c;當前沒有數據字典得知哪個表是分區的&#xff0c;只能先show partitions看結果 首先&#xff0c;副本數不應該大于be節點數 其次&#xff0c;修改期間最好不要跑業務…

【嵌入式-stm32電位器控制以及旋轉編碼器控制LED亮暗】

嵌入式-stm32電位器控制LED亮暗 任務1代碼1Key.cKey.hTimer.cTimer.hPWM.cPWM.hmain.c 實驗現象1任務2代碼2Key.cKey.hmain.c 實驗現象2問題與解決總結 源碼框架取自江協科技&#xff0c;在此基礎上做擴展開發。 任務1 本文主要介紹利用stm32f103C8T6實現電位器控制PWM的占空比…

圖撲可視化點亮智慧城市垃圾分類新未來

圖撲基于 HT 開發的智慧城市廢棄物可視化管理系統&#xff0c;通過智能感知與三維可視化技術&#xff0c;構建全流程數字化監管平臺。系統實現固體廢物從源頭投放到終端處置的全程可視化追蹤&#xff0c;提供智能收運路徑規劃與資源回收管理方案&#xff0c;助力城市環境治理向…

Elasticsearch安全加固指南:啟用登錄認證與SSL加密

在之前文章中我們介紹了Elasticsearch安全與權限控制&#xff0c;本篇文章我們將詳細介紹 啟用登錄認證與SSL加密實踐配置操作 。 1 為什么需要安全加固&#xff1f; Elasticsearch默認不啟用安全功能&#xff0c;會導致以下風險&#xff1a; 未授權訪問&#xff1a;任何人都能…

前端知識點---本地存儲(javascript)

localStorage 是瀏覽器提供的一個 本地存儲 API&#xff0c;可以在用戶的瀏覽器中存儲數據&#xff0c;數據不會隨頁面刷新而丟失。 1. 基本用法 (1) 存儲數據&#xff08;setItem&#xff09; localStorage.setItem("username", "zhangsan");存儲 “use…

神經網絡能不能完全擬合y=x2 ???

先說結論&#xff1a;關鍵看激活函數的選擇 ReLU神經網絡對非線性函數的擬合分析 ReLU神經網絡對非線性函數&#xff08;如 y x 2 y x^2 yx2&#xff09;的擬合只能是逼近&#xff0c;而無法實現數學意義上的完全重合。這一結論源于ReLU的分段線性本質與目標函數的非線性結…

14.流程自動化工具:n8n和家庭自動化工具:node-red

n8n 安裝 docker方式 https://docs.n8n.io/hosting/installation/docker/ #https://hub.docker.com/r/n8nio/n8n docker pull n8nio/n8n:latest docker rm -f n8n; docker run -it \ --network macvlan --hostname n8n \ -e TZ"Asia/Shanghai" \ -e GENERIC_TIME…

哈密爾頓路徑(Hamiltonian Path)及相關算法題目

哈密爾頓路徑要求訪問圖中每個頂點恰好一次&#xff0c;通常用于解決旅行商問題&#xff08;TSP&#xff09;或狀態壓縮DP問題。 哈密爾頓路徑&#xff08;Hamiltonian Path&#xff09;是指在一個圖中經過每個頂點恰好一次的路徑。如果這條路徑的起點和終點相同&#xff08;即…