创建示例数据库

USE master;

GO

IF DB_ID (N'mytest') IS NOT NULL

DROP DATABASE mytest;

GO

CREATE DATABASE mytest;

GO

USE mytest;

GO

IF OBJECT_ID(N'dbo.Orders') IS NOT NULL

DROP TABLE dbo.Orders;

GO

CREATE TABLE dbo.Orders

(

ProductID INT NOT NULL,

MadeFrom CHAR(20),

Sales MONEY NOT NULL

);

删除数据库

use master -- 设置当前数据库为master,以便访问sysdatabases表

go

if exists(select * from sysdatabases where name='stuDB')

drop database stuDB

go

或者

IF DB_ID (N'mytest') IS NOT NULL

DROP DATABASE mytest;

创建数据表

标准语法

CREATE TABLE table_name(

column1 datatype,

column2 datatype,

column3 datatype,

.....

columnN datatype,

PRIMARY KEY( one or more columns )

);

示例

CREATE TABLE CUSTOMERS(

ID  INT              NOT NULL,

NAME VARCHAR (20)    NOT NULL,

AGE  INT              NOT NULL,

ADDRESS  CHAR (25) ,

SALARY  DECIMAL (18, 2),

PRIMARY KEY (ID)

);

删除表包含结构

Drop table tablename

视图

create view  视图名字

as

查询代码

demo:

create view  view_user

as

select id from user

go

/*以上为创建一个视图,视图里面存储的是user表的ID列*/

/*删除视图*/

if exusts(select * from sysobjects where name='视图名字')/*如果数据库中存在这个视图,就删除该视图,查不查询随便你*/

drop view 视图名字  /*执行删除视图语法*/

复制代码

视图注意事项:注意事项:

1.一个视图可以嵌套另一个视图,但最后不要超过3层

2.视图定义中的select语句不能包括下列内容

*order by排序子句,除非在select语句中带有一个top子句

*into关键字

*引用临时表或表变量

存储过程

存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

存储过程的好处:

1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。

2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。

3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

示例:

复制代码

--查询存储过程

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_COUNT', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_COUNT;

GO

CREATE procedure PROC_SELECT_STUDENTS_COUNT

AS

SELECT COUNT(ID) FROM Students

GO

--执行

EXEC PROC_SELECT_STUDENTS_COUNT

复制代码

带参数

复制代码

--查询存储过程,根据城市查询总数

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_BY_CITY_COUNT', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_BY_CITY_COUNT;

GO

CREATE procedure PROC_SELECT_STUDENTS_BY_CITY_COUNT(@city nvarchar(50))

AS

SELECT COUNT(ID) FROM Students WHERE City=@city

GO

-- 执行

EXEC PROC_SELECT_STUDENTS_BY_CITY_COUNT N'Beijing'

复制代码

带通配符

复制代码

--3、查询姓氏为李的学生信息,含通配符

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_BY_SURNNAME', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_BY_SURNNAME;

GO

CREATE procedure PROC_SELECT_STUDENTS_BY_SURNNAME

@surnName nvarchar(20)='李%' --默认值

AS

SELECT ID,Name,Age FROM Students WHERE Name like @surnName

GO

--执行

EXEC PROC_SELECT_STUDENTS_BY_SURNNAME

EXEC PROC_SELECT_STUDENTS_BY_SURNNAME N'李%'

EXEC PROC_SELECT_STUDENTS_BY_SURNNAME N'%李%'

复制代码

带输出参数

复制代码

--根据姓名查询的学生信息,返回学生的城市及年龄

IF OBJECT_ID (N'PROC_SELECT_STUDENTS_BY_NAME', N'P') IS NOT NULL

DROP procedure PROC_SELECT_STUDENTS_BY_NAME;

GO

CREATE procedure PROC_SELECT_STUDENTS_BY_NAME

@name nvarchar(50),    --输入参数

@city nvarchar(20) out, --输出参数

@age  int output        --输入输出参数

AS

