一.表的种类:
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或者int | 4比特的整数 |
Rcal | 4比特的浮点数,可以指定精度,但是不能指定范围 |
Double Precision | 双精度型浮点数 |
Float | 可以精确到第15位小数,占用八个字节的存储空间,可以指定精度而不指定范围 |
SmallInt | 2比特的整数 |
tinyInt | 1比特的整数 |
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...