MySQL建表字段类型

1、数据库:在MySQL中,要存储数据,必须从数据库开始,因此首先要创建数据库,但由于学校的MySQL服务器对学生数据帐号有限止,学生不得创建数据库,故每个学生的帐号中已事先由信息中心为大家建立了一个名为帐号名的数据库。但我们必须了解创建数据库的语句为
CREATE
DATABASE
<数据库名>

2、数据表:是构成数据库的一个基本单位,在一个数据库中用户可以建立多张数据表。这是我们有权力建立的。

3、数据表结构:创建一个数据表的第一步即为创建数据表结构,在数据表结构中的内容包括:有几个字段,每个字段的名称,字段的类型,字段的长度,字段的属性。

4、字段:它是构成数据表结构的必须元素,一列数据就是一个字段。

5、字段名:用来描述字段的名称,它可以用中文、英文字母、数字等字符来描述。

6、字段类型:用来限定数据的一种方式,即每一个字段下的数据必定类型是相同的。

7、字段长度:即每一列字段中的数据位数。

三、建立第一张数据表

1、在左窗口中点击数据库名,
2、在右窗口中输入数据表的名称如number1,输入字段数6,单击执行,
3、按如下要求建立一张数据表:





































字段名field

字段类型(列类型)

type

属性

说明

name

Char(8)


姓名

xb

Char(2)


性别

csrq

Date


出生日期

address

Text


住址

Byxx

Char(20)


毕业学校

zip

Int(6)


邮政编码

注意其下的sql语句:

CREATE TABLE `number1` (
  `name` CHAR( 8 ) NOT NULL
,
  `xb` CHAR( 2 ) NOT NULL ,
  `csrq` DATE NOT NULL ,
  `address`
TEXT,
  `byxx` CHAR( 20 ) ,
  `zip` INT( 6 ) NOT NULL
  );

以上命令即是建立第一张数据表的命令,注意理解。建立数据表,我们也可以直接在代码窗口中输入命令也可以建立数据表。

四、字段类型(列类型)

1、字段的大类型有三种:数值型、字符型、日期/时间型,每一种大类型中也可以分成若干个列类型。
2、每种列类型均有以下几个特性:
(1)其中可以存放什么类型的值。
(2)值要占据多少空间,以及该值是否是定长或可变长的。
(3)该类型的值是否比较和存储
(4)此类型是否可以索引

五、学习几种常用的列类型

1、数值类型

(1)INT[
(M)
]
 说明:标准大小的整数
 允许的属性:不选(可以取正负数),UNSIGNED(无符号,取值范围增大一倍),UNSIGED ZEROFILL(在数值前自动填0),auto_increment(自动递增)
 取值范围:-2147483648
到2147483647(-231 到231-1),或者如果为UNSIGNED,则0 到4294967295(0
到232-1)
 缺省值:如果列为NULL,则为NULL;如果列为NOT FULL,则为0
 存储需求:4 字节
 同义词:INTEGER[
(M)
]

(2)FLOAT[(M,D)](M表示显示宽度,在D表示小数位数)
 说明:小浮点数;单精度(精度小于DOUBLE)
 允许的属性:ZEROFILL
 取值范围:最小非零值为±1.75494351E-38;最大非零值为±3.402823466E+38
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0
 存储需求:4字节
 同义词:MySQL3.23版以前,FLOAT(4)为具有缺省M和D值的FLOAT的同义词。
 注释:在MySQL3.23以后,FLOAT(4)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。

(3)DOUBLE[(M,D)]
 说明:大浮点数;双精度(比FLOAT更精确)
 允许的属性:ZEROFILL
 取值范围:最小非零值为±2.2250738585072014E-308;最大非零值为±1。79769313-48623157E+308
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0
 存储需求:8字节
 同义词:DOUBLEPRECISION[(M,D)]和REAL[(M,D)]为DOUBLE[(M,D)]的同义词。MySQL3.23版以前,FLOAT(8)为具有缺省M和D值的FLOAT的同义词。
 注释:在MySQL3.23以后,FLOAT(8)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。

2、串类型
  MySQL的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。可用串类型来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。

