SQL查询的艺术-第三章:创建、修改、查询表

本文详细介绍了SQL中三种表的类型及其特点,包括永久表、全局临时表和局部临时表。同时,还深入探讨了SQL支持的各种数据类型,如字符型、数字型、日期型、二进制型及文本和图形数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.表的种类:

1.永久表:永久保存在数据库中的表

2.全局临时表:在SQL会话过程中存在,当会话关闭后,表也会被销毁(注:SQL会话是指用户与SQL服务器之间的连接)

3.局部临时表:生命周期和全局临时表一样,所不同的是使用范围不同。局部临时表只有创建它的会话才可以访问,其他会话访问不了。

二.SQL的数据类型:

1.字符型数据:

数据类型说明
char(size)固定长度的字符串类型。size就是设置的固定长度 ,不能超过255个字节
varchar(size)变长度的字符串型 ,size指的是变长字符换的最大长度
nchar(size)char的扩展类型,支持多字节和unicode字符
nvarchar(size)varchar的扩展类型,支持多字节和unicode字符

补充:

1.固定长度的字符变量:
	在表创建的时候就指定了,并分配了存储空间。
	如果输入的字符数少于指定的固定改长度,会在字符右边以空格填补
2.使用固定长度的字符变量的优势:
	DBMS在对字符进行处理或者排序的时候,对固定长度的字符处理效率比较高(空间换时间)

2.数字型数据:

数字型数据中有两个概念:精度和范围

1.精度:精度是可以储存数字的位数,包括整数部分和小数部分

2.范围:是指该值的小数部分的数字的数目
数据类型说明
Bit单比特数据,只能取值0或者1;如果输入这两个数以外的数将被视为1;不能被定义为NULL值
integer或者int4比特的整数
Rcal4比特的浮点数,可以指定精度,但是不能指定范围
Double Precision双精度型浮点数
Float可以精确到第15位小数,占用八个字节的存储空间,可以指定精度而不指定范围
SmallInt2比特的整数
tinyInt1比特的整数
number可存放实型或者整型
对于number类型的特别说明:
	如果是number(size):则表明最大数字的位数由size指定(没有小数位数)
	如果是number(size,d):则size为精度,d为范围

在这里插入图片描述

3.日期数据类型:

不同DBMS对于日期格式的规定不同

数据类型说明
data使用10个字符保存4位数的年、2位数的月和两位数的日的日期值:2019-04-15
time(size)或者time时间数值型,指定时分秒的值。时:两位数,00-23;分:两位数,00-59;秒至少为两位数,00-59.999,小数位数由size指定,如果不指定秒不包含小数
timestamp包括日期和时间

4.二进制数据类型

数据类型说明
binary定长二进制类型,最大长度从255到8000个字节不等,具体长度根据DBMS的类型而定
varbinary可变长二进制数据,最大长度从255到8000个字节不等,具体长度根据DBMS的类型而定
raw定长二进制数据,最大长度为255个字节
varraw变长二进制数据,最大可达2GB

5.文本和图形数据类型:

数据类型说明
text存储大容量文本数据,其容量要视硬盘的存储空间而定
ntexct和text类似,但不同的是使用unicode字符集
image存储大量的二进制数据

三.表的创建

创建表、非空约束和default指定默认值:

create table table_name
(
colunm_name1 data_type [not null] [default default_value]
...
)

四.表的修改

1.增加新列:

alter table table_name 
	add column_name data_type [not null] [default default_value]

当添加新列时,DBMS向表中的列定义的尾部添加列,如果不指定列的默认值,则在已有的行上将该列设为null值
也就是说,如果未设置默认值,则该列不能设置not null约束(前提是该表中已经存在了数据,如果不存在数据,则不存在这个问题)

2.删除列:

alter table table_name 
	drop column column_name1,column_name2...

四.删除表和创建、删除数据库:

1.删除表:

drop table table_name

2.创建数据库:

create database database_name 
	additional parameters

3.删除数据库:

drop database database_name1...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值