MySql處理資料庫和表,MySql處理資料庫

來源:互聯網
上載者:User

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: 0mysql> 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 查看資料庫中的表

MySQL 使用下面這個語句,來查詢 指定表, 有什麼欄位資訊。

mysql> SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
-> FROM
-> INFORMATION_SCHEMA.COLUMNS
-> WHERE
-> table_name = 'test_main'
-> AND table_schema = 'test'
-> //
+-------------+-----------+-------------+----------------+
| COLUMN_NAME | DATA_TYPE | IS_NULLABLE | COLUMN_DEFAULT |
+-------------+-----------+-------------+----------------+
| id | int | NO | 0 |
| value | varchar | YES | NULL |
+-------------+-----------+-------------+----------------+
2 rows in set (0.00 sec)

如果樓主是 知道欄位,想知道表。 那麼就修改一下 SQL

SELECT
table_name
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema = '你那個資料庫的名字 也就是 use 什麼的'
AND COLUMN_NAME = 'user'

上面這個 SQL
應該是把 所有的 有 user 這個欄位 的 表名稱,都列出來了。

如果 表的數量不多的話, 就去查詢一下,具體是哪個表吧。
 
怎將圖片與Table Store到mysql資料庫中(或者其他資料庫)

由於word和html都是結構化文檔,其資料的擷取需要對這些文檔進行解析 對於html可以使用java的xml解析包的html解析類完成解析工作,解析後可以將啟動的table元素的資料讀取出來,轉換成你需要的資料個是儲存到資料庫中; 對於word檔案,我記得有產生word檔案的java包,但是我沒有使用過,你到網上百度一把 還有一種簡單的方式,如果你不需要對他們的資料的加工分析,就可一直接將這些文檔儲存在資料庫中,使用blob欄位;mysql資料庫支援blob欄位,在需要看報表時在從blob中讀出,組建檔案直接展示就可以了 查看原帖>>
 

相關文章

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.