(一)SQL概述
1.SQL的基本概况
1)含义:SQL是structured query languge的缩写,它是关系数据库的标准数据语言,所有的关系数据库管理系统都支持。
2)功能:数据查询、数据操作和数据定义
2.特点
1)一体化:包括数据定义、查询和操作等方面功能,可以完成数据库活动中的全部工作;
2)高度非过程化:只需告诉计算机用户“做什么”,SQL便可自动完成全部工作;
3)非常简洁:只有为数不多的几条命令组成;
4)它可以直接以命令方式使用,也可以嵌入到程序设计语言中以程序方式使用。
3.主要短语及其含义
1)select-说明要查询的数据
2)from-说明查询的数据来自哪些表,可对单表或多表进行查询
3)where-说明查询条件,即选择元组的条件
4)group by-用于对查询进行分组,可用它对数据进行分组汇总
5)having-必须跟group by短语一起使用,用来限定分组必须满足的条件
6)order by-用来对查询的结果进行排序
(二)SQL的查询功能
1.简单查询
1)适用范围:即单表查询,查询的字段信息和查询条件都来自于同一张表
2)语法格式:select 字段名1,…字段名n from 表名 where 条件式
3)查询细节:
ü distinct 去掉查询结果中的重复值
ü 若查询某张表的全部字段,则可把select后的字段名全部用通配符*代替即可
ü union并运算可把两个select语句的查询结果合并成一个查询结果(要求是两个查询结果要具有相同的字段个数,并且对应字段的值要出自同一个值域,即具有相同的数据类型和取值范围)
ü 查询去向:into array 数组名——将查询结果存放于数组中
into cursor 临时表文件名——将查询结果存放于临时只读文件,关闭时自动删除
into dbf/table 自由表文件名——将查询结果存放于永久表中
to file 文本文件名——将查询结果存放于文本文件中
2.简单的联接查询
1)适用范围:查询的字段信息或条件来自于多张表
2)语法格式:select 字段名1,…字段名n from 表名1,…表名n where 联接条件 and 其他条件
3.嵌套查询
1)适用范围:查询的字段信息出自于同一张表,而查询条件出自于其他表
2)语法格式:select 字段名1,…字段名n from 表名1 where 外部关键字 in (select 外部关键字 from 表名2 where 条件)
3)查询细节:
ü 几个特殊的运算符:between…and…用于查询满足某个值域范围内的记录;like用于查询与指定字段值相匹配的记录(like后所指定的字段值一定是个字符型数据;通配符%表示0个或多个字符,“_”只表示一个字符)
ü 排序:order by 字段名1 asce/desc,…字段名n asce/desc
注意:系统默认升序,asce可省略,允许按一个或多个字段对查询结果排序
ü 简单计算查询:count()-计数 sum()-求和,所指字段是N型 avg()-求平均数,所指字段是N型 max()-求最大值,所指字段是N型min()-求最小值,所指字段是N型
ü 分组与计算查询:group by 字段名1,…字段名n having 条件表达式 (注意:having必须和group by一起使用,因为它是对分组后的结果进一步进行筛选,having条件和where条件不矛盾,在select语句查询中是先用where子句限定元组,然后进行分组,最后再用having子句限定分组结果)
ü 利用空值查询:is null/is not null
ü 内外层互相嵌套查询:内层查询的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果
ü 使用量词和谓词的查询:
表达式 运算符 any/some/all(select子查询)——其中any和some表任意一个,all表示全部
[not] exists(select子查询)——exists表示存在
ü 虚字段:即原表中并无此字段,是通过函数或者表达式计算所得出的字段名;其格式为:表达式/函数 as 虚字段名
ü 显示部分结果:top 表达式 [percent] order by 字段名1,…字段名n
注意:不使用percent时,在1-32767之间取值,说明显示前几条记录
使用percent时,则在0.01-99.99之间取值,说明显示前百分之几的记录
并且top短语要与order by短语同时使用才有效
4.内联接查询:超级联接查询的一种
1)适用范围:查询的字段名或查询条件来自于多张表
2)语法格式:select 字段名1,…字段名n from 表名1 inner join 表名2 on 联接条件 where 条件
[NextPage]
(三)SQL的操作功能
1.插入功能
1)标准格式:insert into 表名(字段名1,…字段名n)values(字段值1,…字段值n)
注意:此命令格式表示向表中插入记录,当插入的不是完整的记录时必须指明字段
2)特殊格式:insert into 表名 from array 数组名
注意:此命令格式表示从指定的数组向表中插入记录
2.更新功能
1)格式:update 表名 set 字段名1=表达式1,…字段名n=表达式n where 条件式
注意:使用where表示更新满足条件的记录,不使用where则更新全部记录
2)注意update命令与replace命令的区别:
² update可对一表和多表操作,replace只能对当前一表操作
² update用where接条件表达式,replace用for接条件表达式
² update用=接表达式,replace用with接表达式
² update用set接字段名,replace的字段名前不加set
² update不用where子句就可更新全部记录,replace有all无for条件才是更新全部记录
3.删除功能
1)格式:delete from 表名 where 条件
注意:此命令表示逻辑删除表中相应的记录,有where条件时表示逻辑删除表中满足条件的记录
2)本格式可用于一表与多表,而delete for条件则只可用于当前表
(四)SQL的定义功能
1.表的定义,即建立表
1)格式:create table 表名(字段名1 字段类型(宽度),…字段名n 字段类型(宽度))
2)注意:
2.表的删除
1)格式:drop table 表文件名
2)注意:
3.表结构的修改
1)添加/删除表中字段:
alter table 表名 add/drop column 字段名 字段类型(宽度)
注意:只能一次添加一个字段,并且如果是删除字段则不需要写宽度
2)修改字段类型及宽度:
alter table 表名 alter 字段名 新类型(新宽度)
3)更新字段名:
alter table 表名 rename column 原字段名 to 新字段名
4)修改字段有效性:
alter table 表名 alter column 字段名[null/not null][set default 表达式][set check 逻辑表达式[error 字符表达式]]
alter table 表名 alter column 字段名[drop default][drop check]
5)添加/删除表中表中索引:
alter table 表名 add primary key/unique字段名 tag 索引名
注意:primary key是主索引;unique是候选索引
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|