SELECT @city=City,@age=Age FROM Students WHERE Name=@name AND Age=@age

GO

--执行

declare @name nvarchar(50),

@city nvarchar(20),

@age int;

set @name = N'李明';

set @age = 20;

exec PROC_SELECT_STUDENTS_BY_NAME @name,@city out, @age output;

select @city, @age;

复制代码

存储过程实现增删改

1、新增demo

复制代码

--1、存储过程:新增学生信息

IF OBJECT_ID (N'PROC_INSERT_STUDENT', N'P') IS NOT NULL

DROP procedure PROC_INSERT_STUDENT;

GO

CREATE procedure PROC_INSERT_STUDENT

@id int,

@name nvarchar(20),

@age int,

@city nvarchar(20)

AS

INSERT INTO Students(ID,Name,Age,City) VALUES(@id,@name,@age,@city)

GO

--执行

EXEC PROC_INSERT_STUDENT 1001,N'张三',19,'ShangHai'

复制代码

2、修改

复制代码

--修改学生信息

IF OBJECT_ID (N'PROC_UPDATE_STUDENT', N'P') IS NOT NULL

DROP procedure PROC_UPDATE_STUDENT;

GO

CREATE procedure PROC_UPDATE_STUDENT

@id int,

@name nvarchar(20),

@age int,

@city nvarchar(20)

AS

UPDATE Students SET Name=@name,Age=@age,City=@city WHERE ID=@id

GO

--执行

EXEC PROC_UPDATE_STUDENT 1001,N'张思',20,'ShangHai'

复制代码

3、删除

复制代码

--根据id删除记录

IF OBJECT_ID (N'PROC_DELETE_STUDENT_BY_ID', N'P') IS NOT NULL

DROP procedure PROC_DELETE_STUDENT_BY_ID;

GO

CREATE procedure PROC_DELETE_STUDENT_BY_ID

@id int

AS

DELETE FROM  Students WHERE ID=@id

GO

--执行

EXEC PROC_DELETE_STUDENT_BY_ID 1001

复制代码

存储过程实现分页

复制代码

-- ROW_NUMBER分页查询

IF OBJECT_ID (N'PROC_SELECT_BY_PAGE', N'P') IS NOT NULL

DROP procedure PROC_SELECT_BY_PAGE;

GO

CREATE procedure PROC_SELECT_BY_PAGE

@startIndex int,

@endIndex int

AS

SELECT  * FROM (SELECT ID,Name,Age,City,ROW_NUMBER() OVER(ORDER BY ID DESC) AS RowNumber FROM Students) AS Temp

WHERE Temp.RowNumber BETWEEN @startIndex AND @endIndex

GO

--执行

EXEC PROC_SELECT_BY_PAGE 1,10

--使用TOP分页

IF OBJECT_ID (N'PROC_SELECT_BY_PAGE_WITH_TOP', N'P') IS NOT NULL

DROP procedure PROC_SELECT_BY_PAGE_WITH_TOP;

GO

CREATE procedure PROC_SELECT_BY_PAGE_WITH_TOP

@pageIndex int,

@pageSize int

AS

SELECT TOP(@pageSize) * FROM Students

WHERE ID >=(SELECT MAX(ID) FROM (SELECT TOP(@pageSize*(@pageIndex-1) + 1) ID FROM Students ORDER BY ID) AS Temp)

GO

--执行

EXEC PROC_SELECT_BY_PAGE_WITH_TOP 1,2

我的博客文章地址:http://www.cnblogs.com/hgmyz/p/6755162.html

欢迎关注我的微信公众号:互联网碎片搜集

