1. 程式人生 > >Mysql DBA 高級運維學習筆記-mysql建表語句及表知識

Mysql DBA 高級運維學習筆記-mysql建表語句及表知識

ase rac 範圍 cte roc .com 相關 fff size

9.9 表操作

9.9.1以默認字符集建庫

以默認格式的為例,指定字符集建庫

system@ceshi 07:0205->create database wwn;
Query OK, 1 row affected (0.00 sec)
system@ceshi 07:0339->SHOW CREATE DATABASE wwn\G;
*************************** 1. row ***************************
   Database: wwn
Create Database: CREATE DATABASE `wwn` /*!40100 DEFAULT CHARACTER SET latin1 */
row in set (0.00 sec)

9.9.2 建立表

(1)建表的基本命令語法

Create table<表名>(

<字段名1><類型1>,

…………

<字段名n><類型n>

)

(2)建表的語句

下面為人工建表的寫法,表名student

system@ceshi 07:3231->create table student(
   id int(4) not null,
   name char(20) not null,
   age tinyint(2) NOT NULL default ‘0‘,
   dept varchar(16) default NULL
   );
Query OK, 0 rows affected (0.00 sec)

第二種MySQL生成的檢表語句student表例子

Create Table: CREATE TABLE `student` (
  `id` int(4) NOT NULL,
  `name` char(20) NOT NULL,
  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,
  `dept` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

(3)Student表的直觀展示

技術分享圖片

(4)實戰演示

執行student表建表語句

system@ceshi 07:5806->use wwn
Database changed
system@ceshi 09:5115->create table student( id int(4) not null, name char(20) not null, age tinyint(2) NOT NULL default ‘0‘, dept varchar(16) default NULL );

查看建表語句

system@ceshi 09:5115->show create table student\G
*************************** 1. row ***************************
   Table: student
Create Table: CREATE TABLE `student` (
  `id` int(4) NOT NULL,
  `name` char(20) NOT NULL,
  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,
  `dept` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

需要註意的是mysql5.1和mysql5.5環境的默認建表語句中的引擎不同,如果希望控制表的引擎,就要在建表語句裏顯示指定的引擎。
Mysql5.1及以前默認的引擎為InnoDB,Mysql5.5.5以後默認引擎為InnoDB。

查看表結構

system@ceshi 09:5934->desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id| int(4)  | NO   | | NULL|   |
| name  | char(20)| NO   | | NULL|   |
| age   | tinyint(2)  | NO   | | 0   |   |
| dept  | varchar(16) | YES  | | NULL|   |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

9.9.3 Mysql表的字段類型

我們可以參考mysql參考手冊學習

(1)數字類型

技術分享圖片

(1)日期和時間類型(DATE日期類型:支持範圍是1000-01-01到9999-12-31。Mysql以YYYY-MM-DD格式來顯示DATE值,但允許使用字符串或數字把值賦給DATE列)

技術分享圖片

(3)串類型

技術分享圖片

最重要的是下面三個類型

1.INT(M)型:正常大小整數類型。

2.CHAR(M)型:定長字符串類型,當存儲時總是用空格填滿右邊的指定的長度。

3.VARCHAR型:變長字符串類型。

有關mysql字段類型詳細內容,請參考mysql手冊。

9.9.5 查看建表的結構

a. 查詢表結構命令

Desc表名或者show columns from 表名,例如:

system@ceshi 12:1602->desc student;
system@ceshi 12:1602->show columns from student;
system@ceshi 12:1931->use wwn
Database changed
system@ceshi 12:1943->desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id| int(4)  | NO   | | NULL|   |
| name  | char(20)| NO   | | NULL|   |
| age   | tinyint(2)  | NO   | | 0   |   |
| dept  | varchar(16) | YES  | | NULL|   |
+-------+-------------+------+-----+---------+-------+
system@ceshi 12:1945->show columns from student;
+-------+-------------+------+-----+---------+-------+
| Field | Type| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id| int(4)  | NO   | | NULL|   |
| name  | char(20)| NO   | | NULL|   |
| age   | tinyint(2)  | NO   | | 0   |   |
| dept  | varchar(16) | YES  | | NULL|   |

4 rows in set (0.00 sec)

9.9.6 查詢已經建表的語句

b.查已建表的語句(可以看索引及創建表的相關信息)

show create table student\G
system@ceshi 12:2308->show create table student\G
*************************** 1. row ***************************
   Table: student
Create Table: CREATE TABLE `student` (
  `id` int(4) NOT NULL,
  `name` char(20) NOT NULL,
  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,
  `dept` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

Mysql DBA 高級運維學習筆記-mysql建表語句及表知識