Mysql學(xué)習(xí)之創(chuàng)建和操作數(shù)據(jù)庫(kù)及表DDL大全小白篇
1.操作數(shù)據(jù)庫(kù)
1.1創(chuàng)建數(shù)據(jù)庫(kù)
create + database + 數(shù)據(jù)庫(kù)名稱
當(dāng)然如果我們不知道數(shù)據(jù)庫(kù)是否存在,如果存在就不創(chuàng)建,不存在就創(chuàng)建可以用以下語(yǔ)句
create + database + if not exists + 數(shù)據(jù)庫(kù)名稱
我們還可以在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候指定字符集
create + dabase + if not exists + 數(shù)據(jù)庫(kù)名 +character set + 字符集名
1.2查詢數(shù)據(jù)庫(kù)
查詢所有已經(jīng)存在的數(shù)據(jù)庫(kù)
show databases
查詢某個(gè)數(shù)據(jù)庫(kù)的創(chuàng)建語(yǔ)句和所使用的字符集
show create database + 數(shù)據(jù)庫(kù)名稱
1.3修改數(shù)據(jù)庫(kù)
修改數(shù)據(jù)庫(kù)字符集
alter database + 數(shù)據(jù)庫(kù)名稱 + character set + 字符集名稱
1.4刪除數(shù)據(jù)庫(kù)
drop database +數(shù)據(jù)庫(kù)名
同樣的,也可以加上 if not exists
drop database + if exists + 數(shù)據(jù)庫(kù)名稱
1.5使用數(shù)據(jù)庫(kù)
使用數(shù)據(jù)庫(kù)
use + 數(shù)據(jù)庫(kù)名稱
查詢當(dāng)前正在使用數(shù)據(jù)庫(kù)的名稱
select database()
2.操作表
2.1MySQL數(shù)據(jù)類型
數(shù)據(jù)類型 | 介紹 |
---|---|
tinyint | 存儲(chǔ)1字節(jié)8位的整數(shù) |
int/integer | 存儲(chǔ)4字節(jié)32位的整數(shù) |
float | 存儲(chǔ)單精度浮點(diǎn)數(shù) |
double | 存儲(chǔ)雙精度浮點(diǎn)數(shù) |
char(n) | 存儲(chǔ)字符 |
varchar(n) | 存儲(chǔ)字符 |
date | 存儲(chǔ)日期,只包含年月日格式:yyyy-MM–dd |
datetime | 存儲(chǔ)日期,包含年月日時(shí)分秒,格式:yyyy-MM-dd HH:mm:ss |
timestamp | 存儲(chǔ)日期,包含年月日時(shí)分秒,格式:yyyy-MM-dd HH:mm:ss |
問題1:varchar和char的特點(diǎn)和區(qū)別
char的特點(diǎn):
1.char表示定長(zhǎng)字符串,長(zhǎng)度是固定的(比如char(5)即使不夠5個(gè)字符也是按5個(gè)字符存儲(chǔ))
個(gè)字符也會(huì)按照5個(gè)字符存儲(chǔ));
2.如果插入數(shù)據(jù)的長(zhǎng)度小于char的固定長(zhǎng)度時(shí),則用空格填充;
3.因?yàn)殚L(zhǎng)度固定,所以存取速度要比varchar快很多,甚至能快50%,但正因?yàn)槠溟L(zhǎng)度固定,所以會(huì)占據(jù)多余的空間,是空間換時(shí)間的做法;
4.對(duì)于char來說,最多能存放的字符個(gè)數(shù)為255,和編碼無關(guān)
varchar的特點(diǎn):
1.varchar表示可變長(zhǎng)字符串,長(zhǎng)度是可變的(比如varchar(5)不夠5個(gè)字符,比如3個(gè)那么就按照三個(gè)字符存儲(chǔ));
2.插入的數(shù)據(jù)是多長(zhǎng),就按照多長(zhǎng)來存儲(chǔ);
3.varchar在存取方面與char相反,它存取慢,因?yàn)殚L(zhǎng)度不固定,但正因如此,不占據(jù)多余的空間,是時(shí)間換空間的做法;
4.對(duì)于varchar來說,最多能存放的字符個(gè)數(shù)為65532
兩者的區(qū)別:
結(jié)合性能角度(char更快)和節(jié)省磁盤空間角度(varchar更?。?/p>
還有一個(gè)點(diǎn)兩者都存儲(chǔ)字符
張三:代表兩個(gè)字符
zhangsan:代表八個(gè)字符
問題2:int(20)中20的涵義
是指顯示字符的長(zhǎng)度。20表示最大顯示寬度為20,但仍占4字節(jié)存儲(chǔ),存儲(chǔ)范圍不變;
不影響內(nèi)部存儲(chǔ),只是影響帶 zerofill 定義的 int 時(shí),前面補(bǔ)多少個(gè) 0,易于報(bào)表展示
問題3:float和double的區(qū)別是什么?
1.float類型數(shù)據(jù)可以存儲(chǔ)至多8位十進(jìn)制數(shù),并在內(nèi)存中占4字節(jié)。
2.double類型數(shù)據(jù)可以存儲(chǔ)至多18位十進(jìn)制數(shù),并在內(nèi)存中占8字節(jié)。
問題4:datetime和timestamp的區(qū)別?
對(duì)于類型為timestamp的字段來說,不給這個(gè)字段賦值或者給這個(gè)字段賦空值那么都會(huì)默認(rèn)使用當(dāng)前系統(tǒng)時(shí)間
2.2創(chuàng)建表
create table +表名(
列 數(shù)據(jù)類型,
列 數(shù)據(jù)類型,
.........
列 數(shù)據(jù)類型
)
有時(shí)候我們想 復(fù)制一個(gè)表的結(jié)構(gòu):
create table + 復(fù)制的新表名 + like + 被復(fù)制的表
有時(shí)候我們想 復(fù)制表的所有內(nèi)容:
create table + 復(fù)制的新表名 + select * from 要復(fù)制的表名
注意沒有l(wèi)ike
有時(shí)候我們 只復(fù)制部分內(nèi)容:
create table + 復(fù)制的新表名 + select語(yǔ)句
有時(shí)候我們 只復(fù)制部分表的字段結(jié)構(gòu)
create table + 復(fù)制的新表名 + select 需要復(fù)制的字段 +from 要復(fù)制的表 + where + 一個(gè)恒不成立的條件(如0=1)
2.3查詢表
查詢數(shù)據(jù)庫(kù)中所有的表的名稱
show tables
查詢表結(jié)構(gòu)
desc + 表名
2.4刪除表
drop table + if exists + 表名
2.5修改表
修改表名
alter table + 表名 + rename to + 新表名
修改表的字符集
alter table + 表名 + character set + 字符集名稱
添加一列
alter table + 表名 + add + (column) + 列 數(shù)據(jù)類型
修改列名稱
alter table + 表名 + change + (column) + 列名 新列名 數(shù)據(jù)類型
修改列類型
alter table 表名 modify + (column) + 列名 新的數(shù)據(jù)類型
刪除列
alter table + 表名 + drop 列名
以上就是Mysql學(xué)習(xí)之創(chuàng)建和操縱數(shù)據(jù)庫(kù)及表DDL大全小白篇的詳細(xì)內(nèi)容,更多關(guān)于Mysql數(shù)據(jù)庫(kù)資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GR
這篇文章主要給大家介紹了關(guān)于MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”的解決方法,文中將解決方法介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06深入mysql存儲(chǔ)過程中表名使用參數(shù)傳入的詳解
本篇文章是對(duì)mysql存儲(chǔ)過程中表名使用參數(shù)傳入進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mysql實(shí)現(xiàn)合并同一ID對(duì)應(yīng)多條數(shù)據(jù)的方法
這篇文章主要介紹了mysql實(shí)現(xiàn)合并同一ID對(duì)應(yīng)多條數(shù)據(jù)的方法,涉及mysql GROUP_CONCAT函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06MySQL數(shù)據(jù)庫(kù)聚合函數(shù)與分組查詢舉例詳解
在MySQL中聚合函數(shù)和分組查詢經(jīng)常一起使用,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)聚合函數(shù)與分組查詢的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01mysql千萬級(jí)數(shù)據(jù)大表該如何優(yōu)化?
如何設(shè)計(jì)或優(yōu)化千萬級(jí)別的大表?此外無其他信息,個(gè)人覺得這個(gè)話題有點(diǎn)范,就只好簡(jiǎn)單說下該如何做,對(duì)于一個(gè)存儲(chǔ)設(shè)計(jì),必須考慮業(yè)務(wù)特點(diǎn),收集的信息如下2011-08-08MySQL全局遍歷替換特征字符串的實(shí)現(xiàn)方法
本文主要介紹了MySQL全局遍歷替換特征字符串的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03MySQL數(shù)據(jù)庫(kù)升級(jí)的一些"陷阱"
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)升級(jí)需要注意的地方,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08Mysql寫入數(shù)據(jù)十幾秒后被自動(dòng)刪除了如何解決
這篇文章主要介紹了Mysql寫入數(shù)據(jù)十幾秒后被自動(dòng)刪除了如何解決,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09