Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MySQL_2 创建MySQL数据库表_DDL(CREATE) #21

Open
Qingquan-Li opened this issue Jan 13, 2017 · 0 comments
Open

MySQL_2 创建MySQL数据库表_DDL(CREATE) #21

Qingquan-Li opened this issue Jan 13, 2017 · 0 comments
Labels

Comments

@Qingquan-Li
Copy link
Owner

Qingquan-Li commented Jan 13, 2017

本篇博客(第二篇)重点:

熟悉创建 CREATE 数据库表语句(属于 DDL 数据定义语言的一种)
熟悉常见的数据列(字段)属性和类型


创建数据表

实际开发过程中,除非你是数据库管理员(Database Administrator,简称DBA),我可以直接在 SQLyog、Navicat 等数据库可视化工具中操作数据库,并不需要掌握全部的 SQL 语句,当然,常用的那几条还是要记住的。

在可视化工具 SQLyog 中创建表
sqlyog

创建一张 student 表

/*Table structure for table `student` */

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `StudentNo` int(4) NOT NULL COMMENT '学号',
  `LoginPwd` varchar(20) DEFAULT NULL,
  `StudentName` varchar(20) DEFAULT NULL COMMENT '学生姓名',
  `Sex` tinyint(1) DEFAULT NULL COMMENT '性别,取值0或1',
  `GradeId` int(11) DEFAULT NULL COMMENT '年级编号',
  `Phone` varchar(50) NOT NULL COMMENT '联系电话,允许为空,即可选输入',
  `Address` varchar(255) NOT NULL COMMENT '地址,允许为空,即可选输入',
  `BornDate` datetime DEFAULT NULL COMMENT '出生时间',
  `Email` varchar(50) NOT NULL COMMENT '邮箱账号,允许为空,即可选输入',
  `IdentityCard` varchar(18) DEFAULT NULL COMMENT '身份证号',
  PRIMARY KEY (`StudentNo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

student



创建数据表语句(属于数据定义语言 DDL 的一种)

语法:

CREATE TABLE [ IF NOT EXISTS ] `表名` ( 
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释], 
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释],  
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释];

其中,反引号(可选、区别于单引号)
反引号用于区别 MySQL 保留字与普通字符而引入的



列类型

规定数据库中该列存放的数据类型

分为:

  1. 数值类型
  2. 字符串类型
  3. 日期和时间型数值类型
  4. NULL值

4-1 数值类型

4-1数值类型字段

4-2 字符串类型

4-2字符串类型字段

4-3 日期和时间型数值类型

4-3日期和时间型数值类型字段

4-4 NULL值

  • 理解为 “没有值”或 “未知值”
  • 不要用NULL进行算术运算,结果仍为NULL
  • MySQL 中,0 或 NULL 都意味着为假,1为真


数据表的类型

设置数据表的类型

CREATE TABLE 表名(
#省略一些代码
)ENGINE = MyISAM

或者

CREATE TABLE 表名(
#省略一些代码
)ENGINE = InnoDB

MySQL注释:

  • 单行注释: #……
  • 多行注释: /……/

MySQL 的数据表的类型:

MyISAMInnoDB 、HEAP、BOB、CSV 等

常见的 MyISAM 与 InnoDB 类型:

名称 MyISAM InnoDB
事务处理 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约2倍

**适用场合: **

  • 使用 MyISAM:节约空间及相应速度
  • 使用 InnoDB:安全性,事务处理及多用户操作数据表


数据表的存储位置

MySQL 数据表以文件方式存放在磁盘中:

  • 包括:表文件、数据文件以及数据库的选项文件。
  • 位置:MySQL 安装目录 \data 下存放数据表。目录名对应数据库名,该目录下文件名对应数据表。

注意:

  • InnoDB类型数据表只有一个 *.frm 文件,以及上一级目录的 ibdata1 文件
  • MyISAM类型数据表对应三个文件:
    • *.frm ——表结构定义文件
    • *.MYD ——数据文件
    • *.MYI ——索引文件
@Qingquan-Li Qingquan-Li changed the title MySQL_2 创建MySQL数据库和表_DDL MySQL_2 创建MySQL数据库和表_DDL(CREATE) May 24, 2019
@Qingquan-Li Qingquan-Li changed the title MySQL_2 创建MySQL数据库和表_DDL(CREATE) MySQL_2 创建MySQL数据库表_DDL(CREATE) Jul 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant