MySQL-创建数据表create table [if not exists] `表名`(...)

创建数据表:

格式如下:

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

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

数据值和列类型

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

数值类型
MySQL-创建数据表create table [if not exists] `表名`(...)_第1张图片
字符串类型
MySQL-创建数据表create table [if not exists] `表名`(...)_第2张图片
日期和时间型数值类型
MySQL-创建数据表create table [if not exists] `表名`(...)_第3张图片
NULL值

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

数据字段属性

UnSigned :

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

ZEROFILL :

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

Auto_InCrement :

自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)
通常用于设置主键 , 且为整数类型

可定义起始值和步长

当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL 和 NOT NULL :

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

DEFAULT :

默认的
用于设置默认值
例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

在数据库下创建一个新的table

-- 目标:创建一个school数据库
-- 创建学生表(列,字段) 使用 SQL 创建
-- 学号int,登陆密码varchar(20),姓名,性别 varchar(2),出生日期(datatime),家庭住址,email

-- 注意点,使用英文(),表的名称,字段尽量用`  `括起来。
-- 字符串使用单引号括起来
-- 所有的语句后面加,(英文的),最后一个不用加
-- PRIMARY KEY 主键(一般唯一)
CREATE TABLE IF NOT EXISTS `Student2`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT'姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码' ,
`sex` VARCHAR(2) NOT NULL DEFAULT '男'COMMENT'性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address`VARCHAR (100)DEFAULT NULL COMMENT '家庭住址',
`email`VARCHAR(50)DEFAULT NULL COMMENT '邮箱',
-- 添加主键操作
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET = utf8;

# 查看数据库的定义
SHOW CREATE DATABASE school;
# 查看数据表的定义
SHOW CREATE TABLE student;
# 显示表结构
DESC student;
# 设置严格检查模式(不能容错了)
SET sql_mode='STRICT_TRANS_TABLES';

结果:
MySQL-创建数据表create table [if not exists] `表名`(...)_第4张图片
感受:MySQL的错误很难检车,符号一定要用英文的。

你可能感兴趣的:(MySQL)