第一章数据库的基本操作:

1>创建数据库:

create database my_db(逻辑名称)

on primary

(

  name='my_db.mdf',(物理名称)

  filename='F:\exercise\my_db.mdf',

  size=5mb,

  maxsize=50mb,

  filegrowth=10%

)

2> 改变数据库的容量:

alter database my_db

modify file

(

  name='my_db',

  size=15mb

 )

3>收缩数据库:

       Dbcc shrinkdatabase(‘my_db’,1)

1为收缩比

4>更改数据库名称:

       exec sp_renamedb 'my_db' ,'my_db1'

5>删除数据库:

    drop database my_db1

第二章表的基本操作:

1>创建表:

Create table my_ta

(

    学号 int primary key identity,

    名称 char(6) not null,

    专业方向 varchar(10) not null,

    系部代码 char(2) not null,

    备注 varchar(50)

)

2>用存储过程查看表的信息:

Exec sp_help my_ta

3>修改表的列名:

       exec sp_rename 'my_ta.[my_ta.其他]','其他'

4>增加表的列:

       alter table my_ta add home varchar(100) not null

5>修改表的数据类型:

    alter table my_ta alter column home varchar(80)

6>删除表的列:

    alter table my_ta drop column home

7>删除表中的所有数据:

       Truncate table my_ta

8>删除表:

         Drop table my_ta

9>将一个表中数据查出插入到另外一个表中:

select * into t11 from t1

第三章数据的完整性:

1>主键和外键,创建主键和外键:

alter table t1

 add constraint pk

 primary key clustered(name)

 alter table t2

 add constraint fk

 foreign key(name)

 references t1(name)

2>创建唯一约束:

alter table t1

add constraint uq

unique nonclustered (name)

3>创建check约束:

alter table t1

add constraint ch

check(age>10 and age<100)

4>默认约束 :

alter table t1

add constraint de

default '这是默认可以不填' for 其他

5>删除约束:

Alter table t1 drop constraint de

6>创建规则:

创建规则:

create rule ru

as

@a>300 and @a<600

绑定规则:

execute sp_bindrule 'ru','t1.age'

解除规则绑定 :

execute sp_unbindrule 't1.age'

删除规则:

Drop rule ru

7>创建默认:

Create default def

As ‘男’

绑定默认:

execute sp_bindefault 'def' ,'t1.gendar'

解除默认的绑定

Execute sp_unbindefault 'def' ,'t1.gendar'

删除绑定:

drop default def 必须先解除绑定才能删除 

第四章 索引

1>创建索引

--create [unique][clustered][nonclustered] index 索引名

--on 表名(列名)

create clustered index ind

on t1(name)

2>查看索引信息:

exec sp_helpindex t1

3>删除索引

drop index t1.ind

第五章 视图

1>创建视图

create view v1 

with[encryption][schemabinding]可选

as

select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称

from 学生

join 班级 on 学生.班级代码=班级.班级代码

join 专业 on 班级.专业代码=专业.专业代码

join 系部 on 专业.系部代码=系部.系部代码

create view v1 

with encryption 加密视图

as

select name ,age t1

create view v1 

with schemabinding 架构绑定 可选

as

select name ,age from dbo.t1

2>可以在视图上进行增删改操作

3>查看视图的信息:

Exec sp_helptext 视图名

4>删除视图

Drop view 视图名

第五章 存储过程

1>创建存储过程

create proc p 

as

select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称

from 学生

join 班级 on 学生.班级代码=班级.班级代码

join 专业 on 班级.专业代码=专业.专业代码

join 系部 on 专业.系部代码=系部.系部代码

create proc p3

@sex varchar(10),

@id varchar(10)

as

select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称

from 学生

join 班级 on 学生.班级代码=班级.班级代码 and 学生.性别=@sex

join 专业 on 班级.专业代码=专业.专业代码

join 系部 on 专业.系部代码=系部.系部代码 and 系部.系部代码=@id

