SQL2000 笔记(一)
来源:互联网 发布:淘宝卖家花呗被关闭了 编辑:程序博客网 时间:2024/06/06 03:32
建表
CREATETABLE 学生信息
(
学号 varchar(14) PRIMARY KEY,
姓名 varchar(8) UNIQUE NOT NULL,
班级编号 varchar(14) ,
年级 int null,
性别 varchar(2) CHECK(性别 in ('男’','女’')),
民族 varchar(20) DEFAULT '未知该生民族',
籍贯 varchar(50)
)
2.修改表
1)重命名表:
EXEC sp_rename ‘oldname’,’newname’
2)修改列属性:
ALTER TABLE 学生信息
ALTER COLUMN 姓名varchar(20)NOT NULL
3)添加列:
ALTER TABLE 学生信息
ADD 家庭住址nvarchar(20) NULL
4)删除列:
ALTER TABLE 学生信息
DROP COLUMN 家庭住址CASCADE
删除表
drop tablename
查询
select namefrom Sysobjects where type = 'u' order by name
//显示该数据库所有用户表
(selectcourse_id from section where semester = 'fall') union (select course_id fromsection where semester = 'spring');
//并运算,或运算,(还有交运算intersect,差运算 except)
select avg(PatientOld) as 'pingjunnianling' from Tbl_PatientInfo where PatientID between 20and 45 //as 可省略
聚集查询
select count(disrinct ID) from teachers where semester = 'Spring' and year =2013;
//基本聚集查询,distinct--去掉重复
select dept_name, cout(disinct ID)as instr_count from instructor naturaljoin teachers where semester ='Spring' and year = 2013 group by dept_name;
//group by字句可以给出的一个或多个属性是用来构造分组的,在group by 字句中所有属性上值相同的元组将被分在一个组中!
select dept_name,avg(salary) asavg_salary from instructor group by dept_name having avg(salary) >42000;
//having是针对group by 字句构成的分组查询,having 字句中的为此在形成分组后才起作用!
“对于2009年将受的每个课程段,如果该课程段至少有2名学生选课,找出该选课的所有学生的总分”
select course_id, semester,year,sec_id,avg(tot_cred) from takes natural joinstudent where year= 2009 group by course_id,semester,year,sec_id having count(ID) >=2;
//如果出现where子句,where子句将应用到from子句结果关系上,如果出现group by ,满足where谓词的元组通过group by子句,形成分组,如果没有groupby ,满足where 为此元组将被分为一个分组
嵌套子查询
集合
where子句
select distinct course_id from section where semester = 'Fall' and year= 2009 and course_id in (select course_id from section where semester ='Spring' and year = 2010 );
//in后面是集合,也可以是(‘121’,‘212 12’,‘211’)...
select name from insructor where salary > some (select salaryfrom onstructor where dept_name = 'Biology');
//至少比有些大
select namefrom instructor where salary > all (selectsalary from instructor where dept_name = 'Biology')
select course_id from section as S where semester = 'fall' and year =2009 and exists (select *from section as T where semester = 'Spring'and year = 2010 and S.course_id = T.course_id);
//exists 存在
from子句
select depart_name,avg_salary from (selectdept_name ,avg(salary) as avg_salary from instructor group by dept_name) where avg_salary >42000;
select depart_name,avg_salary from (selectdept_name ,avg(salary) as avg_salary from instructor group by dept_name) as dept_avg(dept_ name ,avg_salary) where avg_salary >42000;
//相当于select dept_name,avg(salary) as avg_salary from instructor groupby dept_name having avg(salary) > 42000;
with子句
withmax_budget(value) as (select max(buget) from department) select budget fromdepartment,max_budget where department.budget = max_budget.value;
//with子句提供定义临时关系的方法
数据库删除
delete fromR where;
数据库插入
insert intocourse values('','','',...);
insert into instructor selectID,name,depart_name,18000 from student where dept_name = 'Music' andtot_cred>144;
//假设我们想Music系每个修满144的学生成为Music系教师,其工资为18000;
数据库更新
updata instructor set salary=salary*1.15;
//
updatainstructor set salary = salary*1.15 where salary>7000;
//
updatainstructor
set salary= case
when salary <=10000 thensalary*1.15
else salary *1.05
end;
//
p� ot��8�2\clip_image012.png"width=437 height=176 alt=0159>(1)在Edit菜单上点击。
(2)点击Repeat项。
(3)在键盘上按Delete键或从MenuDesigner快捷菜单中选择“Delete”删掉此项,该项消失,其余项目上移。
(4)删除PasteSpecial项。
对Edit菜单还未处理完,继续之前提一下MenuDesigner中有用用的特性。就是Shift + Click和Ctrl + Click。这个技术可用于在Windows资源管理器中选择文件。MenuDesigner支持这个技术。
(1)Edit菜单应该仍在显示着,若没有,点击Edit菜单来显示Edit菜单。
(2)点击菜单项Go to。
(3)按下Shift键,点击菜单项Object,这两个之间的所有项都已经选定。
(4)按Delete键一次消去所有项。
(5)点击Help菜单,删除中间两项,保留Contents项和About项。
可见Shift+Click技术用于快速删除不想要的菜单项。
5、插入菜单项
插入菜单项非常直接,就在要插入新项的菜单项上点击,在键盘上按Insert键或从MenuDesigner快捷菜单中选择Insert。空菜单项即被插入了,可以像以前一样改变Name属性和Caption属性。
下面在Edit菜单中插入一项。
(1)点击Edit显示Edit菜单。
(2)点击Find菜单项。
(3)按键盘Insert键插入一个新菜单项,所有在新项目下面的项都向后移动。
(4)改变Name属性为EditSelectAll,并改变Caption属性为“Select &All”。
(5)点击Edit菜单底端的空占位符,增加菜单分隔符。
再点击占位符以增加新项,设置Name属性为EditWordWrap,Caption属性为“&Word Wrap”。
现在Edit菜单看起来如下:
6、移动菜单项
需要时能容易移动菜单项,可以在它们所在弹出菜单中上下移动,或者移出弹出菜单。
有两种方式移动菜单项:
- 第一种使用Cut和Paste。
- 第二种是把它拖动到新位置然后释放。
下面来试试,把SelectAll菜单项放到Undo项的下面,这是很容易的,只要移动它。
(1)点击Edit显示Edit菜单。
(2)点击SelectAll项,拖动它知道Undo项下的分隔线亮起来。
(3)释放鼠标,菜单项移动了。
这就是Delphi,非常容易。
7、批量修改属性
有时想一次改变几个菜单项的属性,例如,在ScratchPad应用程序中,有几个菜单项不准备这次完成,比如不准备支持打印,也不准备完成帮助系统。因此需要屏蔽这些菜单项。
(1)在MeunDesigner中选择Help | Contents。
(2)改变其Enabled属性为False,该菜单项目被屏蔽。
(3)点击File菜单。
(4)点击Print菜单项,按住Shift键,点击PrintSetup菜单项,两个项目都被选定。
(5)在ObjectInspector中,改变它们的Enabled属性为False,两个菜单项都被屏蔽了。
重复(4)、(5)步来屏蔽Edit菜单上的Find和 Replace菜单项。
用这种方法可以一次改变一组菜单项,只需要选择想要改变的项,按要求改变其属性。
8、增加位图到菜单栏
可以容易地增加位图到菜单上。在想增加位图的菜单上点击,然后在ObjectInspector中Bitmap属性的Value栏中双击,弹出PictureEditor对话框,选择要显示的位图即可。位图可以是单个图像或者图像列表。如果使用图像列表,还应该设置ImageIndex属性为要显示的图像列表中的索引号。
Note
在设计阶段,菜单项目位图不显示在Menu Designer中或者窗体上,必须运行程序来看位图菜单。
9、创建子菜单
创建子菜单没有什么特别或需要技巧的地方。子菜单是一种菜单项,点击时能扩展显示更多的菜单选项。子菜单是以菜单项标题附近的右向箭头标记的。可从MenuDesigner快捷菜单中选Create Submenu或按住Ctrl+右箭头建立子菜单。如下:
建立子菜单时,空菜单项安排在菜单项的右边。可往子菜单增加菜单项,就想生成主菜单一样。也可以插入菜单模板建立子菜单。如下:
10、增加快捷键
可通过改变ObjectInspector中的ShortCut属性来增加菜单项的快捷键。以前插入的Edit菜单已有内部快捷键。例如,Cut的快捷键是Ctrl+X,如果看Edit菜单,会看到Ctrl+ X列在Cut项目旁边。
在Cut菜单项上点击,在ObjectInspector的ShortCut属性中看到其值为Ctrl + X。点击ShortCut属性的Value栏,会看到下拉按钮,点击按钮列出所有的快捷键列表。要为菜单项设置快捷键,只要从表中选择即可。
SelectAll菜单项目的标准快捷键是Ctrl + A,因此我们为Select All菜单项增加快捷键。
(1)从MenuDesigner中选择 Edit | Select All。
(2)在ObjectInspector中点击ShortCut属性。
(3)从列表中选择Ctrl + A,则Select All项显示出Ctrl + A来。如下:
这时所有要做的,以后Delphi来照顾它,快捷键不需要编写任何代码。
11、最后的工作
下载来完成菜单。
首先,WordWrap菜单项用于打开或关闭换行的。当该项打开时,Word Wrap菜单项前面有一个对勾;当该项关闭时,则没有对勾。通过设置WordWrap菜单项的Checked属性为True来表示换行特性的打开。如下:
另一件事情就是改变从模板插入的所有菜单项目的Name属性。默认插入时都是缺省值,需要把它们改为更为有意义的名字。
(1)点击Edit | Undo菜单项,更改Name属性为EditUndo。如果使用的是缺省值,则需要在Undo1基础上,在前面加上Edit前缀,然后删除掉结尾处的1。
(2)可使用命名惯例但要前后一致,对Cut、Copy、Paste、Find及Replace菜单项Name属性进行修改,依次为EditCut,EditCopy,EditPaste、EditFind及EditReplace。
(3)现在更改Help菜单,将其中Contents菜单项的Name属性改为HelpContents,About菜单项Name属性改为HelpAbout。
这就快要完成菜单了,在检查一遍,如果发现错误就做必要的修改。当一切没有问题了,点击关闭框关闭MenuDesigner。
Note
可双击任何菜单项直接从Menu Designer中访问Code Editor,双击菜单项是,CodeEditor将显示该项的OnClick事件,这时可以开始输入代码。在一下讲解中,我将要编写菜单代码。
以上代码均在Delphi 7中测试通过,截止到本讲示例代码下载:ScratchPad(菜单设计器之一).rar
(请继续下一讲)
- SQL2000 笔记(一)
- win10 10586 正式版安装sql2000(笔记)
- MD5算法的T-SQL实现(FOR SQL2000)(一)
- MD5算法的T-SQL实现(FOR SQL2000)(一)
- SQL2000 安装是的问题一
- sql2000学习笔记之基础知识
- sql2000学习笔记之子查询
- 数据字典(SQL2000)
- SQL2000中级(二)
- sql2000
- sql2000
- sql2000学习笔记之select统计数据
- sql2000学习笔记之select连接查询
- SQL 备忘录(SQL2000版)
- sql2000数据类型大全(转)
- SQL学习笔记:服务端配置-如何让外网访问SQL2000
- (原创)超市管理系统(VC+SQL2000)
- Proxool连接池使用方法(sql2000)
- B树、B+树与B*树简介
- 九种APP商业模式图解
- iphone上面编写具有root权限的程序
- 微信公众帐号开发教程第8篇-文本消息中使用网页超链接(8)
- JSONObject与JSONArray的使用
- SQL2000 笔记(一)
- dede数据库操作篇
- 深入探索Java工作原理:JVM,内存回收及其他
- hibernate 常见异常处理
- 微信公众帐号开发教程第9篇-QQ表情的发送与接收(9)
- IIS7错误:“Web服务器被配置为不列出此目录的内容”的解决方法
- Java环境变量配置
- Qt图片播放
- 【其他部分 第二章 C语言图形和函数图像的绘制】