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