数据类型

分5类:整数、数值、字符相关、日期时间以及二进制

1.整数

数据库系统 类型 说明
MYSQL tinyint [unsigned] 一个很小的整数。有符号的范围是-128 到127,无符号的范围是0 到255。
smallint [unsigned] 一个小整数。有符号的范围是-32768到32767,无符号的范围是0 到65535。
mediumint [unsigned] 一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
int [unsigned] 一个正常大小整数。有符号的范围是-2147483648 到2147483647,无符号的范围是0到4294967295。
integer [unsigned] 同int
bigint [unsigned] 一个大整数。有符号的范围是-9223372036854775808 到9223372036854775807,无符号的范围是0 到18446744073709551615。
Oracle number(10) Oracle 中没有专门的整数类型,因此需要使用Number(10)来表示整形。
DB2 smallint 小整型是两个字节的整数,精度为5位。小整型的范围从-32,768 到32,767。
integer 普通整型是四个字节的整数,精度为10 位。大整型的范围从-2,147,483,648 到2,147,483,647。
bigint 大整型是八个字节的整数,精度为19位。巨整型的范围从-9,223,372,036,854,775,808 到9,223,372,036,854,775,807。

2.数值

数据库系统 类型 说明
MYSQL float[(m,d)] 单 精密浮点数字。取值范围是-3.402823466E+38 到-1.175494351E-38 , 0 和1.175494351E-38 到3.402823466E+38。m是显示宽度、而d 是小数的位数。没有参数的float或有<24 的一个参数表示一个单精密浮点数字。
double[(m,d)] 双 精密浮点数字。取值范围是-1.7976931348623157E+308 到-2.2250738585072014E-308、 0和2.2250738585072014E-308 到1.7976931348623157E+308。m是显示宽度、而d是小数位数。没有参数的double 代表一个双精密浮点数字。
real[(m,d)] 同double
decimal[(m[,d])] 一个未压缩的浮点数字,数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M 中计算。如果D 是0,值将没有小数点或小数部分。decimal值的最大范围与double相同,但是对一个给定的decimal 列,实际的范围可以通过m 和d的选择被限制。如果d 被省略,它被默认设置为0。如果m 被省掉,它被默认设置为10。
numeric(m,d) 同decimal
Oracle number(m,n) 数值型,m 是所有有效数字的位数,n是小数点以后的位数。如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的 位数。如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。 如:number(3,0),输入575.316,真正保存的数据是575。
DB2 decimal(p,s) 小数型的值,它是一种压缩十进制数,它有一个隐含的小数点。压缩十进制数将以BCD 码来存储。小数点的位置取决于数字的精度(p)和小数位(s)。小数型的范围从-1031+1 到1031-1。
numeric(p,s) numeric (p,s)是decimal(p,s)的同义词。
real 单精度浮点数,它是实数的32位近似值。数字可以为零,或者在从-3.402E+38 到-1.175E-37或从1.175E-37 到3.402E+38的范围内。
double 双精度浮点数是实数的64 位近似值。数字可以为零,或者在从-1.79769E+308 到-2.225E-307或从2.225E-307 到1.79769E+308 的范围内。

 3.字符相关

数据库系统 类型 说明
 
 
 
 
 MYSQL
 
 
 
char(m) 固定长度字符串,长度为m
varchar(m) 可变长度字符串,最大长度为m
tinytext 小的可变长度字符串,最大长度2^8- 1 字节
text 可变长度大字符串,最大长度216 – 1 字节
mediumtext 中等可变长度字符串,最大长度224- 1 字节
longtext 大文本可变长度字符串,最大长度232- 1 字节
enum(“value1”, “value2”, …) 枚举字符串,列可被赋予某个枚举成员
set (“value1”, “value2”, …) 集合字符串;列可被赋予多个集合成员
 
 
 
 ORACLE
 
 char(m) 固定长度字符串,长度为m
 varchar2(m)  可变长度字符串,最大长度为m
 nvarchar2(m)  可变长度国际化字符串,最大长度为4GB
 clob  可变长度大字符串,最大长度216 – 1 字节
 nclob  可变长度国际化大字符串,最大长度为4GB
 
 
 
 
 
 DB2
 
 CHARACTER(m)  固定长度字符串,长度为m
 VARCHAR(m)  可变长度字符串,最大长度为m
 LONG VARCHAR  可变长度字符串,最长可达32,700 字节
 CLOB  变长大字符串,最长可以达到2,147,483,647 字节
 GRAPHIC[(m)]  固定长度图形字符串,长度为m,如果没有指定长度,就认为是1 个双字节字符
 VARGRAPHIC(m)  可变长度图形字符串,最大长度为m
 LONG VARGRAPHIC  可变长度图形字符串

 4.时间日期类型

数据库系统 类型 说明
 
 
 MYSQL
 
 
date “yyyy-mm-dd”格式表示的日期值。取值范围:“1000-01-01”到“9999-12-31”
time “hh:mm:ss”格式表示的时间值。取值范围:“-838:59:59”到“838:59:59”
datetime “yyyy-mm-dd hh:mm:ss”格式表示的日期时间值。取值范围:“1000-01-01 00:00:00” 到“9999-12-31 23:59:59”
timestamp “yyyymmddhhmmss”格式表示的时间戳值。取值范围:19700101000000 到2037 年的某个时刻
year “yyyy”格式的年份值。取值范围:1901 到2155
 
 ORACLE
date 日期时间数据
timestamp 时间戳
 DB2
  
DATE 日期值。取值范围:“0001-01-01 00:00:00” 到“9999-12-31 23:59:59”
TIME 时间值。
TIMESTAMP 时间戳

