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)文章!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。