最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解MySQL語句中的DDL

 更新時間:2023年06月04日 10:33:31   作者:啊蘇要學(xué)習(xí)  
這篇文章主要詳細(xì)介紹了SQL語句中的DDL,文章中有詳細(xì)的代碼示例以及圖文介紹,對我們的學(xué)習(xí)或工作有一定的幫助,感興趣的同學(xué)可以參考閱讀

一.DDL數(shù)據(jù)庫語句

1.1語句講解

DDL是數(shù)據(jù)定義語言,用來對數(shù)據(jù)庫、表、字段進(jìn)行操作。

show databases;

這句代碼是讓命令行窗口顯示服務(wù)器里一共有多少個數(shù)據(jù)庫,請看下圖:

MySQL系統(tǒng)軟件下載后,里面默認(rèn)有四個系統(tǒng)數(shù)據(jù)庫。

create database if not exists 數(shù)據(jù)庫名 default charset utf8mb4;

這句代碼是創(chuàng)建一個數(shù)據(jù)庫的DDL語句。其中的if not exists 和 default charset utf8mb4是可以省略的。

if not exists的作用是,如果存在test這個數(shù)據(jù)庫,這句代碼什么都不執(zhí)行,不存在就創(chuàng)建test數(shù)據(jù)庫。

下滑線部分表示數(shù)據(jù)庫創(chuàng)建成功。

補充:數(shù)據(jù)庫中有些字符用3個字節(jié)不夠表示,utf8的大小是3個字節(jié),utf8mb4是4個字節(jié)大小。

use 數(shù)據(jù)庫名;

這句代碼的作用是指定使用數(shù)據(jù)庫;

在一般情況下,對一個數(shù)據(jù)庫里的表、字段進(jìn)行多步操作后,已經(jīng)忘了自己所處的數(shù)據(jù)庫,使用這句代碼:

select database();

這句代碼可以指出現(xiàn)在處在哪個數(shù)據(jù)庫。

drop database if exists 數(shù)據(jù)庫名;

這句代碼是刪除數(shù)據(jù)庫的代碼,if exists可以省略,意思是如果存在test數(shù)據(jù)庫就刪除,否則不執(zhí)行任何操作。

1.2總結(jié)

DDL語句對數(shù)據(jù)庫的操作有如下:

二.DDL表語句

2.1語句講解

數(shù)據(jù)庫的數(shù)據(jù)模型里,數(shù)據(jù)庫里包含表,所以在講表的知識,先創(chuàng)建一個數(shù)據(jù)庫先。

show tables;

查詢當(dāng)前使用數(shù)據(jù)庫里包含的所有表。

由于是新建的數(shù)據(jù)庫,所以是空表Empty。

create table employee(
id int comment '編號',
gender char(1) comment '性別',
age tinyint unsigned comment '年齡'
)comment '員工表';

這是創(chuàng)建表的代碼,我們來慢慢分析,別怕!

首先create table是創(chuàng)建表的意思,這個表名是employee。
接著id、gender、age是表格的字段名、int、char(1)、tinyint是數(shù)據(jù)類型。
最后comment這一部分是注釋,可以省略。

每一個字段與另一個字段之間用逗號隔開,最后一個不加逗號。

desc 表名;

這句代碼可以顯示表的字段名,字段的數(shù)據(jù)類型。

但是看不到注釋,雖然我們知道id可能是編號的意思,但是什么編號就不知道了,普通人?門診號?還有一種查表的語句:

show create table 表名;

這句代碼的意思是,展示創(chuàng)建表時的語句。

alter table 表名 rename to 新表名;

這句代碼的意思是選擇原先的表名,改成新的表名。

drop table if exists 表名;

這句代碼是用來刪除指定表名的表,if exists可以省略,它的意思同前面用到的地方意思是一樣的。

刪完之后,test數(shù)據(jù)庫里就沒有表了,所以再次顯示表的信息時為空。 

truncate table 表名;

這句代碼也是用來刪除表的,但它會重新創(chuàng)建一個相同類型的沒有數(shù)據(jù)的表,但表的結(jié)構(gòu)還在。

