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

时间: 2024-10-13 16:29:33

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

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

注意: 1.  固定长度字符类型比非固定长度字符类型占用空间要大,可是因为进行字段值设置的时候固定长度字符类型无需进行长度处理就能够进行,因此它的处理速度更快. 所以          对于长度相对固定的数据来讲,使用固定长度字符类型将会提高系统的系能. 2.  改动已有数据表.加入字段的语法:ALTER TABLE 待改动的表名ADD 字段名字段类型 3.  改动已有数据表,删除字段的语法:ALTER TABLE 待改动的表名DROP 待删除的字段名 4.  删除数据表的语法:DROP TAB

数据表的创建与管理

在数据库中通过数据表来存放记录,在数据表中经常会碰到主外键,索引,约束等条件,下面就详细一下. 主键 一张数据表中唯一的标识,确保一张数据表中不会出现两个完全相同的数据记录. 主键可以定义在多个列上,也就是说在定义数据库的时候可以将数据表中的多个列合并在一起作为该表的主键 外键 用来表与表之间关系的.如果字段F是表B中的字段,而且是表A的主键的话,那么列F就是表B的外键.用来执行增 删改查的时候,两张表一致性. 外键删除时,对应的表中的记录也应该做出相应的调整,分为三种方式 1.CASCADE:

数据库系列学习(二)-数据表的创建和管理

1.数据类型 A:整数类型 bit,int,smallint,tinyint [与操作系统位数有关] B:数值类型 decimal,numeric,money,smallmoney,float,real [可存小数] C:字符相关类型 char,varchar,text,nchar,nvarchar,ntext D:日期时间类型 datetime(精确到0.01秒),smalldatetime(精确到分钟),timestamp E:二进制类型 image [经图片,视频转为二进制,保存到数据库]

《深入理解Java虚拟机》读书笔记---第二章 Java内存区域与内存溢出异常

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来.这一章就是给大家介绍Java虚拟机内存的各个区域,讲解这些区域的作用,服务对象以及其中可能产生的问题. 1.运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域. 1.1程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型中里,字

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义.索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM

数据库表的创建、管理和数据操作(实验一),数据库创建

数据库表的创建.管理和数据操作(实验一),数据库创建 今天我们就以实验的形式对表的创建.管理和数据操作进行学习,上课吧. [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:利用SQL语言进行数据库表的各种操作:1.数据库表的创建.修改和删除操作.2.向表中进行数据的插入.删除和修改操作.[实验内容]1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student.Course.SC.2.利用INSERT.UPDATE和DELE

《Java并发变成实践》读书笔记---第二章 线程安全性

什么是线程安全性 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问.从非正式的意义上来说,对象的状态是指存储在状态变量(例如实例或静态域)中的数据."共享"意味着变量可以由多个线程同时访问,而"可变"则意味着变量的值在其生命周期内可以发生变化.所以编写线程安全的代码更侧重于如何防止在数据上发生不受控的并发访问. 如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误

Java编程思想笔记(第二章)

第二章  一切都是对象 尽管Java是基于C++的,但相比之下,Java是一种更纯粹的面向对象程序设计语言. c++和Java都是杂合型语言(hybird language) 用引用(reference)操作对象 类似遥控器(引用)来操作电视(对象) 在Java中你可以创建一个引用,但是没有与任何对象关联,比如: String s; 这个时候如果用则会报错.安全的做法是: 创建一个引用的同时并进行初始化 String s="1111"; 必须由你创建所有对象 New关键字的意思是给我一

C++ Primer 笔记 第二章

C++ Primer 第二章 变量和基本类型 2.1基本内置类型 有算数类型和void类型:算数类型储存空间大小依及其而定. 算数类型表: 类型 含义 最小储存空间 bool 布尔型 - char 字符型 8 wchar_t 宽字符型 16 short 短整型 16 int 整型 16 long 长整型 32 float 单精度浮点型 6位有效数字 double 双精度浮点型 10位有效数字 long double 扩展精度浮点型 10位有效数字 2.1.1整型 包括整数字符和布尔型. 字符型: