030103.htm

来自「提供一个VB学习教程,入门级。来源于网上」· HTM 代码 · 共 197 行 · 第 1/2 页

HTM
197
字号
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>vb study</title><style>
<!--
td {font-size: 9pt}
A:link {text-decoration: none; color: #0033cc;font-size: 9pt}
A:visited {text-decoration: none; color: #0066CC;font-size: 9pt}
A:active {text-decoration: none; color: #ff0000; font-size: 9pt}
A:hover {text-decoration: underline; color: #000000;font-size: 9pt}
-->
</style>
</head>

<body>

<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" width="98%">
    <tr>
      <td width="100%"><a href="#">你的位置</a>:<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="#">VB学习</a>--<a href="#">数据库</a></td>
    </tr>
    <tr>
      <td width="100%">
        <p align="center"><font size="2">SQL语言</font></td>
    </tr>
    <tr>
      <td width="100%"><br>
        <font size="2">命名规则——表名,字段名限制在30个字符内,而且只能用数字,字母和下划线,不要用中文!!且必须以字母开头。除记录内容可能用到的中文外,全部用英文:数据库名,表名,字段名,索引名,查询名等。另外,SQL语句关健字用的都是大写字母,如果出现小写字母的表名字段名等最好用中括号括起(不管是否包含空格)。???有问题?一点习惯.<br>
        不能在引号内用行连接符,如SQLStr=”SELEC _<br> 
        T * FROM [invoice]”但是可以:SQLStr=”SELEC” &amp; _<br> 
        “T * FROM [invoice]”<br> 
        SQL基本作用是查询,查询分为两类:选择查询——按一定查询条件从数据库中返回一个记录集;动作查询——对数据库进行建立,修改,删除等<br>
        -------------------------------------------<br>
        一,查询语言Select。(1)返回一个表中几个字段:<br>
        select 字段1,字段2… from 表名<br> 
        select 姓名,行业,垫付 from BB<br> 
        (2)返回多个表中的多个字段。几个表共同返回一个记录集,要用一个字段作标准,对不同表各选定字段按顺序进行组合,才能融合成1个记录集。如下:<br>
        select BB.姓名,AA.发票 from BB,AA where BB.ID=AA.ID<br> 
        用Where子句将不同表记录以ID字段为标准进行组合。<br>
        -------------------------<br>
        Where子句:指定查询条件,用来筛选表中满足条件的记录。这样理解:用select可对不同字段进行筛选(纵向),而又用where子句,可对不同记录进行筛选(横向)。 如:select 姓名,行业,定额,备注 from BB Where 定额>30<br> 
        返回定额在30元以上的记录,条件表达式中的运算符可以是&lt;,>,=,&lt;=,>=,&lt;>,like,between,in.其中,Like是用于查找与指定字符串相匹配的字符串,可用通配符%与_,一个_只代表1个字符,一个%可代表多个字符(在DAO中通配符是*和?),注意:只在Like子句中允许用通配符。如:<br>
        select 姓名,行业 from BB where 姓名 like ‘李%’<br> 
        注:where子句可同时接多个表达式,用And,Or,Not等连接,where工作的方式是:对每一条记录,将指定字段值送入表达式比较,如“定额>30”,某记录的“定额”字段值为25,则返回false,就不会进入查询结果集里。象这样一条一条检查表中的每条记录。<br>
        between运算符指定一个范围,返回在两个端点之间的记录,如下:<br>
        select 姓名,行业,定额 from BB where 定额 between 30 and 40<br> 
        等价于select 姓名,行业,定额 from BB where 定额>=30 and 定额&lt;=40&nbsp;<br>
        in运算符是指定几个值,如:<br>
        select 姓名,行业,定额 from BB where 行业 in('南杂','百货')<br> 
        等价于select 姓名,行业,定额 from BB where 行业='南杂' or 行业='百货'<br> 
        注:1,引用字符串的值时,用单引号,也可以在引用中用两个双引号表示一个引号,比如[name] LIKE “李春生”写到引用中是:SQLStr=”[name] LIKE “”李春生”””<br> 
        2,字段名或表名中如果含有空格,该字段名或表名要用中括号[]括起,如:<br>
        select [all name] from students.<br> 
        3,如果字段名或表名过长,可用As关健字改名,表名.字段名 as 新名。如:<br> 
        select a.姓名,b.主要情况 as 简介 from 个体户管理 as a,详细资料 as b Where<br> 
        a . ID=b . ID<br> 
        此句改动了三处:表“个体户管理”改为a,表“详细资料”改为b,字段“主要情况”改为“简介”。<br>
        -----------------------------------------<br>
        ORDER BY子句:将查询结果集按某字段排序。选择升序或降序:在字段名后用DESC是降序,缺省情况是升序。如:<br> 
        select * from BB order by 姓名 DESC<br> 
        表示按姓名字段降序。<br>
        GROUP BY子句和HAVING子句:对源表记录按一个指定字段值为标准进行分组,凡是值相同的就合成单一‘记录(组)’返回。这是一个特殊结果集,因为源表中可能有多条记录在此字段上值相同,但在其他字段上的值不同,注意:其他字段不能直接从结果集中显示!除作为分组标准的字段可直接从结果集显示出来,其余只能与统计函数在一起才能显示,因此主要是进行计算,如:得到每种行业的人的个数:<br> 
        select COUNT(BB.姓名)as num,行业 from BB group by 行业&nbsp;<br>
        返回“行业=南杂;num=6”、“行业=理发;num=2”…的结果。<br>
        再如合计每种行业收取的管理费多少,如下:<br>
        select SUM(BB.累计应交)as num,行业 from BB group by 行业<br> 
        而不能写成SELECT 累计应交,行业from BB group by 行业,“累计应交”字段不能直接输出到用户。<br> 
        可同时用多<br>
        个字段作分组标准,表示只有在多个字段值都相同时才把它们合成一条’记录组’,如SELECT [Name],[money] FROM [invoice] GROUP BY [Name],[money]。表示只有[Name]和[Money]都相同的记录才合并到同一组。<br> 
        HAVING子句:返回组内指定条件的记录(where是指定表内符合条件的记录,having是指定用group by分组的结果集内的满足条件记录)。如:<br> 
        select SUM(BB.累计应交)as num,行业 from BB group by 行业 having SUM(BB.累计应交)>200 返回单个行业合计管理费超过200元的“组记录”。&nbsp;<br>
        再如:SELECT [Name],[money] FROM [invoice] GROUP BY [Name],[money] HAVING COUNT(*)>1,返回用Name和money分组后每条记录组包含的原表记录数大于1个的记录(组)。好象不好理解,这里的*号实际上相当于其他字段,只能与统计函数一起使用,它返回的是每条记录(组)对应的源表记录数。慢慢理解吧。<br> 
        ---------------------------------------------<br>
        with owneraccess option 子句:对执行查询的用户查看查询结果的权限。一般用在多用户数据库中。<br> 
        -------------------------------------<br>
        字段前的“谓词”。用在一个字段前面作限制,达到某些功能,一,distinct:忽略具有重复数据的记录。如 select DISTINCT name from photos.二,TOP:获取指定数目的记录。如获取表中后10条记录:select TOP 10 * from BB;再如,获取表中的前40%记录,用PERCENT联合:select TOP 40 PERCENT * From BB.<br> 
        完整的select语句语法是:<br>
        select (多个)字段 from (多个)表 in 数据库&nbsp;<br>
        where 筛选记录的条件表达式&nbsp;<br>
        group by 字段 having 条件<br> 
        order by 排序字段<br> 
        with owneraccess option<br> 
        变量当作查询值,要用PARAMETERS关健字定义,格式:<br>
        PARAMETERS 变量1 类型,变量2 类型,…<br> 
        如下:<br>
        PARAMETERS lxn integer,ldd integer<br> 
        lxn=30<br>
        ldd=50<br>
        select * from BB where 定额 between lxn and ldd<br> 
        ★ 将查询结果集生成一个独立表:select的into子句,格式:<br> 
        select 多个字段 into新建表名 from 表名 where 条件 …<br> 
        select 姓名,垫付 into outmoney from BB where 垫付>0<br> 
        如果不指定条件,这条语句可以将整个表复制,达到备份的效果。<br>
        -----------------------------------------------------------<br>
        使用统计函数:对数据源中特定的字段进行一些统计。使用这些函数,通常返回包含单一记录的结果集(用GROUP BY分组的除外)。每个函数作为结果集的一个字段(用AS关健字定义字段名),可同时使用多个函数。<br> 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?