比如前面emp這個表不是使用drop而是使用truncate的話,那在show tables的時候,還能看到emp表。

2.2總結(jié)

DDL語句對表的操作有如下:

三.DDL字段語句

3.1語句講解

對表中的字段進(jìn)行操作,也是DDL語句有的屬性。接下來我們就來學(xué)習(xí)對字段的操作吧~

突然覺得這個表在創(chuàng)建的時候,沒有添加一個信息,想增加一個字段,可以這樣做:

alter table 表名 add 字段名 數(shù)據(jù)類型 [comment '注釋'];

比如想加一個表示薪資的字段:

老板發(fā)現(xiàn)工資用int表示,工資給太高了,想給個小一點的整型表示,于是:

alter table 表名 modify 字段名 新數(shù)據(jù)類型;

這樣就可以改掉原先字段的數(shù)據(jù)類型了,老板很是開心~

后來老板發(fā)現(xiàn),這個薪資不能直接用數(shù)字表現(xiàn)出來,用等級的話隱蔽性會更好,這就需要更換整個字段。

alter table 表名 change 舊字段 新字段 新數(shù)據(jù)類型 [comment '注釋']; 

此時,老板的想法達(dá)成了。

alter table emp drop 字段名;

這段代碼的意思是刪除指定表的字段名。 

3.2總結(jié)

以下是DDL語句對字段的操作:

講到這里,DDL語句的基本操作就講完啦!可能讀者很好奇tinyint、smallint、char(1)這些是什么,我們接下來看。

四.MySQL數(shù)據(jù)類型

SQL里的數(shù)據(jù)類型和其它編程語言有點區(qū)別,但也有相似的地方,它分為三類,我們直接看圖吧。

整型

數(shù)值類型是其中的一種類型,tinyint的大小是一個字節(jié)的整型,相當(dāng)于C語言里的char類型。

smallint相當(dāng)于C里的shortbigint相當(dāng)于C里的long long類型。特殊一點的是mediumint占三個字節(jié)大小。

浮點類型和C是一樣的,有兩點特別的是:decimal和控制浮點數(shù)小數(shù)點保留位數(shù)的方式。

這里得引入兩個概念,精度和標(biāo)度

  • 精度是浮點數(shù)總共有多少位數(shù),比如3.14的精度是3。
  • 標(biāo)度是浮點數(shù)有多少個小數(shù)位,6.1的標(biāo)度是1。

如何表示三位數(shù),一個小數(shù)位呢?首先總共有四個有效位,其次是一個小數(shù)位,是這樣表示的double(4,1)。

在字符串類型里,有char和varchar,學(xué)過C語言的讀者會聯(lián)想到表示字符串用char arr[元素個數(shù)]數(shù)組表示。

在MySQL用char(元素個數(shù))表示定長數(shù)組,varchar(元素個數(shù))表示可變數(shù)組。注意不是方括號。

blob是表示二進(jìn)制數(shù)據(jù)的數(shù)據(jù)類型,text是表示文本數(shù)據(jù)的數(shù)據(jù)類型;

二進(jìn)制數(shù)據(jù)類型的有軟件包、音頻呀這些。一般不會用數(shù)據(jù)庫存儲的。

tinyblob一個字節(jié)、blob兩個字節(jié)、mediumblob三個字節(jié)、longblob四個字節(jié)、text一樣的,博主不贅述了。

表示日期時間的數(shù)據(jù)類型:

date是表示年月日--- yyyy--mm--dd

time是表示時分秒--- hh--mm--ss

year是表示年--- yyyy

datetime表示年月日,時分秒

timestamp表示的也是年月日,時分秒,不同于datetime的是timestamp是時間戳,由于數(shù)值溢出的原因,在2038年會失效,也叫Unix千年臭蟲。

五.結(jié)尾

好啦,到這里就講完SQL語句里的DDL語言,還講了MySQL中的數(shù)據(jù)類型與其它編程語言有一定聯(lián)系,也有區(qū)別。

