没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第1章. 创建 修改和删除表
1.1.范式
现在的数据库一般应符合第三范式.1NF:无重复的列;2NF:非主属性非部分信赖于主关键字;3NF:一个
数据库表中不包含已在其他表中已包含的非主关键字信息.包括数据定义 DDL, 数据查询 DQL,数据操作
DML,数据控制 DCL,其它事物等控制语言。
第2章. SQL 环境
DBMS 实际是由很多个目录组成的,而每个目录又包含很多个模式,每个模式又包含表、视图、约束、
触发器等 11 个 SQL:1999 规范的模式对象。这里的模式是表、视图等的集合。
创建一个模式:create schema studentScheam;使用:set schema studentSchema;随便的操作都属于
此模式例如:create table studne;create view computerDeptStud 等。创建一个目录:create catalog
studentCatalog;使用:set catalog studentCatalog;随便可以跟创建模式等操作。
2.1.表的种类
永久表
我们一般用的都是永久表用 create table 来建立.
全局临时表
只有在SQL会话的上下文引用该表的定义时,实际的表才会存在,对话结束后,该表就不存在
了.不能从一个SQL会话访问在另一个会话中创建的表,在SQL的任何地方都可以访问,用 create
global temporary table.
局部临时表
和全局临时表一样,不同处在于,只能在一个会话中访问,用 create local temporary table
2.2.数据类型
表 3-1
数据类型
说明
char(size)
固定长度的字符串,不能超过255个字节
varcher(size)
变长字符串,最大不超过(size)值,一般没有上面的速度快
nchar(size)
支持多字节和 unicode 字符
nvarchar(size)
支持多字节和 unicode 字符
数字型字符,如果数值非法会把最前面的非法字符截掉 01—>1
bit
只能取0和1,如果输入其它值则认为是1,bit 类型不能为 null
int(integer)
4 比特的整数
real
4比特的浮点数,可以指定精度,不能指定范围
double precision
双精度浮点数
float
可以精确到第15位小数,8个字节,如 3248.54,范围为2,精度为6
smallint
2比特的整数,取值-32768-32767
tinyint
1比特的整数,取值 0-255
number(decimal)
一般不采用这种方式,容易出错.number(size,d),如果不符合括号中的精度和
范围会出现,可存放实型和整型。
货币类型
money
8 比特,数据前应带有货币符号,系统才会识别,默认为¥
smallmoney
4比特
日期类型
data
格式为 2006-06-07
time
时间,时是00-23,分是00-59,秒至少为两位数00-59
timestamp
包括日期和时间,采用26个字符,前10位是日期,加一个空格后跟15位日
期格式
time with time zone
和TIME类似,但包含UTC和时区信息
timestamp with time
zone
和 timestamp 类似,但包含UTC和时区信息
二进制类型
binary
定长二进制,最大长度从255-8000不等,输入时数据前必须带有 0x 做为
二进制标识,如果长度超长会截掉超过的部分。
varbinary
变长,最大长度从255-8000不等
raw
定长二进制,最大长度在255个字节
varraw
变长,最大可达到2G
文本和图形
text
存储大量的文本
ntext
和 text 类似,不同的是他采用U档 UNICODE 字符集
image
和 binary 类似,输入时数据前带有 0x
2.3.创建表操作
创建
create table table_name
非空约束:not null
默认值:default
例:cerate table student(
id int not null default 1,
name varchar(20) not null default ‘ld’
);
修改
alert table table_name add column_name data_type (not null default )
alert table table_name drop column_name
alert table table_name modify column_name data_type
添加时,如果添加一个非空的列还要增加默认值.
删除时,不能删除 PK 和非空的列,如果要删除,则可以先用 alert table table_name
drop constraint constraint_name 来先删除约束, constraint_name 可以从出错信息中取。但是这个删除
的限制只局限于某些数据库,像 MYSQL 就没有这个限制。
create table student(
sno int not null AUTO_INCREMENT,
sname varchar(20),
sex varchar(4) not null default '男',
primary key(sno)
);
insert into student (sex) values('ld');
alter table student add email varchar(12) not null default 'aa2@.com.c';
alter table student drop column email;
alter table student modify email varchar(20);
alter table student modify sname varchar(20) not null default 'ldd';
重命名表元素
sp_rename ‘old_name’,‘new_name’:重命名表
sp_rename ‘tableName.columnName_old’, ‘tableName.columnName_new’,’column’:重命名列
以上的 SP_RENAME 适用于 SQL SERVER 数据库,其它的一般用 RENAME;但在 MYSQL 下不好用。
删除
drop table table_name;
drop database database_name;
create database database_name;
第3章. 索引与视图的创建
3.1.索引的基本概念
索引是一个单独的,物理的数据库结构,是数据库的一个表所包含的值的列表,其中注明了表的各个值所
在的位置,依赖于表建立的,为了提高访问速度.分为簇索引和非簇索引:
一般一个数据库表分为数据页面和索引页面。索引页面小的多,一般搜索时先搜索索引表找到数据的指
针,然后依指针找到数据。
簇索引:
对表的物理数据页中数据按列进行排序,然后重新存储在磁盘上,这种方式查询速度快,但占用大量的空
间.一般占到表数据的 120%左右。一个表只能以一种排序方式存储在磁盘上,所以一个表只能建立一个簇
索引。它改变了表数据存放的位置。
非簇索引:
这种方式更引用空间,采用目录的方式来搜索,但一张表只能建一个簇索引,但可以建立多个非簇索引。
这种方式没有改变表数据存放的位置。
3.2. 簇索引操作
非簇索引创建:create index index_name on table_name(column_name1, column_name2, column_name3);
多字段创建也是一样道理,只不过多字般在搜索时能快些,而且有个优先级的排序问题.
搜索 :select * from table_name with (index(index_name))
簇索引创建:create clustered index index_name on table_name(column_name1, column_name2)
销毁:drop index index_name
创建索引时,一次只能指定一个名,但后面中以包含多个列。
3.3. 建立索引时的几点原则
对小的数据表,不需要创建索引.
当字段有很多空值时,这时为该字段创建索引能大大提高速度
当查询时包含小于 25%的数据时,会提高速度
剩余38页未读,继续阅读
资源评论
- 2301_785751552023-06-07#内容详尽 #注释完整,总体来看还是个人笔记本内容和深度
korgs
- 粉丝: 6676
- 资源: 106
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功