MySQL基礎-----SQL語句之DDL語句

目錄

前言

?開啟登錄數據庫

一、數據庫操作?

1.查詢所有數據庫

?2.切換使用數據庫

3.查詢當前使用的數據庫

4.創建數據庫?

創建一個hello數據庫, 使用數據庫默認的字符集。

?創建一個itheima數據庫,并且指定字符集

?5.刪除數據庫

?二、表操作

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

2.查看指定表結構?

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

4.創建表-建表語句

?5.創建表-數據類型

數值類型?

字符串類型?

日期時間類型?

?6.表操作-修改

01.添加字段

02.修改數據類型?

03.修改字段名和字段類型

?04.刪除字段

05.修改表名

7.表操作-刪除

刪除表

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


前言

? ? ? ? 上一期我們簡單介紹了MySQL數據庫的相關內容以及SQL語句的分類,那么本期我們開始學習SQL語句中的ddl語句部分,DDL語句即Data? Definition Language,數據定義語言,用來定義數據庫對象(數據庫,表,字段),下面我會通過數據庫和表的操作來演示。

?開啟登錄數據庫

? ? ? ? cmd 管理員進入,然后用指令開啟MySQL服務器net start?mysql??

? ? ? ? 然后就是登錄等等操作,在上一期就講解過了這里就不多說了(上一期鏈接:MySQL入門------數據庫與SQL概述-CSDN博客)。

一、數據庫操作?

1.查詢所有數據庫

show databases;?

?2.切換使用數據庫

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

use 數據庫名稱;

3.查詢當前使用的數據庫

select database();?

?

4.創建數據庫?

創建一個hello數據庫, 使用數據庫默認的字符集。

?create database hello;

?在同一個數據庫服務器中,不能創建兩個名稱相同的數據庫,否則將會報錯。

?可以通過if not exists 參數來解決這個問題,數據庫不存在, 則創建該數據庫,如果存在,則不創建。

?create database if not exists hello;

?創建一個itheima數據庫,并且指定字符集

create database itheima default charset utf8mb4;

?5.刪除數據庫

drop database [?if exists ] 數據庫名字;

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

?二、表操作

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

show tables;?

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

use sys;

show tables;

2.查看指定表結構?

desc 表名;?

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

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

show create table 表名;

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

4.創建表-建表語句

?create table 表名(

? ? ? ? 字段1 類型 [comment 注釋],

????????字段2?類型 [comment 注釋],

????????字段3?類型 [comment 注釋],

????????……

) [comment 注釋];

注意: [...] 內為可選參數, 后一個字段后面沒有逗號

?5.創建表-數據類型

在上述的建表語句中,我們在指定字段的數據類型時,用到了int ,varchar,那么在MySQL中除了以上的數據類型,還有哪些常見的數據類型呢? 接下來,我們就來詳細介紹一下MySQL的數據類型。

MySQL中的數據類型有很多,主要分為三類:數值類型、字符串類型、日期時間類型。

數值類型?

類型

大小

有符號(SIGNED)范圍

無符號(UNSIGNED)范圍

描述

TINYINT

1byte

(-128,127)

(0,255)

小整數值

SMALLINT

2bytes

(-32768,32767)

(0,65535)

大整數值

MEDIUMINT

3bytes

(-8388608,8388607)

(0,16777215)

大整數值

INT/INTEGER

4bytes

(-2147483648,

2147483647)

(0,4294967295)

大整數值

BIGINT

8bytes

(-2^63,2^63-1)

(0,2^64-1)

極大整數值

FLOAT

4bytes

(-3.402823466 E+38,

3.402823466351 E+38)

0 和 (1.175494351 E-

38,3.402823466 E+38)

單精度浮點數值

DOUBLE

8bytes

(-1.7976931348623157

E+308,

1.7976931348623157

E+308)

0 和

(2.2250738585072014

E-308,

1.7976931348623157

E+308)

雙精度浮點數值

DECIMAL

?

依賴于M(精度)和D(標度) 的值

依賴于M(精度)和D(標度)的值

小數

值(精

確定點數)

要根據實際情況去選擇恰當的數據類型,比如年齡不會出現負數,所以要選擇無符號類型。

字符串類型?

類型

大小

描述

CHAR

0-255 bytes

定長字符串(需要指定長度)

VARCHAR

0-65535 bytes

變長字符串(需要指定長度)

TINYBLOB

0-255 bytes

不超過255個字符的二進制數據

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65 535 bytes

二進制形式的長文本數據

TEXT

0-65 535 bytes

長文本數據

MEDIUMBLOB

0-16 777 215 bytes

二進制形式的中等長度文本數據

MEDIUMTEXT

0-16 777 215 bytes

中等長度文本數據

LONGBLOB

0-4 294 967 295 bytes

二進制形式的極大文本數據

LONGTEXT

0-4 294 967 295 bytes

極大文本數據

char 與 varchar 都可以描述字符串,char是定長字符串,指定長度多長,就占用多少個字符,和字段值的長度無關 。而varchar是變長字符串,指定的長度為 大占用長度 。相對來說,char的性能會更高些。?

日期時間類型?

類型

