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
SQL笔记-第二章,数据表的创建和管理的更多相关文章
- sql server 数据库系统整理——数据表的创建和管理
注意: 1. 固定长度字符类型比非固定长度字符类型占用空间要大,可是因为进行字段值设置的时候固定长度字符类型无需进行长度处理就能够进行,因此它的处理速度更快. 所以 对于长度相对固 ...
- Oracle笔记(九) 表的创建及管理
对于数据库而言实际上每一张表都表示的是一个数据库的对象,而数据库对象指的就是DDL定义的所有操作,例如:表.视图.索引.序列.约束等等,都属于对象的操作,所以表的建立就是对象的建立,而对象的操作主要分 ...
- SQL语句(一)SQL和数据库数据表的创建
SQL的组成 (1) 数据定义语言DDL(Data Definition Language) 用于数据库和数据表的创建.修改和删除等操作 CREATE (create) 创建数据库.数据表 ALTER ...
- The Road to learn React书籍学习笔记(第二章)
The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...
- Sql Server系列:数据表操作
表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...
- 19数据表的创建-普通表&临时表-天轰穿大话数据库视频教程
关键字:数据表 数据库性能 临时表 天轰穿 sqlserver 数据库大纲:数据表的特点,数据表的类型及用法,SQL创建数据表,创建临时表,全局临时表 优酷超清地址 腾讯超清地址 原文地址:http: ...
- 《DOM Scripting》学习笔记-——第二章 js语法
<Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...
- SQL Fundamentals: 表的创建和管理(表的基本操作,闪回技术flashback,表结构修改)
SQL Fundamentals || Oracle SQL语言 1.表的基本操作 (CREATE TABLE, DROP TABLE,TRUNCATE TABLE, RENAME tablename ...
- [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的“HT”
[HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的"HT" 敲黑板!!! 创建HTML超链接 <a>链接文本(此处会有下划线,可以单击 ...
随机推荐
- 7.4 gcd
# include<stdio.h>int main(){ int gcd(int a,int b); int n,i,x,y,c; scanf("%d",&n ...
- keil中的串口调试:
keil中串口的虚拟调试信息在通过View-serial windows-#usart1/2/3/4/debug(printf)可以看到.当然也可以通过虚拟串口VSPD+串口调试助手在外部实现,方法如 ...
- PHPStorm+XDebug进行调试图文教程以及解析wamp的php.ini设置不生效的原因
这篇文章主要为大家详细介绍了PHPStorm+XDebug进行调试图文教程,内容很丰富,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 笔者的开发环境如下:Windows8.1+Apache+P ...
- PHP每日签到时怎么实现
以淘宝网领取淘金币的签到系统为例:目标:第一天签到增加5个积分:第二天连续签到则增加8个积分:第三天连续签到,增加11个积分,第 四天连续签到,增加15个积分:第五天连续签到,增加19个积分:第六天连 ...
- StringIO 模块用于在内存缓冲区中读写数据
模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分函数都与对文件的操作方法类似. 例: #coding=gbk import StringIO s=StringIO ...
- android之Spinner控件用法
用法1: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...
- How To Easily Call WCF Services Properly z
Please note: this article has been superceded by the documentation for the ChannelAdam WCF Library. ...
- 要件审判九步法及其基本价值 z
要件审判九步法及其基本价值 发布时间:2014-12-24 14:29:05 作者介绍 邹碧华,男,1967年出生于江西奉新,毕业于北京大学法学院,获法学博士学位.上海市高级人民法院副院长.2006年 ...
- ruby-rails 环境搭建
https://ruby-china.org/wiki/install_ruby_guide
- chkconfig : No such file or directory
sys_version:12.04LTS For example: #chkconfig --level mysql on /sbin/insserv:No such file or director ...