查看一下所有的庫(kù) , 怎么辦 ?
Mysql>Show?databases;
?
選庫(kù)語(yǔ)句 : ?Use? 庫(kù)名
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) :? create?database? 數(shù)據(jù)庫(kù)名? [charset? 字符集 ]
刪除一個(gè)數(shù)據(jù)庫(kù) : ?drop?database? 數(shù)據(jù)庫(kù)名 ;
把數(shù)據(jù)庫(kù)改改名 ?
Mysql 中 , 表 / 列可以改名 , database 不能改名 .
phpMyAdmin 似乎有這功能 ?? 他是建新庫(kù) , 把所有表復(fù)制到新庫(kù) , 再刪舊庫(kù)完成的 .
當(dāng)選了庫(kù)之后, 我們面對(duì)的是表
查看庫(kù)下面的所有表 :?show??tables;
?
先給大家提供一個(gè) 簡(jiǎn)單的建表語(yǔ)句
create?table?stu?(
snum?int,
sname?varchar(10)
)engine?myisam?charset?utf8;
刪除表 :? drop?table?stu;
修改表名 :

清空表數(shù)據(jù) :? truncate? 表名

Truncate 和 delete 是有區(qū)別的 ,
在于? truncate 相當(dāng)于刪表再重建一張同樣結(jié)構(gòu)的表 , 操作后得到一張全新表 .
而 delete 是從刪除所有的層面來(lái)操作的 .
Trucate 相當(dāng)于把舊的學(xué)籍表扔了重畫一張 ,
Delete 相當(dāng)于用橡皮把學(xué)籍表的數(shù)據(jù)庫(kù)擦掉 .
如果決定全清空的下 ,truncate 速度更快一些 .
查看表結(jié)構(gòu)
答 :?desc?tableName;?// 查看表結(jié)構(gòu)
12:? 解決字符集問(wèn)題 :
默認(rèn)建表一般用 utf8,? 而我們?cè)? windows 下窗口是 GBK 的 ,
因此 , 需要聲明字符集 .
Set?names?gbk;
發(fā)現(xiàn)的 1 小問(wèn)題?
語(yǔ)句打錯(cuò)以后應(yīng)該退出本語(yǔ)句 , 再繼續(xù)打新語(yǔ)句 . 也可以打 \c, 退出本語(yǔ)句 .
如何破解數(shù)據(jù)庫(kù)的密碼 :
1: 通過(guò)任務(wù)管理器或者服務(wù)管理 , 關(guān)掉 mysqld( 服務(wù)進(jìn)程 )
2: 通過(guò)命令行 + 特殊參數(shù)開(kāi)啟 mysqld
Mysqld?--skip-grant-tables
3: 此時(shí) ,mysqld 服務(wù)進(jìn)程已經(jīng)打開(kāi) , 并且 , 不需要權(quán)限檢查 .
4:mysql?-uroot?? 無(wú)密碼登陸服務(wù)器 .
5:? 修改權(quán)限表
??A:?use?mysql;
??B:update?user?set?Password?=?password('11111')?where?User?=?'root';
??C:flush?privileges;
6:
通過(guò)任務(wù)管理器
,
或服務(wù)管理
,
關(guān)掉
mysqld
服務(wù)進(jìn)程
.
7: 再次通過(guò)服務(wù)管理 , 打開(kāi) mysql 服務(wù) .
建表語(yǔ)法
所謂建表就是一個(gè)聲明列的過(guò)程 .
create?table? 表名 ?(
列名 1? 列類型 1?? 列 1 參數(shù) ,
列名 2? 列類型 2? 列 2 參數(shù) ,
....
...
列名 n? 列類型 n? 列 n 參數(shù)
)engine?myisam/innodb/bdb?charset?utf8/gbk/latin1...
?
?
修改表的語(yǔ)法
一張表 , 創(chuàng)建完畢 , 有了 N 列 .
之后還有可能要增加或刪除或修改列?
?
Alter?table? 表名? add? 列名稱?列類型?列參數(shù) ;? ?[ 加的列在表的最后 ]
例 :? alter?table?m1?add?birth?date?not?null?default?'0000-00-00';
Alter?table? 表名? add? 列名稱?列類型?列參數(shù)? after? 某列? [ 把新列加在某列后 ]
例 :? alter?table?m1?add?gender?char(1)?not?null?default?''?after?username;
?
Alter?table? 表名? add? 列名稱?列類型?列參數(shù)? first? [ 把新列加在最前面 ]
例 : ?alter?table?m1?add?pid?int?not?null?default?0?first;
?
?
刪除列 :
Alter?table? 表名?? drop? 列名
?
?
修改列類型 :
Alter?table? 表名 ?modify? 列名 ? 新類型??新參數(shù)
例 : alter?table?m1?modify?gender?char(4)?not?null?default?'';
?
修改列名及列類型
Alter?table? 表名? change? 舊列名?新列名?新類型?新參數(shù)
例 :alter?table?m1?change?id?uid?int?unsigned;
?
?? 如果列類型改變了 , 導(dǎo)致數(shù)據(jù)存不下怎么辦 ?
比如 ,int? 改成 smallint 列 .??? 如果不匹配 , 數(shù)據(jù)將會(huì)丟失 , 或者在 mysql 的 strict_mode 下 , 修改不了 .
為什么建表時(shí)
,
加
not?null?default?''?/?default?0
答 : 不想讓表中出現(xiàn) null 值 .
?
為什么不想要的 null 的值
答 :
不好比較 ,null 是一種類型 , 比較時(shí) , 只能用專門的 is?null? 和? is?not?null 來(lái)比較 .
碰到運(yùn)算符 , 一律返回 null
效率不高 , 影響提高索引效果 .
?
因此 , 我們往往 , 在建表時(shí)? not?null?default?''/0
常用數(shù)據(jù)庫(kù)管理語(yǔ)句:
create table goods ( goods_id mediumint(8) unsigned primary key auto_increment, goods_name varchar(120) not null default '', cat_id smallint(5) unsigned not null default '0', brand_id smallint(5) unsigned not null default '0', goods_sn char(15) not null default '', goods_number smallint(5) unsigned not null default '0', shop_price decimal(10,2) unsigned not null default '0.00', market_price decimal(10,2) unsigned not null default '0.00', click_count int(10) unsigned not null default '0' ) engine=myisam default charset=utf8;
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
