数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)
T-SQL语言
按用途分四部分
- 数据定义语言(CREATE,DROP,ALTER)
- 数据操作语言(INSERT,DELETE,UPDATE)
- 数据查询语言(SELECT)
- 数据控制语言(GRANT,REVOKE,DENY)
数据类型
- 系统数据类型
- 用户自定义数据类型(建立方式:a.图形化方式 b.命令方式)
use TEST
EXEC sp_addtype sno,'varchar(10)','nonull'
EXEC sp_droptype sno
变量
命名规则:
字母、下划线、@或#开头,但不能全为下划线、@或#
不能为“关键字”,不能嵌入空格及其他特殊字符,如需使用则需要双引号或方括号括起
1.局部变量:
由用户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使用
注意:
- 第一次声明变量时,其值设置为NULL。
- 局部变量不能使用“变量=变量值”的格式进行初始化,必须使用SELECT或SET语句来设置其初始值。
- 如果声明字符型的局部变量,一定要在变量类型中指明其最大长度,否则系统默认其长度为1。
- 若要声明多个局部变量,请在定义的第一个局部变量后使用一个逗号,然后指定下一个局部变量名称和数据类型。
USE student
DECLARE @var1 char(10),@var2 int
SET @var1='number'
select @var2=cgrade
from sc
where sno='' print @var1+"s"
2.全局变量:
由系统定义,供SQL server系统内部使用的变量,任何程序任何时间都可以调用。通常以“@@”开头。
T-SQL语句
1.注释语句
(1) --
(2) /*……*/
2.批处理--GO
3.控制流程语句
(1) begin...end语句(相当于C语言中的{} )
(2) if...else语句(可嵌套)
(3)case语句(多条件选择语句)
(4)print语句(屏幕输出语句)
(5)while语句(有条件的循环语句)
(6)goto语句(无条件跳转语句)
(7)break语句
(8)continue语句
4.常用函数(系统函数、用户自定义函数)
一些系统函数:
(1)字符串函数
(2)数学函数
(3)日期和时间函数
(4)聚合函数
注意:
用户自定义函数:
1.分类:
标量值函数:返回单个值
内联表值函数:返回可更新的表
多语句表值函数:返回不可更新的表
2.标量值函数命令方式创建
CREATE FUNCTION f2(@a real,@b real)
RETURNS real
AS
BEGIN
IF @a>=@b
RETURN @a
RETURN @b
END PRINT '最大值为'
PRINT dbo.f2(77,56)
CREATE FUNCTION f3(@n real)
RETURNS real
AS
BEGIN
DECLARE @i real,@sum real
SET @i=0
SET @sum=0
WHILE @i<@n
BEGIN
SET @i=@i+1
SET @sum=@sum+@i
END
RETURN @sum
END PRINT dbo.f3(10)
3.自定义函数的调用
(1)标量值函数可以使用select、print、exec调用
(2)表值函数只能用select调用
4.删除方式
drop function 函数名
数据库
数据库概述
1.数据库常用对象:
表、数据类型、视图、索引、存储过程、触发器
系统数据库:
master、model、tempdb、msdb
2.数据库存储结构(数据库文件、数据库文件组):
数据库文件:
存放数据库数据和数据库对象的文件。一个数据库文件只属于一个数据库。
(1)主数据文件
是数据库的起点,指向数据库中文件的其他部分。每个数据库都有一个主数据文件。主数据文件的扩展名是 .mdf
(2)次数据文件
包含除主数据文件外的其他数据文件。有些数据库可能没有次数据文件,而有些数据库则有多个次数据文件。次数据文件的扩展名是 .ndf
(3)日志文件
包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的扩展名是 .ldf
数据库文件组:
文件组允许多个数据库文件组成一个组,并对它们整体进行管理。
文件组是将多个数据文件集合起来形成的一个整体(主文件组+次文件组)
一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用
日志文件不分组,他不属于任何文件组
创建数据库
CREATE DATABASE student
ON PRIMARY
(
NAME=student_data,
FILENAME='d:\student_mdf.mdf',
SIZE=20,
MAXSIZE=unlimited,
FILEGROWTH=25%
),
(
NAME=student_data1,
FILENAME='d:\student_ndf.ndf',
SIZE=20,
MAXSIZE=25,
FILEGROWTH=25%
)
LOG ON
(
NAME=student_log1,
FILENAME='d:\student_ldf1.ldf',
SIZE=3,
MAXSIZE=10,
FILEGROWTH=1
),
(
NAME=student_log2,
FILENAME='d:\student_ldf2.ldf',
SIZE=3,
MAXSIZE=10,
FILEGROWTH=1
)
修改数据库
ALTER DATABASE 语句的选项较多,但一次只能选择其中一项,所以还是比较简单的。
删除数据库
对于不再使用的数据库应该删除它以释放数据库所占用的存储空间。
只有处于正常状态下的数据库,才能使用drop语句删除(当数据库正在使用或正在恢复等不能删除)
DROP DATABASE tsg1,tsg2,tsg3
表
表的概述
数据表也简称为表,它是数据库中唯一用来存储数据的对象,是整个数据库的核心和基础。
1.数据库与数据表的关系
- 数据库包含数据表,一个数据库可以包含多个数据表。数据表是数据库的对象。
- 一个数据库对应一个文件。一个数据库对应一个主题。
- 先创建数据库,再创建数据表。先打开数据库,再打开数据表。
2.数据表的组织
不同的数据模型组织表的方式不同,在基于关系模型创建的数据表中,数据是以行和列的形式进行组织和保存的,我们也称为“二维表”。
3.数据表的组成
数据表一般由以下三部分组成
(1)表名
表名既用于概括表中的信息,也方便引用。可以根据需要对表重新命名,但重新命名前,需要将数据表关闭。
(2)表结构
所谓表结构就是不包括任何记录的数据表,也称为“空表”。空表通常只有字段名及其属性,没有任何数据。
(3)表记录
数据表中除字段名外的每行称为一条“记录”。
每一条记录的内容由其对应的数据项组成,反应某个事物相关信息的原始数据。
只有在建立了表结构后才能向表中输入记录。记录的内容随时可以根据需要更改。
4.数据表的创建与修改
创建表的过程,实际上是定义表的结构,确定表的组织形式的过程。
具体讲就是定义表中属性的个数、属性名、属性的数据类型、属性大小、定义索引、主键以及完整性等。
在创建表之前要设计号表的结构,确定上述内容,并确定无误才开始具体的建表操作。
SQL语句创建表
USE stu
CREATE TABLE student
(
sno varchar(10) not null primary key,
sname varchar(20) ,
sgender char(2) ,
sage int ,
sdept varchar(20)
) USE stu
CREATE TABLE course
(
cno varchar(10) not null primary key,
cname varchar(20) ,
ccredit smallint
) USE stu
CREATE TABLE sc
(
sno varchar(10) not null,
cno varchar(10) not null,
cgrade smallint ,
primary key(sno,cno),
foreign key (sno) references student(sno),
foreign key (cno) references course(cno)
)
SQL语句修改表结构
SQL语句删除表
SQL语句插入元组
SQL语句修改表
SQL语句删除元组
视图
视图的概念
视图概述
视图(View) 是一种数据库对象,是从若千个表或已经存在的视图中按照某种条件提取的数据组成的“虚表”。
之所以说它是“虚表”,是因为视图本身并不保存任何数据,其数据仍然存储在视图所引用的基本表中。
相对于视图,我们将以前所学过的数据表称为基本表。
视图和表类似,也是包括被定义的数据列和多个数据行,但这些数据列和数据行是建立在对基本表查询的基础上的,就本质而言,这些数据行和列来源于视图所引用的表。被引用的表也称为“数据源”。
在数据库中保存的视图实际上是创建视图时提取数据的规则和方法!
视图可以是一个数据表的一部分,也可以是多个基表的联合。
关于视图
- 视图一经定义便存储在数据库中,其保存的是视图创建的方法和提取数据的规则。
- 只有在运行视图时,才能看到视图中的数据, 这些数据在运行视图时按照某种条件从指定的数据源提取,并按视图定义的布局显示出来。
- 当通过视图对所看到的数据进行修改时,其所引用的数据源中的数据也会发生变化。反之,当数据源中的数据发生变化时,这种变化后的数据将自动反映到视图中。因此视图与其引用的数据源(基本表、 已经存在的视图)是彼此相关联的。
视图的优点
与表相比较,视图具有如下优点:
(1)视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
(2)视图可以让不同的用户以不同的方式看到不同或者相同的数据集。利用视图对数据源的数据直观地进行浏览和编辑。
(3)可以使用视图重新组织数据。根据需要从指定数据源中提取满足条件的数据,从而实现定制数据。
(4)从若干个表或视图中提取更多、更有用的综合信息,从而实现高效率地处理、加工数据。
(5)可以对提取的数据进行浏览、筛选、排序、检索、统计和更新等操作。
(6)视图可以定制不同用户对数据的访问权限。
视图与表的区别
1.视图是已经编译好的SQL语句,而表不是。
2.视图不保存数据记录,而表保存数据记录。
3.视图是查看数据表的一种方式,只是一些SQL语句的集合。
4.表是实表,视图是虚表。
5.视图的创建和删除只影响视图本身,不影响其引用的表。
使用CREATE VIEW 命令创建视图
使用Transact-SQL语句中的CREATE VIEW 命令创建视图,其语法形式如下:
CREATE VIEW <视图名> [(字段名)[,……n]]
[WITH ENCRYPTION] ] --对视图进行加密
AS
SELECT sname, sdept
FROM studentinfo
WHERE sdept = 'cs'
[WITH CHECK OPTION]
说明:
[WITH ENCRYPTION] --对视图进行加密
[WITH CHECK OPTION] --强制针对视图执行的所有数据修改语句必须符合在子查询中设置的条件
例:在产品销售数据库CPXS中创建价格不大于2000的有关产品情况的视图VIEW_CP_PRICE2000,要求加密并保证对该视图的更新都要符合价格不大于2000这个条件
USE CPXS
go
create view VIEW_CP_PRICE2000
with encryption -- 加密
as
select *
from 产品
where 价格<=2000
with check option -- 检查
例:基于VIEW_GMQK视图,查询各客户在2006年10月9日购买产品的情况。
USE CPXS
select *
from VIEW_GMQK
where 销售日期='2006-10-09'
例:利用T-SQL语句对于视图VIEW_CP_PRICE2000进行以下数据更新。(1)插入一条产品记录( '0042','数码相机',1500,2)(2)删除产品编号为’ 0042’的产品
USE CPXS
insert
into VIEW_CP_PRICE2000
values('','数码相机',1500,2) USE CPXS
delete
from VIEW_CP_PRICE2000
where 产品编号=''
例:将VIEW_CP_PRICE2000视图不加密。
USE CPXS
go
alter view VIEW_CP_PRICE2000
as
select *
from 产品
where 价格<=2000
with check option
例:将VIEW-GMQK视图删除。
USE CPXS
go
drop view VIEW_GMQK
例:对产品表,在产品名称上定义一个唯一非聚簇的索引ind_cp,降序。
USE CPXS
create unique nonclustered index ind_cp
on 产品(产品名称 DESC)
例:通过执行系统存储过程,显示产品表的索引文本。
exec sp_helpindex 产品
exec sp_rename 原视图名称, 新视图名称
use 学生课程数据库
go
exec sp_rename 'old_name','new_name'
例:删除ind_cp索引。
USE CPXS
drop index 产品.ind_cp
数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)的更多相关文章
- 数据库系统学习(十)-嵌入式SQL语言之动态SQL
第十讲 嵌入式SQL语言之动态SQL 静态SQL 区别变量和属性:高级语言向嵌入式SQL传递变量的方法 动态SQL 动态构造SQL语句是应用程序员必须掌握的重要手段 SQL语句的动态构造示例 根据界面 ...
- 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式
目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...
- 转:oralce常用操作、查询语句(查看表空间)
http://highill.iteye.com/blog/1534858 最近整理一下oralce的常用语句,借此记录一下,在网上都应该能搜到,这里主要是整理分享. 一.操作语句 建立表空间 MYD ...
- Oracle PL/SQL语言函数、匿名语句及循环
一.自定义函数 格式: create or replace function 函数名(参数名 参数类型...) return 返回值类型 as xx vachar2(20) ...
- sql常用操作(三)多表查询
1 连接查询 1.1连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”. 实际上,两个表的完全的连接是这样的一个过程: 左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到 ...
- 关于SQL语言,查询关联多张表出现的,无法返回空值的问题。
用外连接: SELECT * from PERempms left outer join PERPROMSon PERPROMS.BRANCH =PERempms.BRANCH left outer ...
- 数据库SQL语言从入门到精通--Part 1--SQL语言概述
数据库从入门到精通合集(超详细,学习数据库必看) 一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特 ...
- SQL数据库—<1>SQL语言
关系数据库.SQL语言简单.学习软件介绍 SQL:Structured Query Language 结构化查询语言 数据库分为:层次型,网状型,关系型. 关系型数据库:是一个二维表的集合,可以用来存 ...
- SQL语言分类
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL. 1 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHER ...
随机推荐
- 19 01 16 djano 视图以及url
视图 后台管理页面做好了,接下来就要做公共访问的页面了.当我们刚刚在浏览器中输入 http://127.0.0.1:8000/admin/ 之后,浏览器显示出了后台管理的登录页面,那有没有同学想过这个 ...
- poj_2406 KMP寻找重复子串问题
B - Power Strings Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u S ...
- python人脸识别项目face-recognition
该项目基于Github上面的开源项目人脸识别face-recognition,主要是对图像和视频中的人脸进行识别,在开源项目给出的例子基础上对视频人脸识别的KNN算法进行了实现. 0x1 工程项目结构 ...
- 8.scrapy的第一个实例
[目标]要完成的任务如下: ※ 创建一个 Scrap项目.※ 创建一个 Spider来抓取站点和处理数据.※ 通过命令行将抓取的内容导出.※ 将抓取的内容保存的到 MongoDB数据库.======= ...
- Vmware 部分所学到的功能简写
VMware vSphere Hypervisor 免费版esxi VMware vSphere Update Manager (6.5之后集成到了VCSA中) 在 vSphere 6.5 及更高 ...
- SQL字符替换函数translater, replace
translate() 函数原型是:translate(string, from, to) SELECT TRANSLATE('12345', '134', 'ax') 得到:a2x5 这个函数会把f ...
- 洛谷 P5661 公交换乘(队列)
题目传送门 解题思路: 暴力模拟. AC代码: #include<iostream> #include<cstdio> #include<queue> using ...
- 读取word模板,填充数据后导出
一.需求说明 定期生成word报告,报告中含有文本.表格.图表等元素,依次获取进行替换,保留原有样式,生成新的word文档 二.引入依赖 <dependency> <groupId& ...
- GitHub练习——如何将本地已有项目添加到github
刚开始开始接触,搞点简单的,看看是怎么把项目传上去,总结一下,大概是这些步骤: 创建本地仓库 将本地仓库变成git可管理的仓库:git init 把项目文件添加到缓存区:项目文件添加到已有的仓库,然后 ...
- Nacos快速开始
Nacos是一个服务发现.配置管理和服务管理的组件. 说到服务注册与发现,我想到Eureka.Zookeeper 说到服务治理,我想到Dubbo 说到配置管理,我想到Apollo 作为后起之秀的Nac ...