1.2创建数据表

创建数据表

属于DDL 数据定义语言的一种

语法 :

create table [if not exists] `表名`(
    '字段名1' 列类型 [属性][索引][注释],
    '字段名2' 列类型 [属性][索引][注释],
    #...
    '字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];

说明 : 反引号用于区别MySQL保留字与普通字符而引入的 (键盘esc下面的键).

数据值和列类型

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

  1. 数值类型

  2. 字符串类型

  3. 日期和时间型

  4. NULL值

  • 理解为"没有值"或"未知值"
  • 不要用NULL进行算术运算 , 结果仍为NULL

数据字段属性

UnSigned :

  • 无符号的整数
  • 声明该数据列不允许负数 .

ZEROFILL :

  • 0填充的
  • 不足位数的用0来填充 , 如int(3),5则为005

Auto_InCrement :

  • 自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)
  • 通常用于设置主键 index,必须为整数类型。
  • 可定义起始值和步长
    • 当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
    • SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL 和 NOT NULL :

  • 默认为NULL , 即没有插入该列的数值
  • 如果设置为NOT NULL , 则该列必须有值

DEFAULT :

  • 默认的
  • 用于设置默认值
    • 例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值
/*创建数据表例子

1、创建一个名为School01的数据库。

1、创建一个学生信息表:学生id(自增,主键),姓名,年龄,性别,电话,籍贯,入学时间,所属班级id(外键)。

2、创建一个学生成绩表:成绩id(自增,主键),科目,成绩,学生id(外键),创建时间。

3、创建一个学生班级表:班级id(主键,自增),班级名称。

*/

#如果存在数据库School,则删除。否则创建数据库
DROP DATABASE IF EXISTS `School01`;
#创建数据库
CREATE DATABASE `School01`;
USE `School01`;
#如果存在数据表,则删除,否则创建
DROP TABLE IF EXISTS `tb_class`;
#创建一个学生班级表:班级id(主键,自增),班级名称。
CREATE TABLE `tb_class`
(
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`Name` VARCHAR(32) NOT NULL

);
DROP TABLE IF  EXISTS tb_student;
#创建一个学生信息表:学生id(自增,主键),姓名,年龄,性别,入学时间,所属班级id(外键)。
CREATE TABLE `tb_student`
(
 `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 `Name` VARCHAR(32) NOT NULL,
 `Age` INT DEFAULT 0,CHECK(`Age`>0 AND `Age`<=100),
 `gender` BOOLEAN DEFAULT 0,CHECK(`gender`=0 OR `gender`=1),
 `date` DATETIME DEFAULT NOW()
);
#创建一个学生成绩表:成绩id(自增,主键),科目,成绩,学生id(外键),创建时间。
DROP TABLE IF EXISTS `tb_score`;
CREATE TABLE `tb_score`
(`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`course` VARCHAR(32) NOT NULL,
`Score` FLOAT(3,1) NOT NULL,
`stuId` INT(11) NOT NULL , 
CONSTRAINT `FK_Stuid` FOREIGN KEY(`stuId`) REFERENCES `tb_student`(`id`)
);

结果:
在这里插入图片描述
MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等…

常见的 MyISAM 与 InnoDB 类型

名称 MyISAM InnoDB
事务处理 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约2倍
  • 适用MyISAM : 节约空间及相应速度
  • 适用InnoDB : 安全性 , 事务处理及多用户操作数据表
发布了52 篇原创文章 · 获赞 10 · 访问量 3721

猜你喜欢

转载自blog.csdn.net/weixin_46047285/article/details/104700828