(1)CHAR(M)
 说明:0到M字节长的定长字符串。在MySQL3.23版以前,M应该为一个1到255之间的整数。而MySQL3.23版以后,M应该为一个0到255之间的整数。短于M个字符的串存储进右边补空格。长于M个字符的串存储时剪断为长度是M的串。在检索值时,去掉后跟的空格。
 允许的属性:BINARY
 允许的长度:0到M字节
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”
 存储需求:M字节
 比较:不区分大小写(如果具有BINARY属性,则区分大小写)

(2)VARCHAR(M)
 说明:0到M字节长的可变长字符串。M应该为1到255之间的一个整数,或者自MySQL3.23后为0到255之间的一个整数。存储时后跟的空格被去掉。存储时,大于M个字符的串剪断为M个字符。
 允许的属性:BINARY
 允许的长度:0到M字节
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”
 存储需求:值的长度,加上1字节用来记录长度
 比较:不区分大小写(如果具有BINARY属性,则区分大小写)

(3)TEXT
 说明:常规大小的TEXT值
 允许的属性:除通用属性外无其他属性
 允许的长度:0到65535(0到216-1)字节
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”
 存储需求:值的长度加上用于记录长度的2个字节
 比较:不区分大小写

(4)ENUM(“value1”,“value2”,...)
 说明:枚举,列值可赋予值列表中的某个成员
 允许的属性:除通用属性外无其他属性
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为第一个枚举值
 存储需求:对1到255个成员的枚举1个字节,对255到65535个成员的枚举2个字节
 比较:不区分大小写(MySQL3.22.1版以前区分大小写)

(5)SET(“value1”,“value2”,...)
 说明:集合,列值可赋予值列表中的零个或多个成员
 允许的属性:除通用属性外无其他属性
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“”(空集)
 存储需求:1字节(1到8个成员的集合),2字节(9到16个成员的集合),3字节(17到24个成员的集合),4字节(25到32个成员的集合)或8字节(33到64个成员的集合)
 比较:不区分大小写(MySQL3.22.1版以前区分大小写)

3、日期和时间类型
  MySQL提供以各种形式表示时间数据的类型。这些数据有日期和时间类型。有一种特殊的时间类型,它在记录更改时自动更新。还有一种用于存储年份的类型,在不需要完全的日期时使用。

(1)DATE
 说明:“YYYY-MM-DD”格式的日期
 允许的属性:除通用属性外无其他属性
 取值范围:“1000-01-01”到“9999-12-31”
 零值:“0000-00-00”
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“0000-00-00”
 存储需求:3字节(MySQL3.22版以前为4字节)

(2)TIME
 说明:“HH:MM:SS”格式的时间(负值为“-HH:MM:SS”);表示占用的时间,但也可
 以作为日常时间
 允许的属性:除通用属性外无其他属性
 取值范围:“-838:59:59”到“838:59:59”
 零值:“00:00:00”
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“00:00:00”
 存储需求:3字节
 注释:虽然在非法值插入TIME列时,“00:00:00”用作零值,但它也作为一个合法的值出现在正常的取值范围内

(3)YEAR
 说明:YYYY格式表示的年份
 允许的属性:除通用属性外无其他属性
 取值范围:1900到2155
 零值:0000
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0000
 存储需求:1字节

(4)DATETIME
 说明:以“YYYY-MM-DDhh:mm:ss”格式表示的日期和时间(两个部分都需要)
 允许的属性:除通用属性外无其他属性
 取值范围:“1000-01-0100:00:00”到“9999-12-3123:59:59”
 零值:“0000-00-0000:00:00”
 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为“0000-00-00
00:00:00”
 存储需求:8字节

六、输入记录
  单击右窗口中的插入按钮,在出现的记录输入界面下输入数据,并选择“插入新的一行”,再单击“执行”。即可连续输入多条记录,直到选择“后退到上一页”,再单击“执行”,则结束记录的输入。

MySQL建表字段类型,码迷,mamicode.com

时间: 2024-10-06 06:54:16

MySQL建表字段类型的相关文章

Java实体类的属性类型与mysql数据库表字段类型对应表

