数据表的创建
首先要进入要使用的数据表 use 数据库名称;
mysql> use test;
Database changed
然后创建一个数据表 create table 数据表名称; (学生成绩表)
mysql> create table st_grade(id INT(11), name VARCHAR(20), grade FLOAT );
Query OK, 0 rows affected (0.05 sec)
然后查看一下是否创建成功 show tables;
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| st_grade |
+----------------+
1 row in set (0.01 sec)
创建好之后可以通过查看数据表结构的定义,来确认数据表定义是否正确,主要有两个方法:
(1)show create table 数据表表名; (不仅可以查看创建表时的定义语句,还可以查看表的字符编码)
mysql> show create table st_grade;
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| st_grade | CREATE TABLE `st_grade` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`grade` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)
这时显示结果比较混乱,可以在show create table 表名之后加上参数"\G",使结果整齐美观。
mysql> show create table st_grade\G;
*************************** 1. row ***************************
Table: st_grade
Create Table: CREATE TABLE `st_grade` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`grade` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
。。。。。。额 有整齐吗? 我倒是没觉得。。。。。。
(2)describe 表名; (使用describe语句查看查看表的字段信息,包括字段名、字段类型等信息,也可以简写为 desc 表名;)
mysql> describe st_grade;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
字段的意思:
(1)NULL:表示该列是否可以存储NULL值;。
(2)Key:表示该列是否已经编制索引。
(3)Default:表示该列是否有默认值。
(4)Extra:表示获取到的与给定列相关的附加信息。
(1)修改表名 alter table 旧表名 rename (to) 新表名; (to是可有可无的)
mysql> alter table stt_grade rename st_grade;
Query OK, 0 rows affected (0.01 sec)
检查一下
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| stt_grade |
+----------------+
1 row in set (0.00 sec)
修改成功
(2)修改字段名 alter table 表名 change 旧字段名 新字段名 新数据类型;(新数据类型不能为空,即使与旧字段数据类型相同,也必须要再写一遍)
mysql> alter table st_grade change name username VARCHAR(20);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
用describe查看一下
mysql> describe st_grade;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| username | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
OK,修改成功。