5. 二进制类型

数据库系统 类型 说明
MYSQL blob  
Oracle blob  
DB2 blob  

通过SQL语句管理数据表

1.创建数据表

CREATE TABLE 表名
(
字段名1  字段类型  约束1,
字段名2  字段类型  约束1,
字段名3  字段类型  约束1,
………………
)

例如:

CREATE TABLE T_Student

(

FNumber VARCHAR(20) NOT NULL ,

FName VARCHAR(20)NOT NULL ,

FAge INT NOT NULL ,

FFavorite VARCHAR(20),

FPhoneNumber VARCHAR(20)

)

2.定义默认值

CREATE TABLE T_Teacher

(

FNumber VARCHAR(20),

FName VARCHAR(20),

FAge INT,

FISMaster VARCHAR(5) DEFAULT ‘NO’

)

3.定义主键

CREATE TABLE T_Bus

(

FNumber VARCHAR(20),

FDriverName VARCHAR(20),

FUsedYears INT,

PRIMARY KEY (FNumber)

)

4.定义外键

表1

CREATE TABLE T_Department

(

FId VARCHAR(20),

FName VARCHAR(20),

FLevel INT,

PRIMARY KEY (FId)

)

表2

CREATE TABLE T_Employee

(

FNumber VARCHAR(20),FName VARCHAR(20),

FDepartmentId VARCHAR(20),

FOREIGN KEY (FDepartmentId) REFERENCES T_Department(FId)

)

 5.修改已有数据表

添加字段

ALTER TABLE T_PERSON ADD FFavorite VARCHAR(20)

修改字段

ALTER TABLE T_Person change FAge newFAge varchar(30)

删除字段

ALTER TABLE T_Person DROP FAge

6.删除数据表

DROP TABLE T_Person

SQL笔记-第二章,数据表的创建和管理的更多相关文章

  1. sql server 数据库系统整理——数据表的创建和管理

    注意: 1.  固定长度字符类型比非固定长度字符类型占用空间要大,可是因为进行字段值设置的时候固定长度字符类型无需进行长度处理就能够进行,因此它的处理速度更快. 所以          对于长度相对固 ...

  2. Oracle笔记(九) 表的创建及管理

    对于数据库而言实际上每一张表都表示的是一个数据库的对象,而数据库对象指的就是DDL定义的所有操作,例如:表.视图.索引.序列.约束等等,都属于对象的操作,所以表的建立就是对象的建立,而对象的操作主要分 ...

  3. SQL语句(一)SQL和数据库数据表的创建

    SQL的组成 (1) 数据定义语言DDL(Data Definition Language) 用于数据库和数据表的创建.修改和删除等操作 CREATE (create) 创建数据库.数据表 ALTER ...

  4. The Road to learn React书籍学习笔记(第二章)

    The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...

  5. Sql Server系列:数据表操作

    表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...

  6. 19数据表的创建-普通表&临时表-天轰穿大话数据库视频教程

    关键字:数据表 数据库性能 临时表 天轰穿 sqlserver 数据库大纲:数据表的特点,数据表的类型及用法,SQL创建数据表,创建临时表,全局临时表 优酷超清地址 腾讯超清地址 原文地址:http: ...

  7. 《DOM Scripting》学习笔记-——第二章 js语法

    <Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...

  8. SQL Fundamentals: 表的创建和管理(表的基本操作,闪回技术flashback,表结构修改)

    SQL Fundamentals || Oracle SQL语言 1.表的基本操作 (CREATE TABLE, DROP TABLE,TRUNCATE TABLE, RENAME tablename ...

  9. [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的“HT”

    [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的"HT" 敲黑板!!! 创建HTML超链接 <a>链接文本(此处会有下划线,可以单击 ...

随机推荐

  1. 寒假学习unity的第一天

    1.在Assert中创建材质Material,可以为物体附上材质 2.实例化命令Instantiate(要生成的物体,生成的位置,生成物体的选择角度) 3.检测鼠标左键 if(Inhibitor.Ge ...

  2. 外中断之swi软件中断:

    在stm32的标准库的外中断库文件中有void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);原来一直不知道有什么用,现总结一下: 作用:软件模拟产生中断能 ...

  3. python的装饰器

    什么是python的装饰器? 网络上的定义: 装饰器就是一函数,用来包装函数的函数,用来修饰原函数,将其重新赋值给原来的标识符,并永久的丧失原函数的引用. 在google上搜索下python 装饰器 ...

  4. ruby字符串学习笔记4

    1 单独处理字符串的字符 如果处理的是ASCII码的文档使用string#each_byte 注意 没有 string#each方法,String#each_byte 速度比 String#scan快 ...

  5. asp.net读取txt并导入数据库

    源地址:http://www.cnblogs.com/hfzsjz/p/3214649.html

  6. asp.net子窗体与父窗体交互

    今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1  用到的文件 从图1中我们可以看到,只用到了 ...

  7. Unity中对象池的使用

    unity中用到大量重复的物体,例如发射的子弹,可以引入对象池来管理,优化内存. 对象池使用的基本思路是: 将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用.恰当地使用对象池,可以在 ...

  8. PinYinCls

    using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using S ...

  9. SparseArray,dip & px

    SparseArray-用Array的方式实现Integer-Object的map 优:节约内存,因为避免了装箱/拆箱,数据结构不依赖Entry 劣:速度不及HashMap dip.px dip(de ...

  10. leetcode 349:两个数组的交集I

    Problem: Given two arrays, write a function to compute their intersection. 中文:已知两个数组,写一个函数来计算它们的交集 E ...