2>执行存储过程

Execute p

execute p3 '男',''

3>变量

create proc p4

@name varchar(10),

@getnum varchar(10) output

as

select @getnum=学号 from 学生 where 姓名=@name

execute p4  '刘德华' ,''在这里会输出参数

4>查看存储过程的信息

execute sp_helptext p4

execute sp_depends p4

execute sp_help p4

5>删除存储过程

Drop procedure p4

第六章触发器

1>创建触发器

create trigger myinsert

on 产品

for insert

as

declare @a char(10)

select @a=产品编号 from  inserted

insert into 产品销售 values(@a,0)

insert into 产品 values(007,'萝卜')

当我们执行在产品中插入数据的时候,那会就会级联得对产品销售中插入数据,这是同时的。

create trigger tr1

on  产品

for delete

as

declare @产品编号 varchar(10)

select @产品编号=产品编号 from deleted

delete from 产品销售 where 产品编号=@产品编号

2>查看触发器

execute sp_helptrigger 产品

3>删除触发器

delete from 产品 where 产品编号=''

第七章函数

1> 1、聚合函数

    AVG ()--平均值

    COUNT ()--返回行中项目的数量 

    MAX ()--最大值

    MIN ()--最小值

    SUM ()--求和 

2、数学函数

    ABS (x)--返回绝对值

    CEILING(x)--返回大于或等于所给数字的最小整数

    PI ()--pi值

    POWER (x,y)--返回x的y次方

    RAND ()--返回~1之间的随机数 

3、 配置函数

    SELECT @@VERSION --获取当前数据库版本

    SELECT @@LANGUAGE --当前语言

4、时间函数

select getdate()   --当前时间

select day(getdate())   --取出天

select month(getdate())   --取出月

select year(getdate())   --取出年

select dateadd(d,3,getdate()) as wawa_dateadd --加三天,       ‘d’表示天,‘m’表示月,‘yy’表示年

select datename(d,'2010-07-15')   --取出时间的某一部分

Year Yy yyyy 年 1753 ~ 9999 

Quarter Qq q 季 1 ~ 4 

Month Mm m 月1 ~ 12 

Day of year Dy y 一年的日数,一年中的第几日 1-366 

Day Dd d 日,1-31 

Weekday Dw w 一周的日数,一周中的第几日 1-7 

Week Wk ww 周,一年中的第几周 0 ~ 51 

Hour Hh h 时0 ~ 23 

Minute Mi n 分钟0 ~ 59 

Second Ss s 秒 0 ~ 59 

Millisecond Ms - 毫秒 0 ~ 999 

5、字符串函数

Select LEN('str1111')--返回字符串的字符个数

Select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') --转换大小写

select ltrim('           左边没有空格')   --去空格

select rtrim('右边没有空格    ') --去空格

select ltrim(rtrim('    左右都没有空格    ')) --去空格

select left('sql server',3),right('sql server',6) --取左或者取右

Select replace('原字符串','原','这是一个')--字符串替换

Select replicate('go',5)--指定的次数重复字符

select reverse('这是字符串') --将定字符串返序排列

select substring('这是一个原字符串',2,3)--指定截取指字字符串 

6、排名函数

rank()返回结果集的分区内每行的排名 

rank() over (order by 列名)

select 姓名,rank() over(order by(高考分数) desc) 名次,高考分数 from 学生

--------------------------------------------------------------------------------------------

SELECT TOP(2) majoy,COUNT(*) AS 人数 FROM stuclass GROUP BY majoy ORDER BY 人数  ASC

