SQL SERVER
文章平均质量分 80
SQL是一种组织、管理和检索计算机数据库存储的数据的工具。 SQL是结构化查询语言(Structured Query Language)的缩写。SQL可以与数据库交互。参考自《21天学会SQLSERVER》
ngbshzhn
数学教师一枚
展开
-
SQL SERVER(47)图书管理系统之四图书管理的增删改查
Public Class frmAddbook Private Sub ClearText() txtBookName.Text = "" txtAuthor.Text = "" txtISBN.Text = "" txtPrice.Text = "" txtPub.Text = "" txtDate.Text = "" txtContent.Text = "" End Su...原创 2020-06-08 10:41:34 · 1166 阅读 · 0 评论 -
SQL SERVER(47)图书管理系统之三主窗体设计
添加菜单栏,状态栏和一个Datagridview控件主窗体的代码Public Class Main Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGridView1.DataSource = Nothing Dim pubf As New PubFunction ..原创 2020-06-08 09:03:46 · 777 阅读 · 0 评论 -
SQL SERVER(47)图书管理系统之二用户登录
登录窗体设计Public Class frmLogin Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtUserName.Text = "abc" txtpwd.Text = "123" End Sub‘全部调试好后,上面这段代码要删掉 Private Sub btnOK原创 2020-06-06 17:45:50 · 379 阅读 · 0 评论 -
SQL SERVER(46)图书管理系统之一数据库设计
创建一个数据库bookmanager添加两个数据表图书信息表用户表打开VB,创建一个Windows应用程序添加数据源找到刚创建的数据库bookmanager,添加到项目里创建一个PubFunction类Imports System.Data.SqlClientPublic Class PubFunction Public Function GetConnection() As SqlConnection Return New SqlConn原创 2020-06-06 17:41:47 · 2924 阅读 · 2 评论 -
SQL SERVER(45)管理触发器
1.利用T-SQL修改触发器例 创建触发器并对其进行修改。要求创建触发器trg_chk_i,并对其进行修改use testgo--创建触发器CREATE TRIGGER trg_chk_iON ATriTestAFTER insertASBEGIN print '创建trg_chk_i完成!';END--修改触发器ALTER TRIGGER trg_chk_iON ATriTestAFTER insertASBEGIN print '修改trg_ch...原创 2020-06-06 08:30:52 · 167 阅读 · 0 评论 -
SQL SERVER(44)使用T-SQL创建DDL触发器
利用DDL类型的触发器可以限制和记录特定的DDL操作。例如通过DDL触发器可以限制对数据库结构的修改,记录数据库中的更改事件,也可以在修改对象的时候根据实际情况做出必需的响应动作 例 创建DDL触发器。 要求拒绝创建表,并做出相关提示。use AdventureWorksgoIF EXISTS (SELECT * FROM sys.triggers WHERE name='trg_reftable')DROP TRIGGER trg_reftableON DATA...原创 2020-06-06 07:55:33 · 438 阅读 · 0 评论 -
SQL SERVER(43)触发器执行的顺序
在一张表有多个触发器的时候,允许开发人员对AFTER触发器被激发的顺序进行控制。控制顺序需要用到sp_settriggerorder存储过程,并注意以下几个方面:顺序只能控制第一个触发器和最后一个触发器,除此之外的中间触发器顺序无法控制。 第一个和最后一个触发器必须是两个不同的DML触发器。 控制顺序只针对相同的触发动作而言,也就是说AFTER update触发器,只能为UPDATE操作设置次序。 INSTEAD OF触发器不能设置顺序。 如果ALTER TRIGGER语句更改了第一个或...原创 2020-06-05 16:38:15 · 2388 阅读 · 0 评论 -
SQL SERVER(42)触发器内判断事件操作
例 根据不同的DML事件进行不同操作。 要求当对ATriStudent表进行INSERT,UPDATE和DELETE操作时分别做出提示,并记录到日志表ATri_Log中CREATE TRIGGER trg_ATriStudent_iudON ATriStudentAFTER insert,update,deleteASIF EXISTS (SELECT 1 FROM inserted) AND NOT EXISTS (SELECT 1 FROM deleted)...原创 2020-06-05 16:14:21 · 1158 阅读 · 0 评论 -
SQL SERVER(41)创建触发器
目录1.触发器工作原理2.触发器语法结构CREATE TRIGGER (Transact-SQL)(1)数据操纵语言(DMI)触发器语法。(2)数据定义语言(DDL)触发器语法结构。(3)登录触发器语法结构。3.使用T-SQL创建DML触发器(1)设计ATriStudent表(2)设计ATri_Log日志表(3)创建触发器(4)验证触发器1.触发器工作原理 触发器的原理涉及两张虚拟的表,这两张虚拟的表分别是INSERTED表和DELETED表。I...原创 2020-06-05 15:58:48 · 754 阅读 · 0 评论 -
SQL SERVER(40)认识触发器
1.什么是触发器 触发器由Transact-SQL编写并存储在SQL Server服务器中。触发器由数据库的特定事件来触发,特定事件主要包括:(1)用户在指定的表或视图做DML操作,主要包括如下几种:INSERT操作,在特定的表或视图中增加数据。 UPDATE操作,对特定的表或视图修改数据。 DELETE操作,删除特定表或视图的数据。(2)用户做DDL操作,主要包括如下几种:CREATE操作,创建对象。 ALTER操作,修改对象。 DROP操作,删除对象。(3)用户进行LO..原创 2020-06-05 15:04:31 · 132 阅读 · 0 评论 -
SQL SERVER(39)游标的使用
1.什么是游标 游标是指针的一种结构,它包含结果集和结果集中指向记录的游标位置两部分,游标作为指针来遍历结果集(每次指向一行),游标是一个数据缓冲区,它存放了查询结果,而用户则可以利用SQL语句从这个缓冲区中提取数据。 游标可以完成以下的功能操作: 允许从当前行检索一行或多行数据。 允许操作当前行的数据,这也是最常用的游标使用方式。 可以定位在特定的行。 游标的主要作用是遍历查询的结果集,在遍历结果集的同时可以对游标所指向的记录进行数据操作,它的使用...原创 2020-06-05 11:15:05 · 396 阅读 · 0 评论 -
SQL SERVER(38)用户自定义函数
目录CREATE FUNCTION (Transact-SQL)1.创建使用标量函数2.创建使用表值函数 (1).内嵌函数 ( 2).多语句函数3.查看与修改用户自定义函数4.删除用户自定义函数DROP FUNCTION (Transact-SQL)CREATE FUNCTION (Transact-SQL)https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-function-transa...原创 2020-06-05 10:28:48 · 787 阅读 · 0 评论 -
SQL SERVER(37)修改与删除存储过程
ALTER PROCEDURE (Transact-SQL)https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-procedure-transact-sql?view=sql-server-ver15-- Syntax for SQL Server and Azure SQL Database ALTER { PROC | PROCEDURE } [schema_name.] procedure_name [ ; numbe原创 2020-06-05 09:18:42 · 200 阅读 · 0 评论 -
SQL SERVER(36)存储过程
CREATE PROCEDURE (Transact-SQL)https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-procedure-transact-sql?view=sql-server-ver15-- Transact-SQL Syntax for Stored Procedures in SQL Server and Azure SQL DatabaseCREATE [ OR ALTER ] { PROC | PRO原创 2020-06-04 15:39:35 · 790 阅读 · 0 评论 -
SQL SERVER(35)流控制语句
1.BEGIN...END语句2.IF...ELSE语句IF条件BEGIN语句块l[ ELSEBEGIN语句块2END]例 求两数之商,如果除数不为0,则求出正确结果,如果为0,则给出提示。DECLARE @x real,@y real,@z realSELECT @x=9,@y=5IF @y<>0BEGTN SELECT @z=@x/@y PRINT ’结果为:'+CAST(@z AS char)ENDELSE PRINT '除数原创 2020-06-04 10:59:26 · 207 阅读 · 0 评论 -
SQL SERVER(34)Transact-SQL中的变量
1.局部变量 DECLARE [@local_variable [AS] data_type] [,…n]@locaLvariable:局部变量名称。 data_type:局部变量的数据类型,但不能是text、ntext或image数据类型。用SET语句和SELECT语句可以为变量赋值。SET @local_variable=valueSELECT @local_variable=value用SELECT语句和PRINT语句可以显示变量内容。SELECT @local...原创 2020-06-04 10:45:03 · 256 阅读 · 0 评论 -
SQL SERVER(33)rransact-SQL运算符
目录1.算术运算符2.赋值运算符3.位运算符4.比较运算符5.逻辑运算符6.字符串连接运算符7. 一元运算符8.运算符的优先级1.算术运算符 运算符 说 明 + 加法 - 减法 * 乘法 / 除法 % ...原创 2020-06-04 08:25:46 · 146 阅读 · 0 评论 -
SQL SERVER(32)Transact-SQL概述
Transact-SQL语言是SQL Server为用户提供的一种编程语言,是对标准SQL的实现和扩展,它具有标准SQL的主要特点,同时增加了变量、运算符、函数和流程控制等语言元素,使得其功能更加强大。目录1.Transact-SQL与标准SQL2.Transact-SQL的语法约定3.加入注释1.Transact-SQL与标准SQLTransact-SQL又简称T-SQL,它是微软公司在SQL Server数据库管理系统中对标准SQL的实现和扩展,是使用SQL Serv...原创 2020-06-04 08:05:34 · 492 阅读 · 0 评论 -
SQL SERVER(31)视图的删除
使用DROP VIEW语句删除视图删除视图的SQL语句语法格式如下:DROP VIEW 视图名称从数据库中删除视图"vw_boy"DROP VIEW vw_boyl原创 2020-06-04 07:38:27 · 604 阅读 · 0 评论 -
SQL SERVER(30)使用视图操作表数据
1.使用INSERT语句插入数据通过vw_boy视图向stu info表插入学生信息。INSERT INTO vw_boyVALUES('0018','蒋十九','男','1988-05-29','NULL,NULL,'计算机系')GOSELECT *FROM vw_boyGO2.使用UPDATE语句更新数据 在视图上使用UPDATE语句也可以更新基表的数据。但有一点必须提醒读者,并不是所有视图都能够更新数据,以下几种视图不能用于更新。 表值函数返回的结果只有在某些情...原创 2020-06-04 07:35:52 · 448 阅读 · 0 评论 -
SQL SERVER(29)修改视图
使用SQL语句的ALTER VIEW可以修改视图:ALTER VIEW 视图名称[字段1,字段2,…]ASSELECT查询语句[WITH CHECK OPTION]修改视图vwA.使其能够查询"邓小平理论"考试成绩大于等于95的学生的学号、姓名、所属院系和考试成绩。ALTER VIEW vwAASSELECT st.sno, st.sname, st. depart, s.examFROM stu_into AS st原创 2020-06-03 16:36:34 · 849 阅读 · 0 评论 -
SQL SERVER(28)创建视图
1.使用CREATE VIEW语句创建视图创建视图vw_boy.它用于将表stu_info中全部男生的信息显示出来。并使用视图vw_boy查询国际交流学院的男生。 CREATE VIEW vw_boy AS SELECT * FROM Stu_info WHEREE sex='男'2.用别名命名视图字段创建视图vw_boyl,用于将表stu_info中全部男生的信息显示出来,并给相应字段设置中文别名。 CREATE VIEW vw_bo原创 2020-06-03 16:28:47 · 1686 阅读 · 0 评论 -
SQL SERVER(27)视图的概念
视图是一个虚拟表,称其为虚拟表的原因是:视图内的数据并不属于视图本身,而属于创建视图时用到的基本表。可以认为,视图是一个表中的数据经过某种筛选后的显示方式;或者是多个表中的数据经过连接筛选后的显示方式。 视图由一个预定义的查询(SELECT语句)组成,可以像基本表一样用于SELECT语句中。如果视图满足一定条件,还可以用在INSERT、UPDATE和DELETE语句中,对视图所调用的基本表进行插入、更新和删除数据操作。定义一个视图vwA,将上例的SELECT语句存放到该视图内。CR...原创 2020-06-03 16:01:25 · 311 阅读 · 0 评论 -
SQL SERVER(26)使用TRUNCATE语句删除所有记录
TRUNCATE是删除表中所有记录的另一种语句,与DELETE语句相比,TRUNCATE运行效率非常高,因为使用TRUNCATE语句时,SQL Server不会写入任何内容,换个角度说,TRUNCATE语句所做的修改是不能回滚的。这里需要强调一点,TRUNCATE语句只是删除了表中的所有数据,而并没有删除表本身。 删除stu_info_copy表内的所有记录。 如果已经将stu_info_copy表中的数据全部删除,则使用以下语句向stu_info_copy表插入内容。 ...原创 2020-06-03 15:49:42 · 965 阅读 · 0 评论 -
SQL SERVER(25)使用DELETE语句删除数据
1 使用DELETE语句删除指定记录从stu_info_copy表,删除名叫“安娜”的学生。DELETE FROM stu_info_copyWHERE 姓名='安娜'从stu_info_copy表,删除所有外语系的学生。 DELETE FROM stu_info_copy WHERE 所属院系='外语系'2 在DELETE语句中使用多表连接从score_copy表中,删除“张三”的所有相关记录。DELETE score_copyFROM scor.原创 2020-06-03 15:44:37 · 17431 阅读 · 0 评论 -
SQL SERVER(24)使用UPDATE语句更新数据
目录1 更新单个字段的数据2 更新多个字段的数据3 使用表连接更新数据4 使用UPDATE语句删除指定字段的数据1 更新单个字段的数据在stu_info表中,将名叫"张三”的学生的email更改为“zhangsan@163.com",UPDATE stu_infoSET email='zhangsan@163.com'WHERE sname='张三'2 更新多个字段的数据在stu.info表中,将没有院系的学生全部归为“国际交流学院”所属,并将ema...原创 2020-06-03 15:25:03 · 4319 阅读 · 0 评论 -
SQL SERVER(23)使用INSERT语句插入数据
向数据表course添加如表所示的课程内容。 课号 课 名 类 型 学 分 009 法律錾础 必修 3 010 素描 选修 2 INSERT INT...原创 2020-06-03 15:05:22 · 3698 阅读 · 0 评论 -
SQL SERVER(22)子查询
嵌入另一个SELECT语句中的SELECT语句被称为子查询。目前,子查询能完成的工作,通过表连接几乎也都可以完成,而在过去,因为内连接的运行效率比较差,外连接又不能使用,所以子查询被运用得非常广。但是,近些年来由于对SQL Server的优化,使得内连接的运行效率明显高于子查询,而外连接也被开发了出来,所以用户开始丢掉那些比较难理解的子查询语句,而改用相对容易理解的表连接查询语句。 虽然多数情况下,使用表连接查询要优于子查询,但是,在特定环境下,子查询运行的效率可能仍旧优于表连接查询,所以为...原创 2020-06-03 08:59:28 · 205 阅读 · 0 评论 -
SQL SERVER(21)组合查询
除连接查询外,SQL中还有一种组合查询,这种查询使用UNION关键字将多个SELECT语句组合起来,将多个SELECT语句的查询结果显示到一个结果集中。组合查询与连接查询不同的是,前者将多个表的查询结果,竖着组合,而后者是将查询结果横着连接。1 使用组合查询从stu_info表中查询所属院系为“计算机系”,或者年龄大于30岁的学生的信息。SELECT * FROM stu_infoWHERE depart='计算机系'UNIONSELECT * FROM stu_infoWH...原创 2020-06-01 21:08:33 · 932 阅读 · 0 评论 -
SQL SERVER(20)高级连接查询
一 自连接查询SELECT stl.*FROM stu_info AS stl,stu_info AS st2WHERE stl.depart=st2.departAND st2 .snarne= '张三'二 内连接查询 内连接最大的特点是只返回两个表中互相匹配的记录,而那些不能匹配的记录就被自动去除了。 1.等值连接 前面几节的内容中,连接规则由等于号(=)组合而成,例如,stl.depart= st2.dcpart,并且列出两个表中所有字段...原创 2020-05-31 19:14:30 · 213 阅读 · 0 评论 -
SQL SERVER(19)连接查询
1 使用无连接规则连接两表 所谓无连接规则连接,就是指连接两表的SELECT语句中不设置任何连接条件,这样得到的连接结果是第一个表中的每一行都会和第二个表中的所有行进行连接,即得到一个笛卡尔积.SELECT * 或字段列表FROM 表名1,表名22 使用有连接规则连接两表 有连接规则连接,其实就是在无连接规则的基础上,加上WHERE子句指定连接规则的连接方法。SELECT *(或字段列表] FROM 表名1,表名2WHERE 连接规则查询名叫“张三”的学生的...原创 2020-05-31 17:19:46 · 219 阅读 · 0 评论 -
SQL SERVER(18)分组查询
1 将表内容按列分组将STUINFO表中的数据,按所属专业字段分组。SELECT STUMAJORFROM STUINFOGROUP BY STUMAJOR2 聚合函数与分组配合使用统计STUINFO表中男生的总人数和女生的总人数。SELECT STUSEX COUNT (*)FROM STUINFOGROUP BY STUSEX统计STUINFO表中每个专业的女生人数。SELECT STUMAJOR,COUNTC(*) AS 女生人数FROM STUINF..原创 2020-05-31 16:57:26 · 598 阅读 · 0 评论 -
SQL SERVER(17)系统函数
1 聚合函数1.SUM函数SELECT SUM (stuage)FROM STUINFO2.AVG函数SELECT AVG(STUAGE)FROM STUINFO;3.MIN函数SELECT MIN (STUAGE)FROM STUINFO;4.MAX函数SELECT MAX (STUAGE)FROM STUINFO;5.COUNT函数SELECT COUNT (STUAGE)FROM STUINFO;2 类型转换函数1.CONVERT()函数把..原创 2020-05-31 15:49:06 · 239 阅读 · 0 评论 -
SQL SERVER(16)高级条件查询
1 AND运算符SELECT *FROM stu_infoWHERE depart='数学'AND sex='女'ORDER BY snoSELECT *FROM stu_infoWHERE 出生日期>='01/01/1975'AND 出生日期<'01/01/1976'AND email IS NULLORDER BY出生日期2.OR运算符SELECT *FROM stru_infoWHERE depa.原创 2020-05-31 10:00:56 · 376 阅读 · 0 评论 -
SQL SERVER(15)排序查询数据
1.按单列排序SELECT sno 学号,sname 姓名,birth 出生日期FROM stu_infoORDER BY 出生日期2.设置排序方向SELECT *FROM courseORDER BY credit DESC3.按多列排序SELECT *FROM courseORDER BY credit DESC, cno4.按字段位置排序SELECT sno 学号,sname 姓名,DATEDIFF(yeart原创 2020-05-31 09:27:06 · 319 阅读 · 0 评论 -
SQL SERVER(14)使用SELECT语句获取满足查询条件的数据
1.WHERE子句用法SELECT *FROM stu_infoWHERE depart='中文系'2.根据条件查询数值数据SELECT *FROM courseWHERE credit=4SELECT cname,cno,creditFROM courseWHERE creciit>2SELECT sname,DATEDIFF(year,birthr GETDATE()) AS 年龄FROM stu_infoWHERE DATEDIFF(year,bir.原创 2020-05-31 09:16:55 · 1852 阅读 · 0 评论 -
SQL SERVER(13)使用简单SELECT语句查询数据
1.查询表中所有数据SELECT *FROM tabla_source2.查询表中指定字段的数据SELECT 字段名FROM table_sourceSELECT snarne,sex,telephoneFROM strLinfo3.查询结果中去除重复信息SELECT DISTINCT departFROM stu_info4.根据现有列值计算新列值SELECT sname,DATEDIFF(year,birth,GETDATE())FROM s.原创 2020-05-31 08:53:44 · 472 阅读 · 1 评论 -
SQL SERVER(12)并发控制
并发访问数据时,如果不加以控制,那么修改的数据将有可能影响到同一时间读取或修改相同数据的其他用户。不加并发控制的数据存储系统,将有可能发生:丢失更新、脏读、不一致的分析和幻像读。 锁定是数据库引擎为了避免数据出现异常,而限制多个用户在同一时间访问相同数据块的一种机制。锁定机制是通过锁(LOCK)来实现的,当对一个数据源加锁后,此数据源就有了一定的访问限制,也就是对此数据源进行了锁定。 在Microsoft SQL Server中,允许一个事务锁定不同类型的资源,包括数据行、表,也有...原创 2020-05-30 16:02:40 · 1402 阅读 · 0 评论 -
SQL SERVER(11)事务
事务在数据库中主要用于保证数据的一致性,防止出现错误数据口在事务内的语句集会被看成一个单元,语句集中一旦有一条失败,那么所有的都会失败。 事务是构成单一逻辑工作单元的操作集合,具有ACID特性,即ATOMIC(原子性)、CONSISTENT(一致性)、ISOLATED(隔离性)、DURABLE(持久性)o事务的这些特性,不仅适用于SQL Server 2008,也适用于其他的数据库,例如Oraclc、MySQL等,只有具备以上4个特点才能称为一个事务。 (1)原子性:事务的原子性是...原创 2020-05-30 14:25:11 · 218 阅读 · 0 评论 -
SQL SERVER(10)约束
使用数据库约束就是保证数据库完整性的方法。数据库设计的完整性实际上就是为了保证数据的正确性,那么为了保证数据正确,在SQL Server当中涉及的完整性主要有三个,即实体完整性、区域完整性、参考完整性。 1.实体完整性 实体完整性针对表中的行数据,要求表中的主键字段都不能为空或者重复的值。例如,每个人的身份证号码都是唯一的,在学校里每个学生的学号是唯一的,银行卡的卡号也是唯一的,等等。 2.区域完整性 区域完整性针对表中的列数据,是保证输入到数据库中的数据是在有效范围...原创 2020-05-30 10:30:08 · 502 阅读 · 0 评论