大小

范圍

格式

描述

DATE

3

1000-01-01 至 9999-12-31

YYYY-MM-DD

日期值

TIME

3

-838:59:59 至 838:59:59

HH:MM:SS

時間值或持續時間

YEAR

1

1901 至 2155

YYYY

年份值

DATETIME

8

1000-01-01 00:00:00 至

9999-12-31 23:59:59

YYYY-MM-DD

HH:MM:SS

混合日期和時間值

TIMESTAMP

4

1970-01-01 00:00:01 至

2038-01-19 03:14:07

YYYY-MM-DD

HH:MM:SS

混合日期和時間值,時間戳

?下面創建一個emp員工表,要求如下:

  1. 編號(純數字)
  2. 員工工號 (字符串類型,長度不超過10位)
  3. 員工姓名(字符串類型,長度不超過10位)
  4. 性別(男/女,存儲一個漢字)
  5. 年齡(正常人年齡,不可能存儲負數)
  6. 身份證號(二代身份證號均為18位,身份證中有X這樣的字符)
  7. 入職時間(取值年月日即可)

建表語句如下:

create table emp(id int comment '編號',num varchar(10) comment '編號',name varchar(10) comment '名字',gender char(1) comment '性別',age tinyint unsigned comment '年齡',idcard char(18) comment '身份證',entrydate date comment '入職時間'
) comment '員工表';

SQL語句編寫完畢之后,就可以在MySQL的命令行中執行SQL,然后也可以通過 desc 指令查詢表結構信息:?

表結構創建好了,里面的name字段是varchar類型, 大長度為10,也就意味著如果超過10將會報錯,如果我們想修改這個字段的類型 或 修改字段的長度該如何操作呢?接下來再來講解DDL語句中,如何操作表字段。?

?6.表操作-修改

01.添加字段

alter table emp add 字段名?類型?[comment '注釋'];

案例:下面在上面emp表的基礎上添加一個老板名字的字段?

?alter table emp add emloyer varchar(10) comment '老板';

02.修改數據類型?

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

案例:把上面老板的數據類型由varchar(10)改為varchar(20)

alter table emp modify emloyer varchar(20);

03.修改字段名和字段類型

ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型 (長度) [ COMMENT 注釋 ] [ 約束 ];

案例 : 將emp 表的emloyer 字段修改為 username ,類型為 varchar(30)
alter table emp change emloyer username varchar(30) comment '昵稱';

?04.刪除字段

?ALTER TABLE 表名 DROP 字段名;

案例 : 將emp 表的字段 username 刪除

?alter table emp drop username;

05.修改表名

ALTER TABLE 表名 RENAME TO 新表名;
案例 : 將emp 表的表名修改為 employee

?alter table emp rename to employee;

7.表操作-刪除

刪除表

DROP TABLE [ IF EXISTS ] 表名;

可選項 IF EXISTS 代表,只有表名存在時才會刪除該表,表名不存在,則不執行刪除操作 ( 如果不
加該參數項,刪除一張不存在的表,執行將會報錯 )
案例 :
如果 tb_user 表存在,則刪除 tb_user
刪除指定表, 并重新創建表

其中的數據被全部刪除了,只保留下表結構

TRUNCATE TABLE 表名;

注意: 在刪除表的時候,表中的全部數據也都會被刪除。

以上就是本期的全部內容了,我們下次見!

?分享一張壁紙:

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

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

相關文章

JAVA的學習日記

JAVA的學習日記(2024.3.1)(b站韓順平老師課程學習筆記版) ps:撿起忘光光的Java語言 Sublime //1. public是公有,class是類 //2. public class Hello表示Hello是一個類,是一個public公有的類 //3. Hello{…

解決Unable to load class ‘org.gradle.api.attributes.VerificationType‘

在使用AdnroidStudio開發過程中難免會遇到Unable to load class org.gradle.api.attributes.VerificationType報錯,可以嘗試清理緩存重啟解決 打開 File-》Invalidate Caches... 重啟AndroidStudio后,重新加載即可,但也不是百分百解決。

【MySQL】:高效利用MySQL函數實用指南

🎥 嶼小夏 : 個人主頁 🔥個人專欄 : MySQL從入門到進階 🌄 莫道桑榆晚,為霞尚滿天! 文章目錄 📑前言一. MySQL函數概論二. 字符串函數三. 數值函數四. 日期函數五. 流程函數&#x1…

基于NSFW數據集的違規圖片檢測系統

目錄 一、功能介紹 二、安裝部署說明 2.1數據集簡介 2.2文件目錄說明 一、功能介紹 本程序是一個違規圖片檢測系統,能夠識別用戶上傳的信息圖片,是否包含有敏感(NSFW,Not Safe For Work)信息。 本程序使用雅虎開源的NS…

前后端分離開發

