標籤:des style blog http color ar sp 資料 on
原文: mysql基礎之對庫表操作
查看一下所有的庫,怎麼辦?
Mysql>Show databases;
選庫語句: Use 庫名
建立一個資料庫: create database 資料庫名 [charset 字元集]
刪除一個資料庫: drop database 資料庫名;
把資料庫改改名?
Mysql中,表/列可以改名,database不能改名.
phpMyAdmin似乎有這功能? 他是建新庫,把所有表複製到新庫,再刪舊庫完成的.
當選了庫之後,我們面對的是表
查看庫下面的所有表: show tables;
先給大家提供一個簡單的建表語句
create table stu (
snum int,
sname varchar(10)
)engine myisam charset utf8;
刪除表: drop table stu;
修改表名:
清空表資料: truncate 表名
Truncate和delete是有區別的,
在於 truncate相當於刪表再重建一張同樣結構的表,操作後得到一張全新表.
而delete是從刪除所有的層面來操作的.
Trucate相當於把舊的學籍表扔了重畫一張,
Delete相當於用橡皮把學籍表的資料庫擦掉.
如果決定全清空的下,truncate速度更快一些.
查看錶結構
答: desc tableName; //查看錶結構
12: 解決字元集問題:
預設建表一般用utf8, 而我們在windows下視窗是GBK的,
因此,需要聲明字元集.
Set names gbk;
發現的1小問題
語句打錯以後應該退出本語句,再繼續打新語句.也可以打\c,退出本語句.
如何破解資料庫的密碼:
1:通過工作管理員或者服務管理,關掉mysqld(服務進程)
2:通過命令列+特殊參數開啟mysqld
Mysqld --skip-grant-tables
3:此時,mysqld服務進程已經開啟,並且,不需要許可權檢查.
4:mysql -uroot 無密碼登陸伺服器.
5: 修改許可權表
A: use mysql;
B:update user set Password = password(‘11111‘) where User = ‘root‘;
C:flush privileges;
6:通過工作管理員,或服務管理,關掉mysqld服務進程.
7:再次通過服務管理,開啟mysql服務.
建表文法
所謂建表就是一個聲明列的過程.
create table 表名 (
列名1 列類型1 列1參數,
列名2 列類型2 列2參數,
....
...
列名n 列類型n 列n參數
)engine myisam/innodb/bdb charset utf8/gbk/latin1...
修改表的文法
一張表,建立完畢,有了N列.
之後還有可能要增加或刪除或修改列
Alter table 表名 add 列名稱 列類型 列參數; [加的列在表的最後]
例: alter table m1 add birth date not null default ‘0000-00-00‘;
Alter table 表名 add 列名稱 列類型 列參數 after 某列 [把新列加在某列後]
例: alter table m1 add gender char(1) not null default ‘‘ after username;
Alter table 表名 add 列名稱 列類型 列參數 first [把新列加在最前面]
例: alter table m1 add pid int not null default 0 first;
刪除列:
Alter table 表名 drop 列名
修改列類型:
Alter table 表名 modify 列名 新類型 新參數
例:alter table m1 modify gender char(4) not null default ‘‘;
修改列名及列類型
Alter table 表名 change 舊列名 新列名 新類型 新參數
例:alter table m1 change id uid int unsigned;
??如果列類型改變了,導致資料存不下怎麼辦?
比如,int 改成smallint列. 如果不匹配,資料將會丟失,或者在mysql的strict_mode下,修改不了.
為什麼建表時,加not null default ‘‘ / default 0
答:不想讓表中出現null值.
為什麼不想要的null的值
答:
不好比較,null是一種類型,比較時,只能用專門的is null 和 is not null來比較.
碰到運算子,一律返回null
效率不高,影響提高索引效果.
因此,我們往往,在建表時 not null default ‘‘/0
常用資料庫管理語句:
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;
mysql基礎之對庫表操作