MySQL經常使用敕令 MySQL處置數據庫和表的敕令。本站提示廣大學習愛好者:(MySQL經常使用敕令 MySQL處置數據庫和表的敕令)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL經常使用敕令 MySQL處置數據庫和表的敕令正文
進修若何治理和導航MySQL數據庫和表是要控制的重要義務之一,上面的內容將重要對MySQL的數據庫和表的一些經常使用敕令停止總結,一些我們不能不控制的敕令,一些信手拈來的敕令。
1、處置數據庫
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)
2、處置表
這裡將對若何創立、列出、檢查、刪除和修正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經常使用的一些敕令,重要是進修Mysql處置數據庫和表的經常使用敕令,願望對年夜家有贊助。