mysql 笔记二

MySQL-2


mysql数据类型

数值型

  1. 整数型
类型 大小 用途 范围(无符号) 范围(有符号)
tinyint 1B 小整数值 (0,255) (-127,128)
smallint 2B 大整数值 (0,26535) (-32768,32767)
mediumint 3B 大整数值 (0,16777215)
int 4B 大整数值 (0,16777215)
bigint 8B 极大整数值 (0,18446744073709551316)
  1. 小数型
类型 大小 用途
float 4B 单精度浮点数值
duoble 8b 双精度浮点数值
decimal decimal(M,D) 小数值

字符串型

类型 大小 用途
char 0~255B 定长字符串
varchar 0~65535B 可变长字符串(不确定字段长度)
tinyblob 0~255B 不超过255个字符的二进制字符串
tinytext 0~255B 短文本字符串
blob 0~65535B 长文本数据(文本,图像,声音)(区分大小写)
text 0~65535B 长文本数据(不区分大小写)
binary 0~8000B 固定长度的二进制数据
varbinary 0~2GB 可变长度的二进制数据
mediumblob 0~16777215B 二进制形式的中等长度文本数据
mediumtext 0~16777215B 中等长度文本数据
longblob 0~4294967295B 二进制形式的极大文本数据
longtext 0~4294967295B 极大文本数据

日期型

类型 大小 范围 格式
date(日期值) 4B 1000-01-01——9999-12-31 YYYY-MM-DD
time(时间值) 3B -838:59:59'——838:59:59' HH:MM:SS
year(年份值) 1B 1901——2155 YYYY
datetime(混合日期和时间值) 8B 1000-01-01 00:00:00——9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS
timestamp(时间戳) 4B 1970-01-01 00:00:00——2037年某一时刻 YYYY-MM-DD HH:MM:SS

MySQL 完整性约束类型

非空约束(NOT NULL)

非空性是指字段的值不能为空值(NULL)。非空约束保证所有记录中该字段都有值。为空,则会报错。

	Column_name datatype not null
column_name : 列名

主键约束(primary key)

一个表通常可以通过一个字段(或多个字段组合)的数据来唯一标识表中的每一行,这个字段(或字段组合)被称为表的主键(primary key)。主键可以为表级约束,也可以为列级约束。

  1. 主键作为列级约束:
Column_name datatype primary key

create table text_2 (id int primary key, name varchar(10) not null );
  1. 主键作为表级约束
primary key (Column_name1,clolumn_name2,...)

create table text1 ( id int, name varchar(40), primary key (id) );
  1. 唯一性约束

所有记录中该字段的值不能重复出现。

Column_name datatype unique

create table test2 ( id int primary key, name varchar(10) not null , email varchar(20) unique);
  1. 自增约束(auto_increment)

auto_increment 是MySQL 数据库中一个特殊的约束条件。主要用于为表中插入新记录自动生成唯一的ID.一个表只能由一个字段使用auto_increment,且该字段必须为主键的一部分,antu_increment 约束的字段可以是任何整数类型,从1开始自增。

column_name datatype auto_increment

create table text3 ( id int primary key auto_increment, name varchar(10) not null , email varchar(20) unique );
  1. 默认值约束(default)

在创建表时可以指定表中字段的默认值。类似默认参数

column_name datatype default default_value

 create table text4 ( id int primary key auto_increment, name varchar(10) not null , email varchar(20) unique, note varchar(50) default "duoban");
  1. 外键约束(foreign key)

如果表A的关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。

创建外键应满足一下几个条件

  • 数据类型相同
  • 长度相等
  • 位于同一数据库
  • 主表由主键约束或唯一约束
[constraint foreign_key_name]
foreign key (column_nameA)  references table_name(column_nameB)
说明:
CONSTRAINT foreign_key_name:可选项,为定义的外键约束的名称,一个表中不能有相同名称的外键。
column_nameA: 表示子表需要添加外键约束字段列。
table_name :  被子表外键所参照的父表名称。
column_nameB: 表示父表中定义的主键列。

 create table score ( cid int not null auto_increment primary key, score int, sid int, foreign key(sid) references student(sid));

原文地址:https://www.cnblogs.com/duoban/p/11536429.html