资源描述:
《理论09结构化查询语言SQL-用.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第6章结构化查询语言6.1SQL语言概述关系数据库管理系统的标准语言包括:Oracle、Sybase、MicrosoftSQLServer、Access6.1SQL语言概述(1)一体化(2)完备的查询功能(统计和计算)(3)简洁易学(命令少,语法简单)(4)非过程化(5)用法灵活(6)可对视图操作内容6.2数据定义6.3数据操作6.4数据查询优越性:不需要打开相关表,直接使用SQL语句即可。6.2SQL定义功能建立表结构(CREATTABLE)修改表结构(ALTERTABLE)建立视图(CREATSQLVIEW
2、)例子CREATTABLE通讯录FREE(姓名C(8);生日D,家庭电话C(14),手机C(12))ALTERTABLE通讯录ADD地址C(24)ALTERTABLE通讯录ALTER地址C(30)ALTERTABLE通讯录DROP地址ALTERTABLE通讯录RENA地址TODZaltertable<表名>primarykey<关键字>tag<索引标识名>建立视图createsqlview<视图名>as
3、L的数据修改功能6.3.1插入数据6.3.2更新数据6.3.3删除数据6.3.1插入数据1.命令格式insertinto<表名>[(<字段名1>[,<字段名2>,…])]values(<表达式1>[,<表达式2>,…])在表尾插入记录Value中表达式的值为插入记录的具体值,各表达式的类型、宽度和先后顺序须与指定的各字段对应。若插入所有字段,后面的字段名可以省略,但插入的数据与表的结构要完全吻合。例:在ZGDA中插入一条记录插入部分字段的记录:Insertintozgda(编号,姓名,基本工资);values(
4、[2000117],[张笑],500)插入所有字段的记录:Insertintozgdavalues([2000117],[张笑],;[女],[工程师],1260)6.3.2更新数据update<表名>set<字段名1>=<表达式1>[,<字段名2>=<表达式2>…]where(<逻辑表达式>)]缺省where短语是对所有记录进行数据更新例:(1)updatezgdaset年龄=年龄+1,;基本工资=基本工资*1.1(2)updatezgdaset基本工资=基本工资+80;where性别=[女](3)职称是高工的
5、基本工资用实发工资的1.15倍加80填入?6.3.3删除数据deletefrom<表名>[where<逻辑表达式>]缺省where则删除所有记录仅对要删除的记录做上删除标记(逻辑删除)例:deletefromzgdawhere年龄>55pack6.4SQL的数据查询功能(核心)完成从一个或多个数据表中检索数据的功能。注意:同样不需要打开表和所在的数据库,直接输入命令,即可得到结果。sele……from(最短形式)whereorderbygroupby…havingtop
6、distinctinto
7、to基本结构
8、:SELECT…FROM…WHEREWHERE:联接和筛选条件ORDERBY:排序依据GROUPBY:分组依据INTO<目的地>:查询去向6.4.2简单查询1.查询student表中男生记录,结果存入新表nsjlselect*fromstudent;where性别=“男”;intodbfnsjl2.查询student表中非北京籍女生的姓名,年龄,籍贯select姓名,年龄,籍贯fromstudent;where性别=“女”and籍贯!=“北京”3.查询student表中有哪些班级(不出现重复值)selectdi
9、stinct班级fromstudent4.查询student表中年龄在19-20之间的学生记录,并按出生日期排序select*fromstudent;where年龄between19and20;orderby出生日期desc例:在student表中查询所有姓“张”的同学的记录。sele*fromstudentwhere姓名like[张%]说明:Like是字符串匹配运算符,允许使用通配符%,_%:代表零个或任意多个字符;_:代表任意一个字符;问题:查找姓张,而且名字有三个字的人如何查找?sele*fromstud
10、entwhere姓名like[张__]例:在student表中查询所有籍贯为“内蒙古”或“山东”的记录。sele*fromstudentwhere籍贯in([内蒙古],[山东])问题:查找zgda表中职称不是“工程师”也不是“助工”的记录。sele*fromzgda;where职称notin([工程师],[助工])5.查询student表中年纪最小的三名的学生记录select*top3