SQl常用语句总结(持续更新……)

创建示例数据库

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大话设计模式笔记 享元模式

享元模式(Flyweigh),运用共享技术有效地支持大量细粒度的对象。 package flyweight;//可以接受并作用于外部状态 public abstract class Flyweight {public abstract void operation(int extrinsicState);} package flyweight;//为内部状态增…

python12岁_12岁。Python操作Excel,12Python,excel

excel在Python中的应用存测试数据有的时候大批量的数据,存到txt文件里显然不是最佳的方式,我们可以存到excel文件里面,第一方便我们存储数据和做数据,一方面方便我们读取数据,比较明朗。测试的时候就从数据库中读取出来…

什么叫工作到位?很深刻!

1、汇报工作说结果不要告诉老板工作过程多艰辛,你多么不容易!老板不傻,否则做不到今天。举重若轻的人老板最喜欢,一定要把结果给老板,结果思维是第一思维。2、请示工作说方案不要让老板做问答题,而是要让老…

react 给一个引用的组件添加新属性_高阶组件在React中的应用

高阶组件的定义接受React组件作为输入,输出一个新的React组件。概念源自于高阶函数,将函数作为参数,或者输出一个函数,如map,reduce,sort。 用haskell的函数签名来表示: hocFactory:: W: React.…

杂想 · 警醒

今天无意间看到CSDN上一位大牛师姐的博客,真的是好惊讶啊!很多时候总是太过自以为是,以为自己做不到的事情别人也很难做到。恰恰相反,成功总是伴随那些谦逊、努力、认真的人的!曾几何时,自己或许也是一个认…

好好的活,简简单单过!

生命,每个人只有一次,或长或短;生活,每个人都在继续,或悲或欢;人生,每个人都在旅途,或起或伏。人无完人,事无完美,有些小人,你不须计较&#xff0…

SQL Server 中创建数据库、更改主文件组示例

以下示例在 SQL Server 实例上创建了一个数据库。该数据库包括一个主数据文件、一个用户定义文件组和一个日志文件。主数据文件在主文件组中,而用户定义文件组包含两个次要数据文件。ALTER DATABASE 语句将用户定义文件组指定为默认文件组。然后通过指定用户定义文件…

lunixs 退出mysql_MySQL的基本操作

1、数据库登录格式:mysql -h主机地址 -u用户名 -p用户密码 -P端口 -D数据库 -e “SQL内容”[rootwulaoer ~]# mysql -uroot -p2、修改密码格式:mysqladmin -u用户名 -p旧密码 password 新密码[rootwulaoer ~]# mysqladmin -uroot password 123456注&…

交际中你所不知道的说话的12个技巧!

1.“有一说一”和“自以为是”不同,别把粗鲁当成真性情与 他人相处,要遵循一个基本原则:己所不欲,勿施于人。你可以真挚地描述自己的感受,前提是不要带有攻击性,至于对他人做出评价和判断,则需要…

宽客的人amp;amp;事件映射

看完《宽客》这本书,叙事介绍20世纪华尔街对冲基金、股票、投资者依赖股市从直觉交易数学家的早期演化、物理学家用数学模型开发过程中的交易,这些进入金融数学家、物理学家依靠大数据分析、稍纵即逝的交易机会来买入卖出;同一时候找出交易模…

社交中的黄金法则,你要细细体会品味

1,不要急着用你的嘴,来为你的眼睛辩护什么。因为天知道你的嘴说出什么来。2,假如有人朝你扔石头,就收起来。因为那会是你日后建高楼的基石。3,能忍则忍,忍不了就改变,改变不了就认了哇。4&#…

Jsp笔记(1)

1. jsp页面中出现中文乱码怎么解决&#xff1f; 1 <% page contentType"text/html; charsetGB2312"%> 2 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> 用上面这两行代码去替换自动生成的代码&#…

这些略带幽默句子,笑的同时多感悟一下吧(收好)

1、穷&#xff0c;并不可怕&#xff0c;我怕穷着穷着就习惯了。2、世界上唯一不用努力&#xff0c;就能得到的只有年龄。3、我是你转身就忘的路人甲&#xff0c;凭什么陪你蹉跎年华到天涯&#xff1f;4、世界上最快乐的事情就是吃&#xff0c;第二快乐的是待会再吃。5、琴棋书画…

java 异常机制_深入理解Java异常处理机制

一、引子try…catch…finally恐怕是大家再熟悉不过的语句了&#xff0c;而且感觉用起来也是很简单&#xff0c;逻辑上似乎也是很容易理解。不过&#xff0c;我亲自体验的“教训”告诉我&#xff0c;这个东西可不是想象中的那么简单、听话。不信&#xff1f;那你看看下面的代码&…

ThreadLocal http://blog.jobbole.com/20400/

d转载于:https://www.cnblogs.com/hansongjiang/p/4875332.html

做人:失信是最大的破产!

一个人最大的破产是信用的破产&#xff01;哪怕你一无所有&#xff0c;但只要信用还在&#xff0c;就还有翻身的本金。保护好信用&#xff0c;珍惜别人给你的每一次信任&#xff01;因为有时候我们只有一次机会&#xff01;朋友有时候就像钞票&#xff0c;有真也有假。我们需要…

c#和WIN32 调用

作者&#xff1a;刘铁猛日期&#xff1a;2005-12-20关键字&#xff1a;C# .NET Win32 API版权声明:本文章受知识产权法保护&#xff0c;如果阁下想转载,在转载的时候烦劳阁下连同在下的姓名一起转载,并向bladeytom.com发一个Mail,我很想知道我的文章都去哪里了.谢谢.小序Win32 …

【干货】微信公众号运营必备工具(完整版)

做微信公众号运营最基本的要素有两点&#xff1a;一是内容要强大&#xff08;内&#xff09;&#xff0c;二是排版要美观&#xff08;外&#xff09;。做好前者&#xff0c;你需要有充足的知识储备以及精彩独到的文笔作为支撑&#xff0c;而做好后者则相对简单许多&#xff0c;…

java定时线程池_java 定时器线程池(ScheduledThreadPoolExecutor)的实现

前言定时器线程池提供了定时执行任务的能力&#xff0c;即可以延迟执行&#xff0c;可以周期性执行。但定时器线程池也还是线程池&#xff0c;最底层实现还是ThreadPoolExecutor&#xff0c;可以参考我的另外一篇文章多线程–精通ThreadPoolExecutor。特点说明1.构造函数public…