以上就是詳解MySQL語句中的DDL的詳細(xì)內(nèi)容,更多關(guān)于MySQL語句DDL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文搞定MySQL binlog/redolog/undolog區(qū)別

    一文搞定MySQL binlog/redolog/undolog區(qū)別

    這篇文章主要介紹了一文搞定MySQL binlog/redolog/undolog區(qū)別,作為開發(fā),我們重點需要關(guān)注的是二進(jìn)制日志(binlog)和事務(wù)日志(包括redo log和undo log),本文接下來會詳細(xì)介紹這三種日志,需要的朋友可以參考下
    2023-04-04
  • mysql如何對String類型的數(shù)字值排序

    mysql如何對String類型的數(shù)字值排序

    這篇文章主要介紹了mysql如何對String類型的數(shù)字值排序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL基礎(chǔ)入門之Case語句用法實例

    MySQL基礎(chǔ)入門之Case語句用法實例

    case語句是mysql中的一個條件語句,可以在字段中使用case語句進(jìn)行復(fù)雜的篩選以及構(gòu)造新的字段,下面這篇文章主要給大家介紹了關(guān)于MySQL基礎(chǔ)入門之Case語句用法的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • MySQL中如何給一個字段遞增賦值

    MySQL中如何給一個字段遞增賦值

    這篇文章主要介紹了MySQL中如何給一個字段遞增賦值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL插入數(shù)據(jù)的實現(xiàn)方式

    MySQL插入數(shù)據(jù)的實現(xiàn)方式

    這篇文章主要介紹了MySQL插入數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • MySQL實戰(zhàn)教程之Join語句執(zhí)行流程

    MySQL實戰(zhàn)教程之Join語句執(zhí)行流程

    這篇文章主要介紹了MySQL Join語句執(zhí)行流程,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 如何解決mysql表輸入中文出現(xiàn)問號的問題

    如何解決mysql表輸入中文出現(xiàn)問號的問題

    這篇文章主要介紹了如何解決mysql表輸入中文出現(xiàn)問號的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • MySQL與Redis如何保證雙寫一致性詳解

    MySQL與Redis如何保證雙寫一致性詳解

    雙寫一致性是指在系統(tǒng)中同時使用緩存(如Redis)和數(shù)據(jù)庫(如MySQL)時,如何確保兩者的數(shù)據(jù)保持一致,這篇文章主要介紹了MySQL與Redis如何保證雙寫一致性的相關(guān)資料,需要的朋友可以參考下
    2025-10-10
  • MySQL中DML添加數(shù)據(jù)insert的操作方法

    MySQL中DML添加數(shù)據(jù)insert的操作方法

    DML英文全稱Data Manipulation Language數(shù)據(jù)操作語言,用來對數(shù)據(jù)庫中表的數(shù)據(jù)記錄進(jìn)行增、刪、改在實際開發(fā)過程中使用比較多,務(wù)必掌握操作,這篇文章主要介紹了MySQL中DML添加數(shù)據(jù)insert的操作方法,需要的朋友可以參考下
    2023-07-07
  • MySQL中索引的創(chuàng)建及刪除方法

    MySQL中索引的創(chuàng)建及刪除方法

    MySQL中的索引是一種特殊的數(shù)據(jù)結(jié)構(gòu),它的主要目的是為了加快數(shù)據(jù)的檢索速度,下面這篇文章主要給大家介紹了關(guān)于MySQL中索引的創(chuàng)建及刪除的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08

最新評論

定南县| 兴业县| 芒康县| 邓州市| 碌曲县| 轮台县| 罗平县| 高陵县| 柯坪县| 田东县| 海安县| 温宿县| 邵阳市| 汝阳县| 吉安市| 静海县| 万盛区| 长岛县| 新巴尔虎左旗| 澄城县| 周至县| 柘城县| 周宁县| 朝阳县| 九龙县| 龙南县| 澄城县| 呼伦贝尔市| 衡山县| 翼城县| 叙永县| 徐水县| 新兴县| 安平县| 夹江县| 敦化市| 吉隆县| 锦州市| 罗田县| 阿图什市| 韶山市|