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 建表语句及表知识
来源: http://www.bubuko.com/infodetail-2476843.html