SQL SERVER(二)

三.插入,更新,删除,添加

3.1insert插入

insert into student(sno,sname,sage)

values('1001'张三','28')

insert into student

values('1001'张三','28','女')

3.2update修改

update student set sno=30,sname='李四'where sage='25'    --修改student表,让sage=25的数据的sno修改为30,sname修改为李四

3.3delete删除

delete student where sno='1002'   --删除学号等于1002的数据

drop table Users    --删除表Users

sletct * from
(select sno,row_number() over(order by sno)as row from student)student
where row between 6 and 10

3.4alter添加

alter table student

add

ssex int null

3.5复杂查询

select sno,sname,avg(sorce)

from student

group by sno,sname

having count(*)>=4    //查询至少修了四门课程的学生学号,姓名以及平均成绩的SQL语句

select distinct [name] from student   //查出student 中不重复的name

select count(distinct name) from student   //查出student  中不重复的name的数量

四.约束

4.1.UNIQUE约束与PK的区别:

一张表只能有一个PK,但可以有多个UNIQUE约束

PK约束定义主键不能为空,但UNIQUE可以为空值

方法:点"管理索引和键"---"添加"---"类型"选择"唯一键"---"列"添加进多个UNIQUE--关闭保存

作用:当那多个unique同时都相同的时候,就会报错,实现了实体的完整性。

4.2check约束

方法:设计---列名右键---"管理check约束"---"添加"---"常规"表达式---写入你要约束的键值的表达式比如:laborage>0 and laborage<=100

---"关闭"保存

作用:约束一个键值,实现域完整性,数据的完整性

sql语句:

creat table T1

(

工资 money not null check(工资 between 2000 and 4000)

)

五.获取当前时间

select year(getdate())   ------//获取当前的年

select month(getdate()) ------//获取当前的月

select day(getdate()) ---------//获取当前的天

select year(birthday) from student   //从student表中获取birthday的年份

select * from employ where month(birthday)=8   // 打印出8月份过生日的员工的所有信息

select * from employ where year(getdate())-year(birthday)>25// year(getdate())为当前年份,打印出年龄大于25岁的员工的所有信息

select dateadd(yy,100,getdate())//当天加上100年的时间,getdate()也可以换成具体的某一天比如写成:'2108/12/31'

select dateadd(mm,1,getdate())//当天加上1个月的时间

select dateadd(dd,100,getdate())//当天加上100天的时间

select datediff(yy,getdate(),'2108/12/31')//当天距离2108/12/31还有多少年

select datediff(mm,getdate(),'2108/12/31')//当天距离2108/12/31还有多少月

六.isnull

select sno,sage,ssex,isnull(smame,'')               //为null的sname用kong显示出来

select title,content,isnull(categoryID,0) from news  //为null的categoryID用0显示出来

七.case行判断

select sno,sname,case

when(sno=1)then '第一'

when(sno=2)then '第二'

end as biecheng

from student

                                                                  SQL SERVER(三)

一.索引

索引分为:聚集索引--------每一个表只能有一个聚集索引一般是主键

非聚集索引-------每一个表可以有多个非聚集索引

注意事项:默认情况下,SQL Server会默认主键为聚集索引,这样会造成资源的浪费。

创建索引:  在“索引/键”对话框中单击“添加”。

从“选定的主/唯一键或索引”列表中选择新索引。

在网格中选择“创建为聚集的”,然后从该属性右侧的下拉列表中选择“是”。保存表时将在数据库中创建索引。

二.存储过程

优点:在创建时进行编译,以后每次执行存储过程不需要再编译,而一般的SQL语句要每执行一次编译一次

所以一些复杂逻辑的SQL建议写在存储过程里面和一些经常被调用到的SQL建议写在存储过程里面

安全性高,可设定只有某些用户才具有指定存储过程的使用权

sql语句:

create proc 存储名

(

@name varchar(200),

@age  int

)

as

select * from Category where [name]=@name and age=@age

查看结果:执行exec 存储名 'xudads',11

更改/删除存储过程:ALTER proc

Drop proc

三.触发器

触发器是一种特殊的存储过程,它是在数据在进行增、删、改的时候同时进行的操作,相当于一个事件。

新建一个触发器:

create trigger 触发器名称

ON  表名

after delete /* 有三种INSERT,DELETE,UPDATE*/

AS

begin

select * from deleted /*在删除后同时查出删除后的内容*/

end

GO

2015-10-20 sql2的更多相关文章

  1. Murano Weekly Meeting 2015.10.20

    Meeting time: 2015.October.20th 1:00~2:00 Chairperson:  Serg Melikyan, PTL from Mirantis Meeting sum ...

  2. Daily Scrumming 2015.10.20(Day 1)

    一.今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 购买服务器,搭建服务器,配置服务器端用户与权限管理 配置ruby与rails环境 配置mysql与数据 ...

  3. First Scrum Meeting (2015/10/18)

    会议是在昨晚进行的,本来早就应该写博了,可惜今天校园网炸个不停= =.刚修好就赶紧来发博客. 会议基本要素 会议主题:爬虫项目的核心技术讨论以及项目初期的工作分配 会议时间:2015.10.18 19 ...

  4. 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换

    [源码下载] 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 作者:webabcd 介 ...

  5. 4分钟apache自带ab压力测试工具使用: 2015.10.4

    2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...

  6. (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html)WebWork深入浅出

    (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html) WebWork深入浅出 本文发表于<开源大本营> 作者:钱安 ...

  7. Scrum会议10.20

    Scrum会议   组名称:好好学习 项目名称:记账本 参会成员:林莉(Master)胡丽娜 汪东涵 宫丽君 时间:2016.10.20 已完成内容: 1.理解项目和代码. 2.讨论新功能. 计划完成 ...

  8. 查询数据库:models.Books.objects.all()[10: 20]与models.Books.objects.filter(id__gt=10, id__lt=20).values() 的区别

    1. models.Books.objects.all()[10: 20] (10:20  之间是冒号,不是逗号.)查出的是 QuerySet对象,如需进行操作,得进一步进行剥皮. 查询代码: 查询结 ...

  9. OSC Source Code Innovation Salon(2018.10.20)

    时间:2018.10.20地点:北京 朝阳 浦项中心B座2层

  10. 第8次Scrum会议(10/20)【欢迎来怼】

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/20 17:20~17:45,总计25min. 地点 ...

随机推荐

  1. C++的初始化成员列表

    class CExample { public: int a; float b; //构造函数初始化列表 CExample(): a(),b(8.8) {} //构造函数内部赋值 CExample() ...

  2. js 执行机制

    浏览器中每个一个窗口都是一个单独的进程.这就需要分析浏览器与Javascript解释引擎之间的关系.先给出结论,浏览器本身是多线程的,Javascript解释引擎是单线程的. 先说说浏览器有哪些线程, ...

  3. word之高级

    1.更正拼写和语法错误. 2.取消自动编号. 3.添加删除水印. 4.段落设置首行缩进2个字符. 需要先选中需要设置的段落 5.文字覆盖. insert键切换插入与改写功能.修改word状态栏上的改写 ...

  4. day07 Python文件操作

    一,文件操作基本流程 #1. 打开文件,得到文件句柄并赋值给一个变量 f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r #2. 通过句柄对文件进行操作 d ...

  5. Linux Shell自动交互/人机交互的三种方法

    如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下. 一.背景 shell脚本在处理自动循环或大的任 ...

  6. Shell 脚本格式注意事项

    if 条件判断格式 if [ ! -f file.txt ];then cmd else cmd fi 注1:! 代表非.不存在文件就成功. 注2:再有参数 变量 需要 [] 阔起 1 运算书写写格式 ...

  7. log4net架构、配置、使用

    架构说明 架构说明 上图是官方文档的提供的代码组织. Log4net的核心组件有: Logger, Appender, Filter, Layout, Object Render, Logger介绍 ...

  8. 5_bash

    bash及其特性:shell:外壳.用户直接接入计算机的时候所使用的外壳程序linux允许一个用户账户登录多次,而这多次登录的每一个打开的shell都是独立的互不相干的shell,它们是三个进程,每一 ...

  9. Javascript中DataGrid表格纵线添加数据

    接之前写的一篇博客http://www.cnblogs.com/Liu30/p/7229641.html,生成一个6*24的表格之后,添加数据 表格数据一般都是按行添加,我所做的这个表格是想添加一天2 ...

  10. oracle 11 g release 2 卸载

    Win 10 系统,Oracle 11 g R 2 ,安装目录C盘根目录 1.停止Oracle的所有服务 打开“服务”窗口,关闭Oracle的所有服务 2.运行Oracle Universal Ins ...