MySQL資料表的基本操作二:表結構查看、修改與表操作,mysql基本操作

來源:互聯網
上載者:User

MySQL資料表的基本操作二:表結構查看、修改與表操作,mysql基本操作

一、查看資料表結構

1) 查看錶基本結構語句 DESCRIBE

文法:DESCRIBE 表名;

樣本:

mysql> DESCRIBE product;+--------------+--------------+------+-----+---------+----------------+| Field        | Type         | Null | Key | Default | Extra          |+--------------+--------------+------+-----+---------+----------------+| product_id   | int(11)      | NO   | PRI | NULL    | auto_increment || product_name | varchar(50)  | NO   |     | NULL    |                || description  | varchar(200) | YES  |     | NULL    |                |+--------------+--------------+------+-----+---------+----------------+

文法:DESC 表名;

樣本:

mysql> DESC product;+--------------+--------------+------+-----+---------+----------------+| Field        | Type         | Null | Key | Default | Extra          |+--------------+--------------+------+-----+---------+----------------+| product_id   | int(11)      | NO   | PRI | NULL    | auto_increment || product_name | varchar(50)  | NO   |     | NULL    |                || description  | varchar(200) | YES  |     | NULL    |                |+--------------+--------------+------+-----+---------+----------------+

說明:

  • NULL: 表示該列是否可以儲存NULL值;
  • Key: 表示該列是否已編製索引。PRI表示是表主鍵的一部分;UNI表示該列是UNIQUE索引一部分;MUL表示該列中某個給定值允許出現多次;
  • Default: 表示該列是否有預設值,如果有是多少;
  • Extra: 表示可以擷取的與給定列有關的附加資訊。例如AUTO_INCREMENT等;


2) 查看錶詳細結構語句 SHOW CREATE TABLE

功能說明:

用來顯示建立表時的語句

文法:

SHOW CREATE TABLE <表名\G>;

提示:

  • 該語句可以用來查看建立表的詳細語句;
  • 還可以用來查看儲存引擎和字元編碼;
  • 加上參數'\G'後,可使顯示結果更加直觀,易於查看;

樣本:

mysql> show create table bm\G;*************************** 1. row ***************************       Table: bmCreate Table: CREATE TABLE `bm` (  `id` int(11) NOT NULL,  `name` varchar(22) DEFAULT NULL,  `location` varchar(20) DEFAULT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `STH` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.02 sec)

二、修改資料表

1) 修改表名

文法

ALTER TABLE <舊錶名> RENAME [TO] <新表名>;

樣本

ALTER TABLE bm RENAME department;

2) 修改欄位的資料類型

文法

ALTER TABLE <表名> MODIFY <欄位名> <資料類型>;

樣本

ALTER TABLE department MODIFY id VARCHAR(11);

3) 修改欄位名

文法

ALTER TABLE <表名> CHANGE <舊欄位名><新欄位名><新資料類型>;

樣本

ALTER TABLE employees CHANGE location loc VARCHAR(350);//類型可以和原來保持一樣,不用修改

4) 添加欄位

文法

ALTER TABLE <表名> ADD <新欄位名> <資料類型>  [約束條件]  [FIRST|AFTER已存在欄位名];//預設添加到最後一列後面

樣本

ALTER TABLE employees ADD manager_id INT(10);ALTER TABLE employees ADD age INT(11) NOT NULL;//非空約束ALTER TABLE employees ADD sal FLOAT FIRST;//在表的第一列添加ALTER TABLE employees ADD hire_date DATE AFTER manager_id;//在指定列後添加

5) 刪除欄位

文法

ALTER TABLE <表名> DROP <欄位名>;

樣本

ALTER TABLE employees DROP manager_id;ALTER TABLE employees DROP hire_date;

6) 修改欄位的排列位置

文法

ALTER TABLE <表名> MODIFY <欄位1><資料類型> FIRST|AFTER <欄位2>;

樣本

ALTER TABLE employees MODIFY name VARCHAR(22) FIRST;//把name移動到第一列ALTER TABLE department MODIFY location VARCHAR(350) AFTER department_id;//把location列移到department_id列之後

7) 更改表的儲存引擎

MySQL支援的主要儲存引擎

引擎名 是否支援
FEDERATED
MRG_MYISAM
MyISAM
BLACKHOLE
CSV
MEMORY
ARCHIVE
InnoDB 預設
PERFORMANCE_SCHEMA

文法

ALTER TABLE <表名> ENGINE=<更改後的儲存引擎名>;

樣本

ALTER TABLE department ENGINE=MyISAM;

8) 刪除表的外鍵約束

文法

ALTER TABLE <表名> DROP FOREIGN KEY <外鍵約束名>;

樣本

ALTER TABLE employees DROP FOREIGN KEY fk_emp_dept;

三、刪除資料表

1) 刪除沒有被關聯的表

文法

DROP TABLE [IF EXISTS] 表1,表2,...表n;

樣本

DROP TABLE IF EXISTS employees;

2) 刪除被其他表關聯的主表

說明:先要刪除外鍵

樣本

mysql> create database rm_tab;Query OK, 1 row affected (0.00 sec)mysql> use rm_tab;Database changedmysql> create table department    -> (    -> id int(11) primary key,    -> name varchar(22),    -> location varchar(200)    -> );Query OK, 0 rows affected (0.07 sec)mysql> create table employee    -> (    -> id int(11) primary key,    -> name varchar(25),    -> department_id int(11),    -> salary float,    -> constraint fk_emp_dept foreign key(department_id) references department(id)    -> );Query OK, 0 rows affected (0.10 sec)mysql> drop table department;ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint failsmysql> alter table employee drop foreign key fk_emp_dept;Query OK, 0 rows affected (0.22 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> drop table department;Query OK, 0 rows affected (0.04 sec)mysql> show tables;+------------------+| Tables_in_rm_tab |+------------------+| employee         |+------------------+1 row in set (0.00 sec)



如果您們在嘗試的過程中遇到什麼問題或者My Code有錯誤的地方,請給予指正,非常感謝!

連絡方式:david.louis.tian@outlook.com

著作權@:轉載請標明出處!


MYSQL資料表名稱更改

一句query來實現,不可能
一次執行一個的語句是
RENAME TABLE tb_name TO new_name;
老子教你一招.
用程式輸出一組語句然後在mysql執行

例: php
我倒想把程式碼都給你寫上,可不知道你mysql的資料結構,154651166 park412@hotmail.com
你加我
如果心情好可以幫你解決
 
mysql兩個表資料查詢更改語句

update A set [key]='php' from B where A.id=B.aid and B.body like '%php%'
 

相關文章

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.