Mysql DBA 高级运维学习笔记-mysql建表语句及表知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql DBA 高级运维学习笔记-mysql建表语句及表知识相关的知识,希望对你有一定的参考价值。

9.9 表操作

9.9.1以默认字符集建库

以默认格式的为例,指定字符集建库

[email protected] 07:0205->create database wwn;
Query OK, 1 row affected (0.00 sec)
[email protected] 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

[email protected] 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表建表语句

[email protected] 07:5806->use wwn
Database changed
[email protected] 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 );

查看建表语句

[email protected] 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。

查看表结构

[email protected] 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 表名,例如:

[email protected] 12:1602->desc student;
[email protected] 12:1602->show columns from student;
[email protected] 12:1931->use wwn
Database changed
[email protected] 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|   |
+-------+-------------+------+-----+---------+-------+
[email protected] 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
[email protected] 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建表语句及表知识的主要内容,如果未能解决你的问题,请参考以下文章

Mysql DBA 高级运维学习笔记-Mysql常用基础命令实战

Mysql DBA 高级运维学习笔记-MySQL5.5编译方式安装实战

Mysql DBA 高级运维学习笔记-MySQL主从复制故障解决

Mysql DBA 高级运维学习笔记-删除表中数据

Mysql DBA 高级运维学习笔记-Mysql常见多实例配置方案及多实例安装

Mysql DBA 高级运维学习笔记-创建mysql用户及授权的多种方法实战