SQL数据库基本语法格式

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本语法格式

select(聚合函数)的语句格式:(这个不会考试就危险

了)

select * from 表名

上面一句可以查出一张你指定表名的表里的全部东西,* 的位置可以替换其他的东西,比如:select 列 1 名, 列 2 名from 表名

这样你就可以只看表里列1,列2两列。还可以加COUNT(),YEAR(等函数,具体看

书吧!!

在后面可以接where,group by,order by 等

where 的用法:

select * from 表名where 条件表达式

条件表达式就好比列 1 值>0 啊,列 2 值=0&0啊,之类的。这样我们就之看符合条件的。

group by 的用法:

select 列名1,count(列名2) as ' 自定义列名' from 表名

group by 列名 1

这句就是把表里所有列名 1 相同的行集合成一行,顺便说下count(列名2) as ' 自定义列名' ,count()是总行数的意思,考试经常要和group by 一起用。如果要求总合用sum()这个函数。as '自定义列名’就是给列付个名字。如果要进一步筛选就在语句的最后加"HAVING 条件表达式"就可以了。

ORDER BY勺用法:

select * from 表名[where 条件表达式]

ORDER BY列名N

这样就是依照列名N的顺序排列了,最后加上DESC就是降序排列

连表查询

Select需要的列名1,需要的列名 2 ,……需要的列名N from 表1,表2

Where表1.某列=表2.某列and其他要求的条件表达式

以上就是连两个表的Select 语句, 你也可以连 3 或多个表,只要每个表和其他的表有联系就可以了。

如果上面的看不太懂我举个例子:

我们有2张表:B1,B2。B1里有“动画名称”和“时间”两列。B2里有“动画名称” 和“制作公司”两列。其中两个表的动画名称是对应的,现在要你显示出“动画名称”, “时间”和“制作公司” ,做法如下:

SELECT B1. 动画名称, 时间, 制作公司from B1,B2 where B1. 动画名称= B2. 动画名称

ps: “SELECT B1. 动画名称, 时间, 制作公司”里面我要求返回3项,第一项因为两个表列名重复所以要前面加“表名. ”

如果上面的题目还要加条件,比如我们只要“制作公司”是“A”公司的,就这样写where

语句:

where B1. 动画名称= B2. 动画名称AND 制作公司='A'

update (更新)的语句格式:

update 表名

set 列名 1 = xxx, 列名 2 = xx, ... 列名N = xx where 列名x =

insert(插入一列)的语句格式:

1,全部插入,也就是把表里每一条的记录都写一边,这样格式就要求和表的格式一样。insert into 表名

values('列 1 值',1,' 列 3 值',....' 列N 值')

2,部分插入, 也就是插入某几列的数据,其他的里面不可以有不允许为空的又不会自动生产的,语句格式:insert into 表名(列 1 名, 列2名, 列3名) values(' 列 1 值',' 列2值',' 列3值')

deldte(删除)的语句格式:

deldte from 表名

where 条件表达式

条件表达式就好比列 1 值>0 啊,列 2 值=0&0啊,之类的。

视图创建

create view 视图名as

select * from 表名where 条件表达式

PS :最后一句是更具要求来的

游标声明

declare 游标名cursor

for

select * from 表名

游标的属性比较复杂,一般定义在for 前面,参考P1 1 2页,或其他资料。

Ps: 一般在for 前面加local(说明是全局游标),scroll(说明是可以前后移动的)游标的关键字:(也就是加在for 前面的)

Scroll 说明这游标是前后移动的(默认是单向的)

Local 说明这游标是局部游标

Global 说明这游标是全局的

Static 静态游标(就是不可以再修改了)

Dynamic 动态游标

打开游标

OPEN游标名

读取游标数据

FETCH NEXT或PRIOR或FIRST或LAST from 游标名

修改游标

update 表名set 列名=‘ 列值' where CURRENTOF 游标名

ps: 上面那一句只可以修改当前的一条游标的值,如果要修改多条就写循环语句+if 语句吧

关闭游标

Close 游标名

删除游标

Deallocate 游标名

存储过程

create proc 存储过程名

as

select语句或其他语句(比如:update (更新)的语句、deldte(删除)的语句)使用存储过程

EXEC存储过程名

带变量的存储过程

create proc 存储过程名@变量名 1 类型,@变量名 2 类型

as

select * from 表 1

where 列1=@变量名 1 and 列2=@变量名 2

使用带变量的存储过程

EXEC存储过程名@变量名1='某个值’,@变量名2='某个值’

PS: 某个值你按照要求定的,变量的数量,可以没有(如上一个例子),可以一个,也可以多个,如果类型是INT 就不需要加单引号。

创建触发器

CREATE TRIGGER触发器名

ON 表名AFTER INSERT 或UPDATE或DELETE

AS

BEGIN

END

触发器中间的语句(也就是BEGIN到END之间的语句)

BEGIN 与(插入之后), 一般也就是要求在其他的相关表上做添加或修改。语句如下(加到

END之间):

UPDATE X 表SET 列1=列1 + (select 列1 from INSERTED )

相关文档
最新文档