在數(shù)據(jù)庫(kù)里面操作表:
①:首先要打開(kāi)數(shù)據(jù)庫(kù):
操作如下:?
use?db_name;
?
②:其次要寫表信息:
操作模版如下:
?
mysql>?create??table???tb_name
->?(
->?列信息
->?)[表選項(xiàng)];
?
?
操作實(shí)例如下:
mysql>create?table?score
?????->(
?????->stu?int,
?????->name?varchar(20),
?????->ke?varchar(10),
?????->fen?int
?????->);
記住:
①:內(nèi)容被圓括號(hào)包含织鲸,而不是花括號(hào)
②:每個(gè)內(nèi)容以逗號(hào),結(jié)尾
③:最后的一個(gè)元素沒(méi)有,逗號(hào)
????④:表名不能以數(shù)字開(kāi)頭蔓彩;
?
?
修改表名:(數(shù)據(jù)庫(kù)名是不能改的)
rename?table?old_tb_name?to?new_tb_name;
?
?
查看表:(查看表的個(gè)數(shù))
show?tables;
?
?
?
描述表:(查看表的結(jié)構(gòu))
?
??desc?tb_name;???(desc?表示describe)
示例:?desc??newscore;?
?
?
刪除表:
drop?table?tb_name;
?
退出:
\c
用法:清空當(dāng)前陳述,發(fā)現(xiàn)自己打錯(cuò)了的時(shí)候用。
?
?
數(shù)據(jù)庫(kù)的增刪改查:
增:
增以行為單位,可以增加某一列的信息,也可以增加一整行的信息拱撵。
模板:
insert?into?tb_name
(表頭1,表頭2,表頭3,表頭4,表頭5)??----如果此處什么都不寫,表示每個(gè)變量都要給值1眚拴测!
values
(內(nèi)容1,內(nèi)容2府蛇,內(nèi)容3集索,內(nèi)容4,內(nèi)容5);
?
例如:
insert??into?massage
(id,name,title,content,date)
values
(1,'余亮','第二天學(xué)mysql','我一定要挺過(guò)來(lái)','2015/8/16');
?
插入列:
alter?table?tb_name?add?列名?varchar(10);
?
小技巧:
可以一次增加多行汇跨;
?
查:
select?*?from?tb_name?where?表達(dá)式;
可以加條件查看表务荆;查看部分列部分行
注:?name,content表示查看的列,
?????id>2表示查看的行穷遂;
?
改:
模版:
update?tb_name
set
表頭=值,??(要改的行的?內(nèi)容)
表頭=值?(要改的行的?內(nèi)容)
where
表達(dá)式;?(通過(guò)原值定位行)
?
示例:
update?massage
set
id=2,
content=’今天沒(méi)遲到’
where
id=1;
?
?
注意:
where?前面的值后沒(méi)有,逗號(hào)函匕。
?
刪:
delete?from?massage?where?表頭=’內(nèi)容’;
delete?from?massage?where?content=’今天沒(méi)遲到’;
?
?
?
列的默認(rèn)值:
設(shè)置格式:
not?null?default?值;
示例:
在插入一個(gè)列的時(shí)候,可以聲明獵德默認(rèn)值:
如:
?alter?table?feature?add?homenum?tinyint?unsigned?not?null?default?0;
解釋圖中圈紅地方的意思:
Null:
下面的YES表示該列的值可以為NULL蚪黑,表示未設(shè)默認(rèn)值
下面的NO表示該列的值不可以為NULL盅惜,表示已設(shè)默認(rèn)值
Default:
下面的NULL表示默認(rèn)值為NULL吸耿,表示未設(shè)默認(rèn)值。
如果下面的值為非NULL酷窥,則表示已設(shè)置默認(rèn)值。
?
?
?
詳解列類型:
引子:建表就是聲明列的過(guò)程伴网,聲明列直接影響數(shù)據(jù)庫(kù)占用硬盤的大小蓬推,所以列類型很重要。
?
①:數(shù)值型:
1:整型:
?分五類?:
??tinyint??????
??smallint
??mediumint
??int
??highint
?
?
以數(shù)學(xué)的角度討論以上五種整型澡腾;
1.占據(jù)空間
2.存儲(chǔ)范圍
整型默認(rèn)為有符號(hào)位
?
?
?
整型列的可選屬性:
1.tinyint(M)?
??M代表寬度沸伏,只有在zerofill下才有意義;
2.unsigned
?作用:聲明整型為無(wú)符號(hào)位动分,影響存儲(chǔ)范圍毅糟。
?用法:放在int?關(guān)鍵字后面;
?示例:int?unsigned;
3.zerofill
?零填充(如果某列為zerofill澜公,默認(rèn)就是無(wú)符號(hào));
?
2.1浮點(diǎn)型/小數(shù)型:
定義格式:
float(M,D),
double(M,D)
M:精度(總位數(shù)姆另,不含小數(shù)點(diǎn))
D:標(biāo)度(小數(shù)位數(shù))
float?(4,2)的范圍是?-99.99~+99.99
提示:float?double對(duì)小數(shù)部分非常不準(zhǔn)確坟乾,所以記賬不能用浮點(diǎn)數(shù)迹辐;
?
2.2定點(diǎn)數(shù):
decimal(M,D)
或者numbric也是一樣的。
它是以字符串的形式存放甚侣,很精確明吩;
記賬一般使用decimal;
關(guān)于定點(diǎn)數(shù)和浮點(diǎn)數(shù)的區(qū)別殷费,下面的兩個(gè)鏈接繼續(xù)說(shuō)明:
http://m.blog.csdn.net/blog/moqiang02/40616467#
http://www.educity.cn/wenda/399662.html
3:字符型
?
?分三種:
?char(M)??
定長(zhǎng)字符串印荔,M代表寬度,即可容納的字符數(shù)详羡,始終占M個(gè)字符
細(xì)節(jié):???
????當(dāng)實(shí)際存的字符串N<M,那么尾部則以空格填充
????當(dāng)取出該字符串時(shí)仍律,將空格去掉。
?
弊端:1.當(dāng)存放的數(shù)據(jù)尾部有空格時(shí)會(huì)被去掉
??????2.容易造成浪費(fèi)实柠;
好處:1,存放的字符沒(méi)有限制染苛。
??????2.利用率可能是100%
??????3.速度快。
?Varchar(M)?
?變長(zhǎng)字符串主到,M代表寬度茶行,即可容納的字符數(shù),設(shè)N<M登钥,寬度為N畔师,占N個(gè)字符;
細(xì)節(jié):
???存放的是數(shù)據(jù)加長(zhǎng)度牧牢,即i個(gè)字符+(1~2個(gè)字節(jié))看锉;
???這里的字節(jié)是指字符的個(gè)數(shù)姿锭;
utf-8:??一個(gè)字符占1個(gè)字節(jié)。?一個(gè)漢字占3個(gè)字節(jié)伯铣。
?0<M<65535?,?在utf-8中?大約能存22000個(gè)左右漢字呻此;
?
缺點(diǎn):存放的字符只能是22000左右。
??????占用率小宇100%腔寡。
??????速度慢焚鲜。
?
區(qū)別總結(jié):
1.存儲(chǔ)的數(shù)據(jù)大小有區(qū)別
2.空間利用率有區(qū)別
3.對(duì)空格的處理有區(qū)別
char與varchar的選擇:
1.空間利用效率,四字成語(yǔ)表放前,char(4)忿磅,
???????????????個(gè)人簡(jiǎn)介,微博140字凭语,varchar(140).
?
2速度
?用戶:?用char(浪費(fèi)不了多少空間)
?test:
文本串:
?特點(diǎn):可以存放較大的內(nèi)容葱她,但是速度稍慢;
備注:不能給test類型的變量加上默認(rèn)值
提示:內(nèi)容不大時(shí)用char?,?varchar
?
?
4:日期型:
year:
表示年份
一個(gè)字節(jié)似扔,表示1901~2155吨些;.
如果輸入兩位,“00~69”表示2000~2069
??????????????“70~99”表示1970~1999
date:
表示日期
典型格式:
1992-08-01
日期類型:‘10000-1-1?到?9999-12-31’
time:
表示時(shí)間:
hh:mm:ss
1.表示時(shí)間?
2.表示時(shí)間間隔
?范圍:?‘-838’59’’59’’’~838’59’’59’’’’
datetime:
表示日期和時(shí)間:
典型格式:
‘1984-03-21?11:35:33’
?
總結(jié):
在實(shí)際php開(kāi)發(fā)中炒辉,可以用時(shí)間戳表示锤灿,意思是從1970-01-01?00:00:00到當(dāng)前的秒數(shù);
函數(shù)是?time()
將時(shí)間戳轉(zhuǎn)化為日期
date(‘Y-m-d’,time());
?
5.enum
enum是個(gè)類型
?
典型格式:
?
sex?enum{‘男’辆脸,‘女’}但校;
?
缺點(diǎn):不是元信息,里面有內(nèi)在關(guān)聯(lián):enum的值可以新建一個(gè)表啡氢,不符合關(guān)系型數(shù)據(jù)庫(kù)的設(shè)計(jì)理念状囱。
**************************以上為第二天內(nèi)容***********************************