感谢原文博主https://blog.csdn.net/Hyo555/article/details/81943340 还有些经常用到的mysql语句 -- 新增表结构 DROP TABLE IF EXISTS `servicnn`; CREATE TABLE `servin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `operation_unit` varchar(100) DEFAULT NULL COMMENT '运', `create_time`

资源表 表字段类型大全

在我们对资源表进行操作也就是,添加表时JEPLUS平台会自动给我们默认的提供了表字段的类型,今天我来详细介绍下表字段类型大全,以及对应数据库到底是什么类型. 一.效果展示 二.准备工作 1.JEPLUS平台5.0.0.2(我是刚升级之后的版本,5.0以上的版本都是可以实现这个功能) 2.数据库MySql 5.7 三.实现步骤 1.数据库建表时的类型对应,我们在平台上创建的表字段选择的类型对应的数据库类型是什么. 我们对应到数据库的真实类型是什么 2.当我们选择的类型为整数时对应的数据库类型 在数

资源表 表字段类型大全—JEPLUS快速开发平台

在我们对资源表进行操作也就是,添加表时JEPLUS平台会自动给我们默认的提供了表字段的类型,今天我来详细介绍下表字段类型大全,以及对应数据库到底是什么类型. 一.效果展示 二.准备工作 1.JEPLUS平台5.0.0.2(我是刚升级之后的版本,5.0以上的版本都是可以实现这个功能) 2.数据库MySql 5.7 三.实现步骤 1.数据库建表时的类型对应,我们在平台上创建的表字段选择的类型对应的数据库类型是什么. 我们对应到数据库的真实类型是什么 2.当我们选择的类型为整数时对应的数据库类型 在数

修改非空表字段类型Oracle

执行以下语句报"要修改数据类型,则要更改的列必须为空"       alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表中加一个临时字段       alter table 表名 add 临时字段 目标字段原来的类型; 第二步,将目标字段的值付给临时字段,并将目标字段置空       update 表名 set 临时字段=目标字段,目标字段=null; 第三步,修改目标类型       alter table 表名  modi

MySQL数据表字段内容的批量修改、复制命令

复制字段里的数据命令: SQL代码 UPDATE table SET 被替换的字段名=被复制的字段名 演示如下 SQL代码 UPDATE dede_archives SET senddate=pubdate 如何手动将同一数据表内不同字段之间的内容批量转换,可以参考下面的命令: SQL代码 UPDATE table set 字段名=REPLACE(字段名,'原字符串','替换的字符串') where 已知的字段名 LIKE '%原字符串%' 应用到本文实例 SQL代码 UPDATE pw_mem

Mysql数据表字段的增,改,删

用 alter 命令来进行字段的增,改,删 1.使用 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段:(如果数据表中只剩余一个字段则无法使用DROP来删除字段.) mysql> alter table runoob drop name; //删除runoob表中的name字段 2.使用 ALTER 命令 ADD 子句来向数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型: mysql> alter table runoob add id

MySQL 建表字段长度的限制

脑补,varchar(N),N指的是最大字符数,不是字节数. 先上测试说明: 在MySQL建表时,遇到一个奇怪的现象: root@localhost : test 10:30:54>CREATE TABLE tb_test ( -> recordid varchar(32) NOT NULL, -> areaShow varchar(10000) DEFAULT NULL, -> areaShow1 varchar(10000) DEFAULT NULL, -> areaSh

MySQL复制表字段到另外一个表的字段

有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写: UPDATE tb_1 SET content_target = content_source; 大概写法如下:名仕娱乐城 Update {your_table} set {source_field} = {object_field} WHERE cause 有Navicat等工具更好,可以直接选中一列数据,拷贝粘贴到你需要的列中.如果是同一个表那没什么问题,如果是新表,请保持它们的行数是一致.如果行数不

mysql修改表字段编码,使其支持emoji表情

普通的UTF8编码是不支持emoji表情插入的,会报异常: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xB0\xE5\x9C...' for column 'name' at row 1 将表字段的编码单独改成utf8mb4,即可支持emoji表情的插入. 修改的sql语句为 mysql> alter table user modify column name varchar(255) char