SQl常用语句总结(持续更新……)相关推荐

  1. SQL常用语句一览(增删改查Easy)

    SQL常用语句一览 (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*fro ...

  2. SQL常用语句(基础篇)

    SQL常用语句(基础篇) 说明:创建数据库 CREATE DATABASE database-name 说明:删除数据库 drop database dbname 说明:备份sql server -创 ...

  3. linux常用指令(持续更新)

    linux常用指令(持续更新) 基本访问指令: 直接进入用户的home目录: cd ~ 进入上一个目录: cd - 进入当前目录的上一层目录: cd .. 进入当前目录的上两层目录: cd ../.. ...

  4. Android常用开发网址(持续更新)

    2019独角兽企业重金招聘Python工程师标准>>> Android常用开发网址(持续更新) 环境搭建 android镜像 http://www.androiddevtools.c ...

  5. 程序员常用英语积累---持续更新

    程序员常用英语积累---持续更新: Distribution: 分发 Direction    : 方向 Description: 描述 Destination: 目标 Definition   : ...

  6. 工具篇:Git与Github+GitLib常用操作(不定期持续更新)

    工具篇:Git与Github+GitLib常用操作(不定期持续更新) 前言: 写这个主要是打算自己用的,里边很多东西都是只要我自己看得懂,但是用了两个星期发现真是越用越简单,越用越好用,私以为得到了学 ...

  7. 【SQL常用语句或函数】

    SQL常用语句或函数 –查询字符串的长度 select length('北京市东城区王府井大街1188799号') from dual; –查询当前时间 values current date –查询 ...

  8. 数据库 SQL常用语句

    数据库 SQL常用语句 文章目录 数据库 SQL常用语句 一.前言 二.相关知识点实用性介绍 1.常用查询格式 2.WHERE子句常用的查询条件 3.多表连接查询 4.嵌套查询 5.字符匹配查询 6. ...

  9. 莫言经典语句(持续更新中。。。)

    莫言经典语句(持续更新中...) 狗头上不了金盘. 心猿脱索,意马开缰. 马铃薯再打扮也是个土豆. 月明秃头亮,水涨轮船高. 树怕屎尿浇根,人怕酒肉灌心. 人不说废话,母狗也能生麒麟. 你现在的学习方 ...

  10. U8入库单后台查询处理 常用 SQL 语句(持续更新)

    市场上常见的ERP软件有用友.金蝶等-,此篇文章阐述用友U8和SQL SERVER后台常用的的查询 先来了解一下SQL SERVER 中用友U8中 " 收 "单据所对应的表 &qu ...

最新文章

  1. ORB-SLAM2从理论到代码实现(六):Tracking.cc程序详解(上)
  2. 删除中间结点(直接用来当前节点操作)
  3. python培训机构推荐-广州有哪些不错的python培训班
  4. 9.11 strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数
  5. 58同城买二手电脑的感想
  6. **16.app后端如何保证通讯安全--url签名
  7. 洛谷P2680:运输计划(倍增、二分、树上差分)
  8. ubuntu安装Qt开发环境
  9. 使用NAS动态存储卷创建有状态应用
  10. odoo12 日历模块_odoo12
  11. 进度条(页面刷新)【原创】
  12. 基于C#的PISDK研究(代码)
  13. python获取eth0_python 获取网卡实时流量
  14. 能解决 80% 故障的排查思路
  15. 切线法(牛顿法)、割线法、抛物线法
  16. vue电商后台管理系统--订单管理篇
  17. Python 根据身高体重计算BMI值
  18. 浙大计算机科学基础实验,想加实验室的看过来-浙大计算机实验室详细推介
  19. 计算机颜色系统是三大色彩体系,色彩体系三大属性学习
  20. 7.PostgreSQL操作语句

热门文章

  1. halcon圆环完整度检测
  2. python数据结构_(列表)大O性能_学习笔记(2)
  3. php ssl 不验证失败,php – 没有SSL的安全身份验证
  4. php 完美分页,php完美分页类程序
  5. excel换行按什么键_电脑结束任务按什么键
  6. C#连接基于Java开发IM——Openfire
  7. MySQL+Amoeba实现数据库主从复制和读写分离
  8. VMware虚拟机克隆CentOS后网卡修改方法
  9. IOS添加pch预编译文件
  10. Google 拼音会导致卡 Ctrl 键?