创建SQL函数的实例 (创建sql函数)

教程大全 2025-07-20 10:48:01 浏览

下文将为您介绍一个创建SQL函数的实例,供您参考,如果您在此方面遇到过问题,不妨一看,会对您学习SQL函数有所帮助。

此函数的功能为将某一个班级ID下的所有团组信息选择拼接起来,得出的结果如下格式

【编辑推荐】

SQL中返回计算表达式的函数

SQL中类似For循环处理的实例

对存储过程代替SQL语句的讨论

SQL聚合函数之Avg 函数


sql常用语句写法

1、说明:创建数据库

CREATE DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

--- 创建 备份数据的 device

USE MasterEXEC sp_addumpdevice ’disk’, ’testBack’, ’c:mssql7backupMyNwind_’

--- 开始 备份

BACKUP DATABASE pubs TO testBack

4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only

5、说明:

删除新表:drop table tabname

6、说明:

增加一个列:Alter table tabname add column col type

注:列增加后将不能删除。 DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

7、说明:

添加主键:Alter table tabname add primary key(col)

说明:

删除主键:Alter table tabname drop primary key(col)

8、说明:

创建索引:create [unique] index idxname on tabname(col….)

删除索引:drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

9、说明:

创建视图:create view viewname as select statement

删除视图:drop view viewname

10、说明:几个简单的基本的sql语句

选择:select * from table1 where 范围

插入:insert into table1(field1,field2) values(value1,value2)

删除:delete from table1 where 范围

更新:update table1 set field1=value1 where 范围

查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

排序:select * from table1 order by field1,field2 [desc]

总数:select count * as totalcount from table1

求和:select sum(field1) as sumvalue from table1

创建sql函数

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1

如何使用Microsoft SQL Server Management Studio来写SQL?

首先你需要打开它吧?它是SQL的DBMS图形化操作系统。 如果是想用SQL语言来操作的话呢,那就在建立好连接的基础上,然后点击窗体上面的“新建查询”按钮,然后在窗体右边会出现一块编辑区,你在编辑区域里面书写相应的SQL语句就可以。 下面是我写的一个例子,你可以参考下: 现在是建立数据库的SQL语句: use master create, size=5mb,filegrowth=15%, filename=E:\B\ ) log on (,size=1mb,maxsize=6mb,filename=E:\B\stuDB_ ) use stuDB go 下面呢,是在新建好的数据库中新建数据表: create table stuInfo ( stuName varchar(32) not null, stuNo varchar(16) not null primary key , stuSex varchar(8) not null default(男), stuAge int not null, stuSeat int not null identity(1,1), stuAddress ntext default(地址不详) ) 以下是为新建好的数据表添加约束: alter table stuInfo add constraint ck_stuNo check (stuNo like s253xx) alter table stuInfo add constraint ck_stuAge check (stuAge>=15 and stuAge<=50) 下面是给数据表添加数据: insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) values(张秋丽,s,default,18,北京海淀) insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) values(李斯文,s,女,22,河南洛阳) insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) values(李文才,s,default,31,) insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) values(欧阳骏雄,s,default,28,新疆克拉玛依) 下面是查询表中的所有数据 select *from stuInfo select stuName as 姓名,stuNo as 学号,stuSex as 性别,stuAge as 年龄,stuSeat as 座号,stuAddress as 家庭住址 from stuInfo 同样,也是新建数据表的语句块: create table stuMarks ( examNo varchar(32) not null primary key, stuNo varchar(16) not null, writtenExam int default(0), labExam int default(0) ) 添加约束: alter table stuMarks add constraint ck_examNo check (examNo like Exxxx) alter table stuMarks add constraint fk_stuNo foreign key (stuNo) references stuInfo(stuNo) alter table stuMarks add constraint ck_writtenExam check (writtenExam>0 and writtenExam<=100) alter table stuMarks add constraint ck_labExam check (labExam>0 and labExam<=100) 添加数据到数据表: insert into stuMarks(examNo,stuNo,writtenExam,labExam) values(E, s,80,58) insert into stuMarks(examNo,stuNo,writtenExam,labExam) values(E, s,50,default) insert into stuMarks(examNo,stuNo,writtenExam,labExam) values(E, s,97,82) 下面就是一些简单的查询了: select examNo as 考号,stuNo as 学号,writtenExam as 笔试成绩,labExam as 试验成绩 from stuMarks select stuName as 姓名,stuNo as 学号,stuSex as 性别,stuAge as 年龄,stuSeat as 座号,stuAddress as 家庭住址 from stuInfo select *from stuInfo where stuSex=男 order by stuSeat desc select * from stuMarks where writtenExam>75 and writtenExam<=100 order by stuNo select* from stuMarks where writtenExam <>0 and labExam <>0 select stuName,writtenExam,labExam into lingshi from stuInfo,stuMarks 以下就是SQL的聚合函数部分了: select avg(writtenExam) as 笔试平均成绩 from stuMarks select avg(labExam) as 机试平均成绩 from stuMarks select count(*) as 考试人数 from stuMarks where writtenExam>60 select count(*) as 没有通过考试的人数 from stuMarks where writtenExam<60

函数代码:createorreplAcefunctionfunc_date(--创建函数名称func_datep_yyyymmddnumber,--定义参数1p_numnumber)--定义参数2returndate--返回结果类型为dateasv_resultdate;--声明返回结果变量beginifp_num=11thenv_result:=trunc(to_date(p_yyyymmdd,yyyy-mm-dd),mm);--本月初elsifp_num=12thenv_result:=trunc(to_date(p_yyyymmdd,yyyy-mm-dd),q);--本季初elsifp_num=13thenv_result:=trunc(to_date(p_yyyymmdd,yyyy-mm-dd),yyyy);--本年初elsifp_num=21thenv_result:=last_day(to_date(p_yyyymmdd,yyyy-mm-dd));--本月末elsifp_num=22thenv_result:=last_day(add_months(trunc(to_date(p_yyyymmdd,yyyy-mm-dd),q),2));--本季度末elsifp_num=23thenv_result:=last_day(add_months(trunc(to_date(p_yyyymmdd,yyyy-mm-dd),yyyy),11));--本年末elsifp_num=31thenv_result:=add_months(trunc(to_date(p_yyyymmdd,yyyy-mm-dd),mm),-1);--上月初elsifp_num=32thenv_result:=add_months(trunc(to_date(p_yyyymmdd,yyyy-mm-dd),q),-3);--上季初elsifp_num=33thenv_result:=add_months(trunc(to_date(p_yyyymmdd,yyyy-mm-dd),yyyy),-12);--上年初elsifp_num=41thenv_result:=trunc(to_date(p_yyyymmdd,yyyy-mm-dd),mm)-1;--上月末elsifp_num=42thenv_result:=trunc(to_date(p_yyyymmdd,yyyy-mm-dd),q)-1;--上季末elsifp_num=43thenv_result:=trunc(to_date(p_yyyymmdd,yyyy-mm-dd),yyyy)-1;--上年末elseraise_application_error(-,p_num参数说明不存在!);--其它参数抛出异常endif;returnv_result;--返回结果endfunc_date;/调用函数:selectfunc_date(,11)fromdual;

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