SQL

如果想让局域网的人连你的数据库 开启tcp/ip 并关闭防火墙。 默认端口号是1433

--单行注释 /**/多上注释

外键 添加外键的表是外键表 外键所在的表是主表

脚本创建数据库 表

select * from sysdatabases

drop database dbtest
create database dbtest
on primary
(
    name='dbtest',
    filename='C:\Users\qing\Desktop\dbtest.mdf',
    size=10mb,
    filegrowth=10mb
)
log on
(
    name='dbtest_log',
    filename='C:\Users\qing\Desktop\dbtest_log.ldf',
    size=5mb,
    filegrowth=10%
)


use dbtest

create table ClassInfo
(
    cId int not null primary key identity(1,1),
    cTitle nvarchar(10)
)

create table StudentInfo
(
    sId int not null primary key identity(1,1),
    sName nvarchar(10) not null,
    sGender bit default(0),
    sBirthday date,
    sPhone char(11),
    sEMail varchar(20),
    cid int not null,
    foreign key(cid) references ClassInfo(cid)
)

 

select sgender,cid,COUNT(*) as PersonCount
from StudentInfo
group by sGender,cid having COUNT(*)<4  //在分组之后再进行筛选 用having 此时还没有统计列 所以还是用聚合函数
order by PersonCount,cid

inner join 左右表完全匹配的数据

left inner join 左右表完全匹配的数据 + 左表特有的

right inner join 左右表完全匹配的数据 + 右表特有的

full inner join 左右表完全匹配的数据 + 左表特有的 + 右表特有的

over:

select *,sum(销售数量) over from myOrders则不会报错,并且在最后一列显示求和结果

从其他的多张表中读取数据添加到新表中   

INSERT INTO tableName(col1,col2,col3)   

SELECT a,b,c FROM tableA WHERE a=1   

UNION ALL  

SELECT a,b,c FROM tableB WHERE a=2  

union all如果换成union,则相同记录只插入一次,不会重复插入。

 

完成数据的行列转换:

行转列

合并姓名相同的

声明:declare @UserName nvarchar(50)

赋值1set @UserName=N'':修改

赋值2select @UserName=N'':修改

输出:print @UserName  select @UserName

select @UserName+N'',这时@UserName仍然是‘杨’,这句代码执行后显示‘杨中’

区别:赋值时,setselect更严谨些

变量是有作用域的

在查询语句的select后面,可以进行选择判断的逻辑

语法1:判等

Case 列名

When … then …

When … then …

Else …

End as 列别名

语法2:判不等

Case

When 包含列名的逻辑表达式 then …

When … then …

else …

End as 列别名

if 条件

 begin

...

end

else

begin

 ...

end

 

视图:就是一个select语句,写起来比较复杂,多次被使用,则可以将这个select语句存放到一个视图中

创建语法:

create view 名称

as

查询语句

好处:使用方便,安全(看不到表的名称、结构等信息)

使用:主要用于查询,与查询表的语法一样

查看视图的代码:exec sp_helptext 视图名称

可以基于视图再创建视图

建议:不要在视图中使用order by子句

集合的结果集被当作一个集合使用,所以是不应该有顺序的

如果加入了top n则可以使用,这样返回的又是一个n项的无序集合,虽然看上去是有顺序的

 

begin try

..

end try

begin catch

...

end catch

尽量少使用,会影响结果,可以通过@@error来查看上一条语句是否发生了错误

 

全局变量:@@***

这些变量由系统维护,不需要我们管理,用于查看信息

@@version:查看版本信息

@@identity:查看当前的标识

@@servername:查看服务器名称

@@error:返回最后执行的一句代码的错误编号,如果没有出错返回0;如果被go中断,就不能用

@@rownumber:查看最后执行的一句代码的影响行数

 

事物:

存储过程:

就是一个函数,用于存储一段处理代码

好处:

完成代码的封装,实现代码重用;

安全

方便应用程序与数据库间通信,不用传大量sql语句过程,而只用传一个存储过程名称过来,简单方便

系统存储过程(在界面中打开看一看)

自定义存储过程

create proc usp_test1

参数列表

as

自定义代码段

调用执行:exec 存储过程名称

查看存储过程代码:exec sp_helptext 存储过程名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值