程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL操作數據庫和表的常用命令新手教程

MySQL操作數據庫和表的常用命令新手教程

編輯:關於MYSQL數據庫

我是新手

學習如何管理和導航MySQL數據庫和表是要掌握的首要任務之一,下面的內容將主要對MySQL的數據庫和表的一些常用命令進行總結,一些我們不得不掌握的命令,一些信手拈來的命令。

處理數據庫

1.查看數據庫

獲取服務器上的數據庫列表通常很有用。執行show databases;命令就可以搞定。
復制代碼 代碼如下:
mysql> show databases;

2.創建數據庫

復制代碼 代碼如下:
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)

3.使用數據庫

數據庫一旦創建,就可以通過“使用”(use命令)數據庫,將其指定為默認的工作數據庫。
復制代碼 代碼如下:
mysql> use db_test;
Database changed

4.刪除數據庫

刪除數據庫的方式與創建的方式很相似。可以在mysql客戶端中使用drop命令刪除數據庫,如下:
復制代碼 代碼如下:
mysql> drop database db_test;
Query OK, 0 rows affected (0.00 sec)

處理表

這裡將對如何創建、列出、查看、刪除和修改MySQL數據庫表。

1.創建表

表通過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)

2.有條件的創建表

在默認情況下,如果試圖創建一個已經存在的表,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”消息。

3.復制表

基於現有的表創建新表是一項很容易的任務。以下代碼將得到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)

4.創建臨時表

有的時候,當工作在非常大的表上時,可能偶爾需要運行很多查詢獲得一個大量數據的小的子集,不是對整個表運行這些查詢,而是讓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命令刪除臨時表。

5.查看數據庫中可用的表

可以使用show tables命令完成。例如:
復制代碼 代碼如下:
mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| tb_test           |
| tb_test2          |
+-------------------+
2 rows in set (0.00 sec)

6.查看表結構

可以使用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)

7.刪除表

刪除表是使用drop table語句實現的,其語法如下:
復制代碼 代碼如下:
drop [temporary] table [if exists] tbl_name [, tbl_name, ...]

8.更改表結構

我們會發現,我們會經常修改和改進表結構,特別是在開發初期;但是,每次進行修改時不必都先刪除再重新創建表。相反,可以使用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數據庫。就是這樣,越簡單的東西,越是有很多人不會。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved