05 2019 档案

摘要:第一范式 第一范式的目标是确保每列的原子性 如果每列都是不可再分的最小数据单元(也程为最小的原子单元),则满足第一范式 第二范式 第二范式要求每个表只描述一件事情 第三范式 如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式 阅读全文
posted @ 2019-05-29 22:37 我是神奇的小白 阅读(186) 评论(0) 推荐(0) 编辑
摘要:E-R图:实体关系图的绘制 阅读全文
posted @ 2019-05-29 22:24 我是神奇的小白 阅读(615) 评论(0) 推荐(0) 编辑
摘要:数据库设计的步骤 需求分析:分析客户的业务和数据处理需求 概要设计:绘制数据库的E-R图,用于在项目团队内部设计人员和客户之间进行沟通,确认需求信息的正确性和完整性。 详细设计:将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据库设计的三大范式进行审核 代码编写:选择具体的数据库,s 阅读全文
posted @ 2019-05-29 22:00 我是神奇的小白 阅读(344) 评论(0) 推荐(0) 编辑
摘要:创建和使用存储过程的注意事项 注意事项 1,有多个参数时,有默认值的参数放在存储过程参数列表的最后 2,在创建存储过程的代码结束时,要加上批处理go,如果不加go,那么调用存储过程的语句将被包含在创建存储过程的代码中, 造成存储过程被递归调用 3,在调用带多个参数的存储过程的时候,要求按照存储过程的 阅读全文
posted @ 2019-05-29 21:37 我是神奇的小白 阅读(932) 评论(0) 推荐(0) 编辑
摘要:使用return关键字进行返回 遇到return关键字存储过程中的后续代码无条件不执行,既退出了当前的存储过程 根据返回值对存储过程的结果做出相应的处理 例子: 阅读全文
posted @ 2019-05-29 21:14 我是神奇的小白 阅读(8982) 评论(0) 推荐(0) 编辑
摘要:创建带输出参数的存储过程 语法: create proc 存储过程名 @参数1 数据类型=默认值 output, @参数2 数据类型=默认值 output as sql语句 go 例子: 阅读全文
posted @ 2019-05-29 20:39 我是神奇的小白 阅读(7481) 评论(0) 推荐(0) 编辑
摘要:创建带输入参数的存储过程 语法 create proc[edure] 存储过程名 @参数1 数据类型=默认值, …… @参数n 数据类型=默认值 as sql语句 go --必须要加批处理的go 例子: 阅读全文
posted @ 2019-05-28 22:59 我是神奇的小白 阅读(1951) 评论(0) 推荐(0) 编辑
摘要:不带存储的存储过程的语法 create proc[edure] 存储过程名 as sql语句 go --必须要加批处理的go 例子: 阅读全文
posted @ 2019-05-28 22:22 我是神奇的小白 阅读(2756) 评论(0) 推荐(0) 编辑
摘要:存储过程的分类及调用 存储过程的分类 1,系统存储过程 用来管理sql server 和显示有关数据库和用户信息的存储过程sp_开头,存放在master数据库中 2,扩展存储过程: 使用其他编程语言创建外部存储过程,并将这个存储过程在sql_server中作为存储过程来使用。xp_开头 3,自定义存 阅读全文
posted @ 2019-05-28 21:59 我是神奇的小白 阅读(854) 评论(0) 推荐(0) 编辑
摘要:存储过程 预编译sql语句的集合 代替了传统的逐条执行SQL语句的方式 可包含查询,插入,删除,更新等操作的一系列SQL语句 存储在SQL server中 通过名称和参数执行 可带参数,也可返回结果 可包含数据操纵语句,变量,逻辑控制语句 存储过程的优点 1,执行速度快 因为存储过程在创建时已经被编 阅读全文
posted @ 2019-05-28 21:37 我是神奇的小白 阅读(353) 评论(0) 推荐(0) 编辑
摘要:为什么需要重新生成和组织索引 对基础数据执行插入,更新或删除操作,SQL server 数据库引擎都会自动维护索引。但是时间长了,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。碎片非常多的索引可能会降低查询功能,导致应用程序响应缓慢。 重新生成和组织索引的步骤 1,检测碎片 一般碎片比例 阅读全文
posted @ 2019-05-28 21:11 我是神奇的小白 阅读(655) 评论(0) 推荐(0) 编辑
摘要:查看索引的方式 1,使用ssms查看索引 2,使用系统存储过程查看索引 exec_sp_helpindex 表名 3,使用视图查看索引 use 当前所使用的数据库 select * from sysindexes where name='索引名' 阅读全文
posted @ 2019-05-28 20:59 我是神奇的小白 阅读(575) 评论(0) 推荐(0) 编辑
摘要:索引:是SQL编排数据的内部方法 为SQL SERVER提供了一种方法来编排查询数据 索引分类: 聚集索引:正文内容本身就是一种按照一定规则排列的目录称为“聚集索引” 非聚集索引:目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。 作用:大大提高数据的检索速度。改善数据库性能 建立索引的一 阅读全文
posted @ 2019-05-23 22:37 我是神奇的小白 阅读(386) 评论(0) 推荐(0) 编辑
摘要:使用视图的优点 1,视图着重于特定数据 2,简化数据的操作,易维护 使用视图的缺点 1,操作视图会比直接操作基础表要慢 2,修改限制 使用视图的注意事项 1,视图定义中的select语句不能包含下列内容 order by子句,除非在select语句的选择列中也有一个top子句 一个top子句 int 阅读全文
posted @ 2019-05-23 21:52 我是神奇的小白 阅读(6020) 评论(0) 推荐(0) 编辑
摘要:视图是保存在数据库中的select查询,是一张虚拟表能够从多个表中提取数据,并以单个表的形式展现数据。 视图中不存放数据 数据存放在视图所引用的原始表中 一个原始表,根据不同用户的不同需求,可以创建N多个不同的视图 查询与视图有哪些异同点 不同点: 存储上:视图存储在数据库中,查询以sql文件形式保 阅读全文
posted @ 2019-05-23 21:16 我是神奇的小白 阅读(539) 评论(0) 推荐(0) 编辑
摘要:事务的分类 1,串行方式,(一个接一个的去执行事务),缺点系统资源的利用率比较低,对用户的响应比较慢 2,并发方式,(1,单处理机情况,多个事务交叉轮流执行,2,多处理机情况,多个事务在多个处理机上同时执行事务) 事务并发所产生的问题 1,数据丢失更新:两个事务同时一组数据项更新,导致后面的更新覆盖 阅读全文
posted @ 2019-05-18 11:29 我是神奇的小白 阅读(154) 评论(0) 推荐(0) 编辑
摘要:全局变量@@trancount 返回当前连接的活动事务数 显示事务 用begin transaction明确指定事务的开始 最常用的事务类型 隐性事务 通过设置set implicit_transactions on语句,将隐性事务模式设置为打开】 其后的T_SQL语句自动启动一个新事物 提交或回滚 阅读全文
posted @ 2019-05-16 22:26 我是神奇的小白 阅读(371) 评论(0) 推荐(0) 编辑
摘要:开始事务 begin transaction 提交事务 commit transaction 回滚(撤销)事务 rollback transaction 一旦事务提交或回滚,则事务结束 操作步骤: 【1】begin tran 【2】声明变量用于累加错误号,错误号使用全局变量@@error 【3】为【 阅读全文
posted @ 2019-05-16 22:01 我是神奇的小白 阅读(1093) 评论(0) 推荐(0) 编辑
摘要:事务是作为单个逻辑工作单元执行的一系列操作 多个操作作为一个整体向系统提交,要么都执行,要么都不执行 事务是一个不可分割的工作逻辑单元 事务的特性 1,原子性 事务是一个完整的操作,事务的各步骤操作是不可分的(原子的);要么都执行,要么都不执行 2,一致性 当事务完成时,数据必须处于一致状态 3,隔 阅读全文
posted @ 2019-05-16 21:29 我是神奇的小白 阅读(1765) 评论(0) 推荐(0) 编辑
摘要:declare @i int, @j int , @str varchar(100)set @i=0set @j=0print '***************************九九乘法表****************************'while(@i<=9) --行数 begin 阅读全文
posted @ 2019-05-16 21:05 我是神奇的小白 阅读(285) 评论(0) 推荐(0) 编辑
摘要:continue: 可以让程序跳过continue关键字之后的语句,回到while循环的第一行命令 break: 让程序完全跳出循环,结束while循环的执行 return:从查询或过程中无条件退出。return语句可以在任何使用用于从过程, 批处理或语句块中退出,位于rerurn之后的语句不会被执 阅读全文
posted @ 2019-05-16 20:38 我是神奇的小白 阅读(184) 评论(0) 推荐(0) 编辑
摘要:where 循环语句可以根据某些条件重复执行一条T-SQL语句或一个语句块。 语法 where(条件) begin 语句或语句块 end 程序调试:alt + F5其他调试 F9切换断点 F10逐过程 F11逐语句 例子: --使用循环求1-10之间的累加和declare @sum int, @i 阅读全文
posted @ 2019-05-16 20:12 我是神奇的小白 阅读(191) 评论(0) 推荐(0) 编辑
摘要:语法: case when 条件1 then 结果1 when 条件2 then 结果2 。。。 else 其他结果 end 执行顺序 条件1成立执行结果1 条件2成立执行结果2 如果所有的when中的条件都不成立,则执行else中的结果 说明:else可省略,如果省略else并且when的条件表达 阅读全文
posted @ 2019-05-15 22:34 我是神奇的小白 阅读(250) 评论(0) 推荐(0) 编辑
摘要:语法 if(条件) begin 语句或语句块1 end [else begin 语句或语句块2 end ] 特点 1,else并不一定是必须的 2,如果条件为真,将执行语句或语句块1,条件为假则执行语句或语句块2,无论哪种情况,最后都要执行if....else语句的下一条语句 3,if else可以 阅读全文
posted @ 2019-05-15 22:07 我是神奇的小白 阅读(467) 评论(0) 推荐(0) 编辑
摘要:流程控制语句:是用来控制程序执行流程的语句 常用的流程控制语句的分类 顺序结构:begin....end 分支结构:if....else 或case.....end 循环结构while 顺序结构 语法: begin 语句块 end 特点: 1,必须成对出现 2,通常与分支结构和循环结构一起使用 3, 阅读全文
posted @ 2019-05-15 21:39 我是神奇的小白 阅读(2277) 评论(0) 推荐(0) 编辑
摘要:分类: 隐式转换:为了类型相兼发生的自动转换 显示转换:可以使用convert函数或cast函数 cast与convert函数类型转换的异同点 相同点: 用于将某数据类型的表达式转换为另一种数据类型的表达式 不同点: 在转换日期时间类型/浮点类型的数据转换为字符串时convert()可以通过第三个参 阅读全文
posted @ 2019-05-15 21:18 我是神奇的小白 阅读(175) 评论(0) 推荐(0) 编辑
摘要:全局变量 是系统已经定义好的变量,主要反映sql数据库的操作状态。 全局变量名称以@@开头‘ 举例 @@identity:返回最后插入的标识值 @@error:返回执行的上一个T_sql语句的错误号 常用的输出语句 print:结果有消息中以文的形式显示 select:在结果中以网格的形式显示,查询 阅读全文
posted @ 2019-05-15 20:59 我是神奇的小白 阅读(363) 评论(0) 推荐(0) 编辑
摘要:变量:指的是在程序过程中值可以发生变化的量,可以存贮数据值的对象,能够向SQL语句传递数据 变量的分类: 全局变量:系统定义和维护,可以直接使用以@@开头 局部变量:由操作者定义,以@开头,使用关键字declare声明 特点:先声明再赋值 作用域:只在定义它的批处理或过程中可见 局部变量的作用:在上 阅读全文
posted @ 2019-05-15 08:57 我是神奇的小白 阅读(196) 评论(0) 推荐(0) 编辑
摘要:任何允许适用表达式的地方都可以适用子查询 嵌套在select语句中的子查询 语法:select(子查询)from表名 嵌套在from语句中的子查询 语法:select...from (子查询) as 表的别名 例子 use E_Marketgo--[1]子查询作为列值来使用select * from 阅读全文
posted @ 2019-05-13 23:22 我是神奇的小白 阅读(962) 评论(0) 推荐(0) 编辑
摘要:use E_Marketgo--[1]>all父查询的列的值必须大于子查询返回的值列表中的每一个值select * from table2 where n > all ( select n from table1) --返回结果为4--table2(1,2,3,4)--table1(2,3) --[ 阅读全文
posted @ 2019-05-13 22:47 我是神奇的小白 阅读(192) 评论(0) 推荐(0) 编辑
摘要:exists: 只注重子查询是否有返回行,如查有返回行结果为真,否则为假,并不适用子查询的结果,仅使用测试子查询是否有返回结果 语法: if exists (子查询) begin --如果有多条语句时需要适用begin end 语句如果只有一条语句时begin end可以省略 语句块 end 例子: 阅读全文
posted @ 2019-05-13 20:38 我是神奇的小白 阅读(3363) 评论(0) 推荐(0) 编辑
摘要:--【1】随机数rand(),如果指定了随机种子那么返回的随机数都相同,--如果没有指定种子那么系统自动分配,所以每次的返回值都不相同select rand(100)select rand()select rand(100)select rand() --【2】ceiling:英文意思是天花板,正数 阅读全文
posted @ 2019-05-11 16:38 我是神奇的小白 阅读(281) 评论(0) 推荐(0) 编辑
摘要:--【1】获得当前系统时间select getdate()--[2]dateadd()将制定Number时间间隔(有符号整数)与指定date的指定datepart相加后,返回该date 参数1,指定的日期部分,参数2,整数值,参数3,有效的日期格式select dateadd(mm,1,getdat 阅读全文
posted @ 2019-05-11 15:34 我是神奇的小白 阅读(169) 评论(0) 推荐(0) 编辑
摘要:--[1]charindex:在一个字符串当中查找另一个字符串,如果找到返回找到的位置,如果没有找到返回的是0--两个参数,不指定开始位置,默认从1开始select CHARINDEX('自学网','我要自学网') --三个参数,第一个是需要查找的,第二个是源字符串,第三个是从哪个位置开始查找sel 阅读全文
posted @ 2019-05-11 14:59 我是神奇的小白 阅读(340) 评论(0) 推荐(0) 编辑
摘要:一,在查询的结果集中使用别名的三种方式 1,使用as关键字来改变结果集中的别名 2,使用赋值运算符“=”来改变结果集中的别名,赋值的顺序是从右向左进行赋值的 例子 select 用户名=UserId, 付款方式=PayWay, 付款金额=PayMoney from OrderId; --把列User 阅读全文
posted @ 2019-05-11 11:43 我是神奇的小白 阅读(131) 评论(0) 推荐(0) 编辑
摘要:批处理是指从应用程序一次性地发送一组完整SQL语句到SQL Server上执行 批处理的所有语句被当作一个整体,被成批地分析,编译和执行 所有的批处理指令以go作为结束标志 go的特点 go语句必须自成一行,只有注释可以在同一行上 每个批处理单独发送到服务器 go语句不是T-SQL命令 --批处理的 阅读全文
posted @ 2019-05-11 11:00 我是神奇的小白 阅读(654) 评论(0) 推荐(0) 编辑
摘要:添加约束 公式 1,主键约束 alter table <表名> add constraint PK_列名 primary for (列名) 2, 外键约束 alter table <表名> add constraint FK_列名 foreign key (外键列名)reference <连接的表名 阅读全文
posted @ 2019-05-09 19:19 我是神奇的小白 阅读(588) 评论(0) 推荐(0) 编辑
摘要:一,Sql—表格的建立,删除,数据的建立与删除 Sql表格的建立公式 If exists (select * from sysobjects where <表名> Drop table <表名> Create table <表名> (<列名1> <数据类型> <约束类型> <是否为空>, <列名2> 阅读全文
posted @ 2019-05-09 18:53 我是神奇的小白 阅读(453) 评论(0) 推荐(0) 编辑
摘要:一 SQL数据类型 1、 文本数据类型,char和varchar :汉字点两个字符,英文、数字或字符占一个字节,nchar和nvarchar:无论是汉字还是英文,数字或字符都占一个字符。 2、 固定长度与非固定长度,固定长度可以用char或nchar,非固定长度使用varchar或nvarchar, 阅读全文
posted @ 2019-05-09 16:35 我是神奇的小白 阅读(2077) 评论(0) 推荐(0) 编辑
摘要:删除数据语法 delete [from] 表名 [where <删除条件>] truncate table 表名 truncate 注意事项 1,表结构,列,约束等不被改动 2,不用用于有外键约束的表 3,标识列重新来时编号 例子 use E_Marketgo--删除的语法,使用delete进行删除 阅读全文
posted @ 2019-05-08 22:54 我是神奇的小白 阅读(6182) 评论(0) 推荐(0) 编辑
摘要:一,修改数据语法 update 表名 set 列名 = 更新值 [where 更新条件] 二,删除数据语法 delete [from] 表名 [where <删除条件>] truncate table 表名 truncate 注意事项 1,表结构,列,约束等不被改动 2,不用用于有外键约束的表 3, 阅读全文
posted @ 2019-05-08 22:23 我是神奇的小白 阅读(282) 评论(0) 推荐(0) 编辑
摘要:一,通过将现有表当中的数据添加到已存在的表中 insert into <表名>(列明) select <列名> from <源表名> 例子 --将UserInfo中的数据添加到一个已存在的表中,UserAddress--要求这个新表必须存在,需要新建一张表而且表中的列的个数顺序,数据类型必须与Use 阅读全文
posted @ 2019-05-08 22:02 我是神奇的小白 阅读(5065) 评论(0) 推荐(0) 编辑
摘要:语法: insert [into] 表名 [(列名)] values (值列表) 其中[]中的元素是可以省略的 添加数据的顺序是先向主表添加顺序再向子表添加数据 注意事项 1,每次插入一行数据,不能只插入半行或者几列数据 2,每个数据值的数据类型,精度和小数位数必须与相应的列匹配 3,不能为标识列指 阅读全文
posted @ 2019-05-06 22:09 我是神奇的小白 阅读(784) 评论(0) 推荐(0) 编辑
摘要:向表中添加数据的注意事项 1,先向主表中添加数据,然后再向子表中添加数据 2,标识列不需要手动添加数据 删除数据的注意事项 1,先删除子表中的数据,然后再删除主表中的数据 阅读全文
posted @ 2019-05-06 21:25 我是神奇的小白 阅读(4141) 评论(0) 推荐(0) 编辑
摘要:sql 运算符 算术运算符: +,1,* ,/, % 赋值运算符: = 逻辑运算符: and, or , not 比较运算符: >, <, <=, >=, =, !=(非SQL92标准) 连接运算符:“+” 运算符的优先级 ()>算术运算符 > 比较运算符 > 逻辑运算符 > 连接运算符 > 大于赋 阅读全文
posted @ 2019-05-06 21:02 我是神奇的小白 阅读(295) 评论(0) 推荐(0) 编辑
摘要:再视图下删除表格 1,删除表的顺序——先删除子表再删除主表 使用sql语句删除表格 例子 use E_Marketgodrop table CommodityInfo 如何检测要删除的表是否存在 阅读全文
posted @ 2019-05-06 20:30 我是神奇的小白 阅读(1316) 评论(0) 推荐(0) 编辑
摘要:--数据库关系图可以非常清楚的查看到表之间的引用关系 --建立引用关系(从主表的主键向子表的引用建拖动) --与在设计状态下建立主外键关系的区别是在设计状态下建立的引用关系是从子表向主表建立关系,数据库关系图是用主表向子表建立引用关系 阅读全文
posted @ 2019-05-06 19:49 我是神奇的小白 阅读(1683) 评论(0) 推荐(0) 编辑