1。Sysdate 当前日期和时间
SQL> Select sysdate from dual;
SYSDATE
----------
21-6月 -05
2。Last_day 本月最后一天
SQL> Select last_day(sysdate) from dual;
LAST_DAY(S
----------
30-6月 -05
3。Add_months(d,n) 当前日期d后推n个月
用于从一个日期值增加或减少一些月份
date_value:=add_months(date_value,number_of_months)
SQL> Select add_months(sysdate,2) from dual;
ADD_MONTHS
----------
21-8月 -05
4。Months_between(f,s) 日期f和s间相差月数
SQL> select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))from dual;
MONTHS_BETWEEN(SYSDATE,TO_DATE('2005-11-12','YYYY-MM-DD'))
----------------------------------------------------------
-4.6966741
5。NEXT_DAY(d, day_of_week)
返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。
SQL> SELECT next_day(to_date('20050620','YYYYMMDD'),1) from dual;
NEXT_DAY(T
----------
26-6月 -05
6。current_date()返回当前会话时区中的当前日期
date_value:=current_da ......
要求:查询每个老师所带毕业设计的汇总情况,毕业设计学生分本科、专科,院外、院内,要求得到的结果形式如下:
教师名 院内本科 园内专科 院外本科 院外专科 合计
相关的表有:学生表(包含学生层次)、教师表(教师名)、学生课题表(学生教师对应关系以及院内院外信息)。
SQL语句如下:
select
teacher.teacher_name,ifnull(c1.c,0) v1,ifnull(c2.c,0) v2,ifnull(c3.c,0) v3,ifnull(c4.c,0) v4,
(ifnull(c1.c,0)+ifnull(c2.c,0)+ifnull(c3.c,0)+ifnull(c4.c,0)) sum
from teacher
left outer join
(
select
teacher_id,count(*) c
from
taskbook,student
where
taskbook.taskbook_inner_task='院内' and degree_id>1 and student.student_id=taskbook.student_id
......
常用SQL语句书写技巧
作者: 来源:javaeye博客 发布者:admin
时间:2009-05-11 10:07:41 点击:2010
SQL结构化查询字符串的改写,是实现数据库查询性能提升的最现实、最有效的手段,有时甚至是唯一的手段,比如在不允许大幅度修改现有数据库结构的情况下。
通过优化SQL语句提高查询性能的关键是:
? 根据实际需求情况,建立合适的索引;
? 使用一切可能的方式去利用好索引,避免全表扫描;
? 尽量减少内存及数据I/O方面的开销
一、 建立索引
(一)建立“适当”的索引,是快速查询的基础。
索引(index)是除表之外另一重要的、用户定义的存储在物理介质上的数据结构。当根据索引码的值搜索数据时,索引提供了对数据的快速访问。事实上,没有索引,数据库也能根据SELECT语句成功地检索到结果,但随着表变得越来越大,使用“适当”的索引的效果就越来越明显。注意,在这句话中,我们用了“适当”这个词,这是因为,如果使用索引时不认真考虑其实现过程,索引既可以提高也会破坏数据库的工作性能。
索引实际上是一种特殊的目录,SQL SERVER提供了两种索引:
? 聚集索引(clu ......
具体解决步骤:
第一步:打开 SQL2005 用管理员登录先,然后在服务名处右击选属性>安全性>右边的登录方式选项改为 身份验证 确定!
第二步:选择安全性(展开)>登录名>双击sa>密码改成你需要的密码 确定!
然后关掉SQL2005 或者 断开连接
第三步:点开始>程序>选择SQL2005>配置工具>打开 configuration manager>展开 SQL Server2005 网络配置
注意:选中MSSQLSERVER 如果没有 选中SQMEXPRESS
>TCP/IP 选项 >先启用 然后右键单击 > 属性 > Ip地址选项卡 > 把已禁用的选项全部改成已启用 > 然后把SQL2005 的服务重新启动一下!
再用sa登录,就可以了 ......
自动提示的快捷键:F6
可以更改:Tools->Preferences->User interface->Key Configuration ,在Item列里找到“Tools/Code Assistant”,在后面对应的快捷改成自己喜欢的。
默认是不能自动提交的,按 F10 键可以在做更改后提交。 ......
1、查询三门功课都在80分以上的同学姓名(一条sql语句)
name kecheng fenshu
张三 语文 78
张三 数学 81
张三 物理 89
李四 语文 86
李四 数学 91
李四 物理 75
王五 语文 81
王五 数学 90
王五 物理 89
select distinct name from student a where not exists(select * from student where a.name=name and fenshu<80)
SELECT NAME from student GROUP BY name HAVI ......