MySQL處理資料庫和表的常用命令
我是新手
學習如何管理和導航MySQL資料庫和表是要掌握的首要任務之一,下面的內容將主要對MySQL的資料庫和表的一些常用命令進行總結,一些我們不得不掌握的命令,一些信手拈來的命令。
處理資料庫
檢視資料庫
獲取伺服器上的資料庫列表通常很有用。執行show databases;命令就可以搞定。
mysql> show databases;
建立資料庫
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)
使用資料庫
資料庫一旦建立,就可以通過“使用”(use命令)資料庫,將其指定為預設的工作資料庫。
mysql> use db_test;
Database changed
刪除資料庫
刪除資料庫的方式與建立的方式很相似。可以在mysql客戶端中使用drop命令刪除資料庫,如下:
mysql> drop database db_test;
Query OK, 0 rows affected (0.00 sec)
處理表
這裡將對如何建立、列出、檢視、刪除和修改MySQL資料庫表。
建立表
表通過create table語句來建立。建立表的過程中會使用非常多的選項和子句,在這裡完全總結一遍也是不現實的,這裡只是總結最普遍的,以後遇到別的,再單個總結。建立表的一般用法如下:
mysql> create table tb_test( -> id int unsigned not null auto_increment, -> firstname varchar(25) not null, -> lastname varchar(25) not null, -> email varchar(45) not null, -> phone varchar(10) not null, -> primary key(id)); Query OK, 0 rows affected (0.03 sec)
記住,表至少包含一列。另外,建立表之後總是可以再回過頭來修改表的結構。無論當前是否在使用目標資料庫,都可以建立表,只要在表名前面加上目標資料庫即可。例如:
mysql> create table db_test.tb_test( -> id int unsigned not null auto_increment, -> firstname varchar(25) not null, -> lastname varchar(25) not null, -> email varchar(45) not null, -> phone varchar(10) not null, -> primary key(id)); Query OK, 0 rows affected (0.03 sec)
有條件的建立表
在預設情況下,如果試圖建立一個已經存在的表,MySQL會產生一個錯誤。為了避免這個錯誤,create table語句提供了一個子句,如果你希望在目標表已經存在的情況下簡單地退出表建立,就可以使用這個子句。例如:
mysql> create table if not exists db_test.tb_test( -> id int unsigned not null auto_increment, -> firstname varchar(25) not null, -> lastname varchar(25) not null, -> email varchar(45) not null, -> phone varchar(10) not null, -> primary key(id)); Query OK, 0 rows affected, 1 warning (0.00 sec)
無論是否已經建立,都會在返回到命令提示視窗時顯示“Query OK”訊息。
複製表
基於現有的表建立新表是一項很容易的任務。以下程式碼將得到tb_test表的一個副本,名為tb_test2:
mysql> create table tb_test2 select * from db_test.tb_test; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0
將向資料庫增加一個相同的表tb_test2。而有的時候,可能希望只基於現有表的幾個列建立一個表。通過create select語句中指定列就可以實現:
mysql> describe tb_test; +-----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | firstname | varchar(25) | NO | | NULL | | | lastname | varchar(25) | NO | | NULL | | | email | varchar(45) | NO | | NULL | | | phone | varchar(10) | NO | | NULL | | +-----------+------------------+------+-----+---------+----------------+ 5 rows in set (0.01 sec) mysql> create table tb_test2 select id, firstname, lastname, email from tb_test; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> describe tb_test2; +-----------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | NO | | 0 | | | firstname | varchar(25) | NO | | NULL | | | lastname | varchar(25) | NO | | NULL | | | email | varchar(45) | NO | | NULL | | +-----------+------------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
建立臨時表
有的時候,當工作在非常大的表上時,可能偶爾需要執行很多查詢獲得一個大量資料的小的子集,不是對整個表執行這些查詢,而是讓MySQL每次找出所需的少數記錄,將記錄儲存到一個臨時表可能更快一些,然後對這些臨時表進行查詢操作。可以通過使用temporary關鍵字和create table語句來實現。
mysql> create temporary table emp_temp select firstname, lastname from tb_test; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0
臨時表的建立與其它表一樣,只是它們儲存在作業系統指定的臨時目錄中。臨時表將在你連線MySQL期間存在,當你斷開時,MySQL將自動刪除表並釋放所有的記憶體空間;當然了,你也可以手動的使用drop table命令刪除臨時表。
檢視資料庫中可用的表
可以使用show tables命令完成。例如:
mysql> show tables; +-------------------+ | Tables_in_db_test | +-------------------+ | tb_test | | tb_test2 | +-------------------+ 2 rows in set (0.00 sec)
檢視錶結構
可以使用describe語句檢視錶結構,例如:
mysql> describe tb_test; +-----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | firstname | varchar(25) | NO | | NULL | | | lastname | varchar(25) | NO | | NULL | | | email | varchar(45) | NO | | NULL | | | phone | varchar(10) | NO | | NULL | | +-----------+------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
另外,使用show命令也能得到相同的結果,例如:
mysql> show columns in tb_test; +-----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | firstname | varchar(25) | NO | | NULL | | | lastname | varchar(25) | NO | | NULL | | | email | varchar(45) | NO | | NULL | | | phone | varchar(10) | NO | | NULL | | +-----------+------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
刪除表
刪除表是使用drop table語句實現的,其語法如下:
drop [temporary] table [if exists] tbl_name [, tbl_name, ...]
更改表結構
我們會發現,我們會經常修改和改進表結構,特別是在開發初期;但是,每次進行修改時不必都先刪除再重新建立表。相反,可以使用alter語句修改表的結構。利用這個語句,可以再必要時刪除、修改和增加列。和create table一樣,alter table提供了很多子句、關鍵字和選項。這裡只是會說一些簡單的使用,比如在表tb_demo表中插入一列,表示email,程式碼如下:
mysql> alter table tb_demo add column email varchar(45); Query OK, 0 rows affected (0.14 sec) Records: 0 Duplicates: 0 Warnings: 0
新的列放在表的最後位置。不過,還可以使用適當的關鍵字(包括first、after和last)來控制新列的位置。如果想修改表,比如,剛剛加的email,我想加入一個not null控制,程式碼可以是這樣的:
mysql> alter table tb_demo change email email varchar(45) not null; Query OK, 0 rows affected (0.11 sec) Records: 0 Duplicates: 0 Warnings: 0
如果覺的這個email這列沒有存在的必要了,可以使用下面的程式碼刪除它,例如:
mysql> alter table tb_demo drop email; Query OK, 0 rows affected (0.09 sec) Records: 0 Duplicates: 0 Warnings: 0
我不是新手
這篇文章大體上總結了與MySQL打交道時常用的一些命令,希望對大家有幫助。看完這篇文章,你應該認為你已經不是新手了,如果上面的命令你都實踐過一遍以後,你應該比60%的人都熟悉MySQL資料庫。就是這樣,越簡單的東西,越是有很多人不會。
相關文章
- mysql,sqlserver資料庫單表資料過大的處理方式MySqlServer資料庫
- 記一次 MySQL 資料庫單表恢復事故處理MySql資料庫
- MySQL資料庫INNODB表損壞修復處理過程分享MySql資料庫
- 資料庫優化之表碎片處理資料庫優化
- 資料庫之建立表前的判斷處理資料庫
- MYSQL資料庫常用命令MySql資料庫
- MySQL的表碎片處理MySql
- MySQL-日期和資料處理函式MySql函式
- MySQL資料庫InnoDB壞頁處理修復MySql資料庫
- MySQL—-MySQL資料庫入門—-第二章 資料庫和表的基本操作MySql資料庫
- mysql 資料庫常用命令大全MySql資料庫
- DBus資料庫表結構變更處理方案資料庫
- mysql 4.1.7忘記資料庫密碼的處理辦法MySql資料庫密碼
- 處理MySQL資料庫出現大量Locked的一個案例MySql資料庫
- MySQL入門系列:資料庫和表的基本操作MySql資料庫
- MySQL 處理重複資料MySql
- MySQL 處理非法資料薦MySql
- 【資料庫】MySQL入門常用命令資料庫MySql
- [資料庫][分庫分表]分庫分表之後,id主鍵如何處理資料庫
- 開發者必備 MySQL 資料庫的常用命令MySql資料庫
- mysql資料庫show的常用命令說明MySql資料庫
- 查詢MySQL資料庫,MySQL表的大小MySql資料庫
- 資料清洗和資料處理
- oracle 資料庫鎖表處理 ORA-00031Oracle資料庫
- ZT:處理Oracle資料庫中一張有效的Drop大表Oracle資料庫
- MySQL(一) 資料表資料庫的基本操作MySql資料庫
- 資料庫壞塊處理資料庫
- zabbix資料庫日常處理資料庫
- PHP+MySQL 千萬級資料處理案例(二) 分表的意義PHPMySql
- 海量資料處理_表分割槽
- Debezium zookeeper kafka mysql資料處理KafkaMySql
- 在 mysql 下 建立新的資料庫和對應的表MySql資料庫
- ORACLE資料庫事務處理和故障恢復Oracle資料庫
- Mysql資料庫表連線MySql資料庫
- MySQL 建立資料庫 建立表MySql資料庫
- 定時從一個資料庫表中的資料儲存到另外一個資料庫中的表,而且怎麼處理重複的資料?...資料庫
- 關於資料庫事務併發的理解和處理資料庫
- MySQL資料庫、表的字元編碼MySql資料庫字元