mysql基礎之對庫表操作

來源:互聯網
上載者:User

標籤: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基礎之對庫表操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.