MySQL常用命令 MySQL處理數(shù)據(jù)庫和表的命令
學習如何管理和導航MySQL數(shù)據(jù)庫和表是要掌握的首要任務(wù)之一,下面的內(nèi)容將主要對MySQL的數(shù)據(jù)庫和表的一些常用命令進行總結(jié),一些我們不得不掌握的命令,一些信手拈來的命令。
一、處理數(shù)據(jù)庫
1、查看數(shù)據(jù)庫
獲取服務(wù)器上的數(shù)據(jù)庫列表通常很有用。執(zhí)行show databases;命令就可以搞定。
mysql> show databases;
2、創(chuàng)建數(shù)據(jù)庫
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)
3、使用數(shù)據(jù)庫
數(shù)據(jù)庫一旦創(chuàng)建,就可以通過“使用”(use命令)數(shù)據(jù)庫,將其指定為默認的工作數(shù)據(jù)庫。
mysql> use db_test;
Database changed
4、刪除數(shù)據(jù)庫
刪除數(shù)據(jù)庫的方式與創(chuàng)建的方式很相似??梢栽趍ysql客戶端中使用drop命令刪除數(shù)據(jù)庫,如下:
mysql> drop database db_test;
Query OK, 0 rows affected (0.00 sec)
二、處理表
這里將對如何創(chuàng)建、列出、查看、刪除和修改MySQL數(shù)據(jù)庫表。
1、創(chuàng)建表
表通過create table語句來創(chuàng)建。創(chuàng)建表的過程中會使用非常多的選項和子句,在這里完全總結(jié)一遍也是不現(xiàn)實的,這里只是總結(jié)最普遍的,以后遇到別的,再單個總結(jié)。創(chuàng)建表的一般用法如下:
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)
記住,表至少包含一列。另外,創(chuàng)建表之后總是可以再回過頭來修改表的結(jié)構(gòu)。無論當前是否在使用目標數(shù)據(jù)庫,都可以創(chuàng)建表,只要在表名前面加上目標數(shù)據(jù)庫即可。例如:
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、有條件的創(chuàng)建表
在默認情況下,如果試圖創(chuàng)建一個已經(jīng)存在的表,MySQL會產(chǎn)生一個錯誤。為了避免這個錯誤,create table語句提供了一個子句,如果你希望在目標表已經(jīng)存在的情況下簡單地退出表創(chuàng)建,就可以使用這個子句。例如:
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)
無論是否已經(jīng)創(chuàng)建,都會在返回到命令提示窗口時顯示“Query OK”消息。
3、復(fù)制表
基于現(xiàn)有的表創(chuàng)建新表是一項很容易的任務(wù)。以下代碼將得到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
將向數(shù)據(jù)庫增加一個相同的表tb_test2。而有的時候,可能希望只基于現(xiàn)有表的幾個列創(chuàng)建一個表。通過create select語句中指定列就可以實現(xiàn):
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、創(chuàng)建臨時表
有的時候,當工作在非常大的表上時,可能偶爾需要運行很多查詢獲得一個大量數(shù)據(jù)的小的子集,不是對整個表運行這些查詢,而是讓MySQL每次找出所需的少數(shù)記錄,將記錄保存到一個臨時表可能更快一些,然后對這些臨時表進行查詢操作??梢酝ㄟ^使用temporary關(guān)鍵字和create table語句來實現(xiàn)。
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
臨時表的創(chuàng)建與其它表一樣,只是它們存儲在操作系統(tǒng)指定的臨時目錄中。臨時表將在你連接MySQL期間存在,當你斷開時,MySQL將自動刪除表并釋放所有的內(nèi)存空間;當然了,你也可以手動的使用drop table命令刪除臨時表。
5、查看數(shù)據(jù)庫中可用的表
可以使用show tables命令完成。例如:
mysql> show tables; +-------------------+ | Tables_in_db_test | +-------------------+ | tb_test | | tb_test2 | +-------------------+ 2 rows in set (0.00 sec)
6、查看表結(jié)構(gòu)
可以使用describe語句查看表結(jié)構(gòu),例如:
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命令也能得到相同的結(jié)果,例如:
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語句實現(xiàn)的,其語法如下:
8、更改表結(jié)構(gòu)
我們會發(fā)現(xiàn),我們會經(jīng)常修改和改進表結(jié)構(gòu),特別是在開發(fā)初期;但是,每次進行修改時不必都先刪除再重新創(chuàng)建表。相反,可以使用alter語句修改表的結(jié)構(gòu)。利用這個語句,可以再必要時刪除、修改和增加列。和create table一樣,alter table提供了很多子句、關(guān)鍵字和選項。這里只是會說一些簡單的使用,比如在表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
新的列放在表的最后位置。不過,還可以使用適當?shù)年P(guān)鍵字(包括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
這篇文章大體上總結(jié)了與MySQL常用的一些命令,主要是學習Mysql處理數(shù)據(jù)庫和表的常用命令,希望對大家有幫助。
- MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié)
- MySQL操作數(shù)據(jù)庫和表的常用命令新手教程
- MySQL數(shù)據(jù)庫維護中監(jiān)控所用到的常用命令
- MySQL 數(shù)據(jù)庫常用命令 簡單超級實用版
- MySQL數(shù)據(jù)庫管理常用命令小結(jié)
- MySQL數(shù)據(jù)庫操作常用命令小結(jié)
- MYSQL 數(shù)據(jù)庫導入導出命令
- Mysql數(shù)據(jù)庫的一些命令
- MySQL優(yōu)化全攻略-相關(guān)數(shù)據(jù)庫命令
- mysqldump命令導入導出數(shù)據(jù)庫方法與實例匯總
- MySQL命令行導出導入數(shù)據(jù)庫實例詳解
- MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)
相關(guān)文章
mysql中varchar類型的日期進行比較、排序等操作的實現(xiàn)
在mysql使用過程中,日期一般都是以datetime、timestamp等格式進行存儲的,但有時會因為特殊的需求或歷史原因,日期的存儲格式是varchar,那么應(yīng)該怎么進行比較和排序等問題,本文就來介紹一下2021-11-11SQL中寫入包含有英文單引號“ '''' ”失敗問題深入詳解
這篇文章主要介紹了SQL中寫入包含有英文單引號“ ' ”失敗問題深入詳解,列舉了具體實例講解,有感興趣的同學可以研究下2021-03-03Mysql觸發(fā)器在PHP項目中用來做信息備份、恢復(fù)和清空
這篇文章主要介紹了Mysql觸發(fā)器在PHP項目中用來做信息備份、恢復(fù)和清空的相關(guān)資料,需要的朋友可以參考下2017-11-11