SQL Server 笔记的更多相关文章

  1. SQL Server笔记

    SQL Server所能读取的最小单位是页,每个页8KB,8个物理上连续的页就是一个区,这样数据库中每MB就包含有16个区 堆是没有聚集索引的表.如果表格上没有聚集索引,数据行将不按任何特殊顺序存储, ...

  2. SQL Server笔记-语法

    1.USE <DatabaseName> //选择数据库 例:USE [master] //master是系统默认数据库 2.字段或表名与保留字或关键字重名时需要加. 3.COMPATIB ...

  3. SQL Server笔记——sql语句创建数据库

    MS SQLServer的每个数据库包含: 1个主数据文件(.mdf)必须. 1个事务日志文件(.ldf)必须. 可以包含: 任意多个次要数据文件(.ndf) 多个事务日志文件 CREATE DATA ...

  4. sql server 笔记(数据类型/新建、修改、删除数据表/)

    1.数据类型: Character 字符串 / Unicode 字符串 / Binary 类型 / Number 类型  /  Date 类型  / 其他数据类型 详解:http://www.w3sc ...

  5. sql server 笔记1--case、WAITFOR、TRY CATCH

    一.case 转自:http://blog.csdn.net/add8849/article/details/576424 深入使用:http://blog.csdn.net/akuoma/artic ...

  6. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  7. SQL Server 2012 数据库笔记

    慕课网 首页 实战 路径 猿问 手记     Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...

  8. SQL SERVER 数据库表同步复制 笔记

    SQL SERVER 数据库表同步复制 笔记 同步复制可运行在不同版本的SQL Server服务之间 环境模拟需要两台数据库192.168.1.1(发布),192.168.1.10(订阅) 1.在发布 ...

  9. .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)

    原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数 ...

随机推荐

  1. eclipse生成可执行jar包(引入第三方.jar文件)

    1. eclipse建立普通的java project项目(项目名aa) 2. 项目正常组织通过buildpath加载各种jar包入项目aa比如例子项目里,加入了spring 各种jar包加入各种配置 ...

  2. 【Andorid开发框架学习】之Mina开发之Mina简介

    今天我将介绍 Apache MINA的基本概念和 API,包括 I/O服务.I/O 会话.I/O 过滤器和 I/O 处理器. 一.MINA的简介 Apache MINA是一个网络应用程序框架,用来帮助 ...

  3. codeforces 877b

    B. Nikita and string time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  4. shell 命令 grep -v

    grep -v shell命令中,grep命令,是对文本行的搜索命令.grep -v就是反向文本行搜索. 当控制台输出很多时,有很多是我们不想看到的,就可以用到grep -v命令 举个栗子:ls -l ...

  5. 从头文件中学习sfr和sbit

    1.reg52.h 头文件,它定义了单片机的一些端口物理地址. #ifndef __REG52_H__ #define __REG52_H__ /* BYTE Registers */ sfr P0 ...

  6. ASP.NET Core2利用MassTransit集成RabbitMQ

    在ASP.NET Core上利用MassTransit来集成使用RabbitMQ真的很简单,代码也很简洁.近期因为项目需要,我便在这基础上再次进行了封装,抽成了公共方法,使得使用RabbitMQ的调用 ...

  7. 「PKUSC2018」真实排名(排列组合,数学)

    前言 为什么随机跳题会跳到这种题目啊? Solution 我们发现可以把这个东西分情况讨论: 1.这个点没有加倍 这一段相同的可以看成一个点,然后后面的都可以. 这一段看成一个点,然后前面的不能对他造 ...

  8. java多线程面试题整理及答案(2018年)

    1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速.比如,如果一个线程完 ...

  9. 域名直接访问应用程序-不加端口号&不加路径名

    当访问域名的时候,端口默认指定的是80: 而80端口在Linux系统下,1024之前的端口是只有root用户才能使用的, 因此将,系统层面将端口80 映射到8080, iptables -t nat ...

  10. VS 插件 Productivity Power Tools - 更改 选项卡组件位置

    Visual Studio 2013怎么把选项卡设置在左侧显示?vs中选项卡默认显示在顶部,但是更习惯显示在左侧,该怎么设置呢?为了更方便使用,下面分享VS2013选项卡设置在左侧显示的图文教程 Vi ...