• SQL笔记-第二章,数据表的创建和管理


    数据类型

    分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

  • 相关阅读:
    Oracle DataGuard搭建(二)
    Oracle DataGuard搭建(一)
    Linux 安装oracle10g 配置dataguard 介绍和步骤
    Oracle DataGuard数据备份方案详解
    汽车行业的DMS系统 IT不变应万变
    汽车行业DMS系统介绍
    详解UML中的聚合,关联,泛化等关系
    ASP.NET将Session保存到数据库中
    C#快捷键
    Asp.net中使用资源文件实现网站多语言
  • 原文地址:https://www.cnblogs.com/xieqianli/p/4245466.html
Copyright © 2020-2023  润新知