MySQL學習總結----表的操作
MySQL學習總結----表的操作
=================================================================================
一、MySQL中的表
=================================================================================
在MySQL中,表是一種很重要的數據庫對象,是組成數據庫的基本元素,由若幹個字段組成,主要用來實現儲存數據記錄。其中每一行代表一個記錄,每一列代表一個字段。
=================================================================================
二、創建表
=================================================================================
1、創建表的語法形式
create table 表名(
屬性名 數據類型,
屬性名 數據類型,
屬性名 數據類型,
.
.
.
屬性名 數據類型,
)
2、在數據庫doublelinux中創建一個名為doublelinux的表
create table doublelinux(
學號 int,
姓名 varchar(20),
班級 varchar(20)
);
=================================================================================
三、查看表結構
=================================================================================
1、查看表定義
desc 表名
mysql> desc doublelinux;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
2、查看表詳細定義
show create teble 表名
mysql> show create table doublelinux;
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| doublelinux | CREATE TABLE `doublelinux` (
`num` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`class` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
=================================================================================
四、修改表
=================================================================================
修改表包括:1) 修改表名、2) 增加字段、3) 修改字段、4) 刪除字段。
一) 修改表名
alter table 舊表名 rename 辛標明
1、將數據庫doublelinux下面的表doublelinux修改為qiuuuu
mysql> alter table doublelinux rename qiuuuu;
Query OK, 0 rows affected (0.04 sec)
2、查看數據庫doublelinux下面所有表
mysql> show tables;
+-----------------------+
| Tables_in_doublelinux |
+-----------------------+
| qiuuuu |
+-----------------------+
1 row in set (0.00 sec)
二) 增加字段
alter table 表名 add 屬性名 屬性類型
在第一個位置增加字段: alter table 表名 add 屬性名 屬性類型 first;
在最後一個位置增加字段:alter table 表名 屬性名 屬性類型 ;
在指定位置增加字段: alter table 表名 屬性名 after 屬性名;
1、在數據庫doublelinux下的表qiuuuu中的第一個位置增加一個字段
mysql> alter table qiuuuu add id int first;
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
2、在數據庫doublelinux下的表qiuuuu中的最後一個字段增加一個字段
mysql> alter table qiuuuu add address varchar(100);
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
3、在數據庫doublelinux下的表qiuuuu中的name字段後面增加一個字段
mysql> alter table qiuuuu add sex char(8) after name;
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | char(8) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
三)、修改字段
修改字段包括 1)修改字段數據類型 2)修改字段的名字 3)同時修改名字和屬性
(一) 修改字段數據類型(modify)
alter table 表名 modify 屬性名 數據類型
1、修改數據庫doublelinux下面的表qiuuuu的sex字段的屬性為varchar(20)
mysql> alter table qiuuuu modify sex varchar(20);
Query OK, 0 rows affected (0.23 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | varchar(20) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
(二) 修改字段名字
alter table 表名 change 舊屬性名 新屬性名 舊數據類型
1、將數據庫doublelinux下的表qiuuuu中的sex字段名修改為hehe
mysql> alter table qiuuuu change sex hehe varchar(20);
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| hehe | varchar(20) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
(三) 同時修改名字和屬性
alter table 表名 change 舊屬性名 新屬性名 新數據類型
1、將數據庫doublelinux中的表qiuuuu中的hehe字段名修改為sex,並且數據類型為varchar(8)
mysql> alter table qiuuuu change hehe sex varchar(10);
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
四) 刪除字段
alter table 表名 drop 屬性名
1、刪除數據庫doublelinux下的表qiuuuu中的num字段
mysql> alter table qiuuuu drop num;
Query OK, 0 rows affected (0.10 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc qiuuuu;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
=================================================================================
五、查看表結構
=================================================================================
本文出自 “doublelinux” 博客,謝絕轉載!
MySQL學習總結----表的操作