数据库常用对象
- 表 包含数据库中所有数据的对象,行和列组成,用于组织和存储数据。
- 字段 表中的列 一个表可以有多个列,自己的属性: 数据类型(决定了该字段存储哪种类型的数据),大小(长度)。
- 视图 表 (虚拟表)一张或多张表 用户查看数据的一种方式,结构和数据是建立在对表的查询基础之上的。
- 索引 为了给用户提供一种快速访问数据的途径,索引是依赖于表而建立的。
- 存储过程 是一组为了完成特定功能的SQL语句的集合(可以查询、插入、修改、删除),编译后,存储在数据库中,以名称进行调用,当调用执行时,这些操作就会被执行。
- 触发器 在数据库中,属于用户定义的SQL事务命令集合,针对于表来说,当对表执行增删改操作时,命令就会自动触发而去执行。
- 约束 对数据表的列,进行的一种限制。可以更好的规范表中的列。
- 缺省值 对表中的列可以指定一个默认值。
数据类型
数值型:
-
整型类型: bigint int smallint tinyint
-
浮点型: float 近似数值 存在精度损失 real 近似数值
decimal 精确数值 不存在精度损失 decimal(18,2)
-
货币类型: money smallmoney
字符型:
- char 固定长度 8000
- varchar 可变长度字符串 8000
- text 可变长度的字符串 最多2GB字符数据
- unicode字符串
- nchar 4000
- nvarchar 4000
- ntext 可变长度的Unicode数据 最多2GB数据
日期类型:
- datetime 精确度高 3.33毫秒
- datetime2 精确度更高 100纳秒
- smalldatetime 精度1分钟
- date 仅存储日期
create database CK
on
(name='CK_Data', --数据库CK的逻辑文件名,在sql server系统中使用
filename='d:/data/ck_data.MDF', --数据库CK的物理文件名,在操作系统中使用
size=10, --数据库CK的文件大小为10MB
filegrowth=10%, --数据库按10%增长
maxsize=unlimited) --数据库最大增长无限制,此句无逗号。
log
on
(name='CK_log', --日志文件的逻辑文件名
filename='d:/data/ck_data_log.LDF', --日志文件的物理文件名
size=5, --日志文件的大小为5MB
filegrowth=1, --日志文件1MB增长
maxsize=15) --数据库日志文件最大为15MB,此句无逗号。
--修改CK数据库的数据库文件"CK_data"的大小增加到300MB,日志文件"CK_log"的大小增加为100MB
alter database ck
modify file
(name=ck_data,
size=300MB)
alter database CK
modify file
(name=ck_log,
size=100MB)
结构化查询语言
创建数据库
创建数据库
--创建数据库
CREATE DATABASE CK COLLATE Chinese_PRC_CI_AS;
创建供应商表S
--创建供应商表S
use CK
create table S(
SNO char(4) not null,
SNAME varchar(20) null,
SADDR varchar(30) null,
primary key(SNO)
)
创建零件数据表P
--创建零件数据表P
use CK
create table P(
PNO char(4) not null,
PNAME varchar(20) null,
COLOR varchar(10) null,
WEIGHT smallint null,
primary key(PNO)
)
创建工程项目数据表J
--创建工程项目数据表J
use CK
create table J(
JNO char(4) not null,
JNAME varchar(20) null,
JCITY varchar(20) null,
BALANCE money null,
primary key(JNO)
)
创建供应关系数据表SPJ
--创建供应关系数据表SPJ
use CK
create table SPJ(
SNO char(4) not null,
PNO char(4) not null,
JNO char(4) not null,
PRICE money null,
QTY smallint null,
primary key(SNO,PNO,JNO), --实体完整性规则
foreign key(SNO) references S(SNO), --参照完整性规则
foreign key(PNO) references P(PNO), --参照完整性规则
foreign key(JNO) references J(JNO), --参照完整性规则
check (QTY between 0 and 10000) --用户定义完整性规则
)
基本表结构的修改
在供应表中增加一个字段
--在供应表中增加一个字段:Telephone char(10) null
use CK
alter table s
add Telephone char(10) null
删除供应表中一个字段
--删除供应表中一个字段:Telephone
use CK
alter table s
drop column Telephone
修改供应商表S,使得供应商名称长度为50
--修改供应商表S,使得供应商名称长度为50
use CK
alter table s
alter column Sname varchar(50) null
基本表的撤销
--创建供应商表S1
use CK
create table S1(
SNO char(4) not null,
SNAME varchar(20) null,
SADDR varchar(30) null,
primary key(SNO)
)
--删除供应商表S1
use CK
drop table S1
视图的创建
--创建视图
create view JSP_NAME(JNO,JNAME,SNO,SNAME,PNO,PNAME,QTY)
as select J.JNO,JNAME,S.SNO,SNAME,P.PNO,PNAME,QTY
from S,P,J,SPJ
where S.SNO=SPJ.SNO
and P.PNO=SPJ.PNO
and J.JNO=SPJ.JNO
--查看试图
select * from JSP_NAME
--撤销视图
drop view JSP_NAME
索引的创建和撤销
--对表J创建名为JNO_INDEX索引,JNO降序排列
create index JNO_INDEX on J(JNO desc)
--使用建立的索引
select * from J with (index=JNO_INDEX)
--删除索引
drop index J.JNO_INDEX
标签:CK,--,SNO,数据库,server,sql,null,JNO
From: https://www.cnblogs.com/hekang520/p/18387211