目錄 前言 一、前后端分離開發 1. 介紹 2. 開發流程 3. 前端技術棧 (1)開發工具: (2)技術框架: 二、Yapi 1. 介紹 2. 使用 (1)準備 (2)定義接口 (3&#x…

芯科科技為全球首批原生支持Matter-over-Thread的智能鎖提供強大助力,推動Matter加速成為主流技術

智能鎖領域的先鋒企業U-tec和Nuki選擇芯科科技解決方案,成為Matter-over-Thread應用的領先者 致力于以安全、智能無線連接技術,建立更互聯世界的全球領導廠商Silicon Labs(亦稱“芯科科技”,NASDAQ:SLAB)今…

2024廣東水展即將開幕 | 聚焦凈水行業熱點搶占行業新機遇

2024廣東水展即將開幕 | 聚焦凈水行業熱點搶占行業新機遇 隨著消費升級和人們對環境健康的意識增強,人們除了關注凈水產品的性能外,對產品的設計、服務、多應用場景化等需求也愈發多樣化。節能環保、智能化成為產品迭代升級主要方向。據奧維云網數據顯示…

Docker中使用Tomcat并部署war工程

系列文章目錄 文章目錄 系列文章目錄前言一、構建鏡像二、運行鏡像三、列出正在運行的容器四、停止正在運行的容器 前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站,這篇文…

物聯網技術助力智慧城市安全建設:構建全方位、智能化的安全防護體系

一、引言 隨著城市化進程的加速和信息技術的迅猛發展,智慧城市已成為現代城市發展的重要方向。在智慧城市建設中,安全是不可或缺的一環。物聯網技術的快速發展為智慧城市安全建設提供了有力支持,通過構建全方位、智能化的安全防護體系&#…

Kali Linux 安裝 + 獲取 root 權限 + 遠程訪問

一、什么是Kali kali是linux其中一個發行版,基于Debian,前身是BackTrack(簡稱BT系統)。kali系統內置大量滲透測試軟件,可以說是巨大的滲透系統,涵蓋了多個領域,如無線網絡、數字取證、服務器、密…

Python讀取hbase數據庫

1. hbase連接 首先用hbase shell 命令來進入到hbase數據庫,然后用list命令來查看hbase下所有表,以其中表“DB_level0”為例,可以看到庫名“baotouyiqi”是拼接的,python代碼訪問時先連接: def hbase_connection(hbase…

red hat 6.9版本7.9版本 忘記root密碼重置方法

文章目錄 1、重置密碼具體步驟Oracle Linux 6.9版本:1、開機到此界面按e2、在以下界面選擇后按e3、選擇相應內核后按e4、在此界面輸入 single 回車5、回到內核界面后按b進入引導系統6、在#后輸入passwd root修改密碼7、修改密碼:8、Reboot重啟9、使用新密…

【工作實踐-06】uniapp使用webView

一、建立APP頁面和webview的通訊 1.引入webview.js App 端使用 uni.web-view.js 的最低版為 uni.webview.1.5.4.js APP端可以支持網絡網頁和本地網頁,但如果使用本地網頁和相關資源(js、css等文件)必須放在 static 目錄下。 2.引入搭橋docum…

PostgreSQL中int類型達到上限的一些處理方案

使用int類型作為表的主鍵在pg中是很常見的情況,但是pg中int類型的范圍在-2147483648到2147483647,最大只有21億,這個在一些大表中很容易就會達到上限。一旦達到上限,那么表中便沒辦法在插入數據了,這個將會是很嚴重的問…

【react native】css踩坑記錄

1、IOS上面opacity重疊失效 在 iOS 上,當兩個具有相同背景色的元素重疊時,不透明度(opacity)較低的元素會顯示在較高的元素上方。 所以考慮使用rgba的形式。 // 對于下面這種寫法,如果存在container和activeIndicat…

word文檔空格不能有下劃線【筆記】

word文檔空格不能有下劃線 2024-3-1 21:20:24 推薦 word下劃線打不出來了,是怎么回事? 問題 字后面打不出來下劃線 操作 1.點擊文件 左上角,點擊“文件”。 2.點擊選項 鼠標下滑,點擊“選項”。 3.點擊常規與保存 點擊“…

java基礎-mysql

文章目錄 mysql基礎面試題什么是mysql什么是事務并發事務帶來的影響事物的隔離級別索引大表優化什么是池化思想,什么是數據庫連接池,為什么要用數據庫連接池?鎖,表鎖;樂觀鎖,悲觀鎖MySQL主備同步的基本原理SQL什么情況…

[⑥5G NR]: 無線接口協議,信道映射學習

5G系統整體包括核心網、接入網以及終端部分,接入網與終端間通過無線空口協議棧進行連接。無線接口可分為三個協議層:物理層(L1)、數據鏈路層(L2)和網絡層(L3)。 L1:物理…

【python】json轉成成yaml中文編碼異常顯示成:\u5317\u4EAC\u8DEF123\u53F7

姊妹篇:【python】json轉成成yaml json數據 {"name": "張三","age": 30,"isMarried": false,"children": [{"name": "小王","age": 5},{"name": "小李",&qu…

mysql冷備

數據庫備份類型 冷備份:在數據庫停止服務的情況下進行備份 熱備份:在數據庫處于運行狀態下進行備份 溫備份:不可寫但可讀的情況下進行備份 冷備分時,只需要在停止數據庫后,拷貝數據目錄到另一個地方即可。 mysql 啟…