SQL数据库基本语法格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 )