🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #1258

�Ż���ݿ��ѯ

#1258
From: ���ܵ�Сʨ
Date: Sat, 18 Apr 1998 00:00
118 lines
9291 bytes
  ʹ��PowerBuilder���ʱ������õ���ݿ��ѯ��䡣����һ����
�ӵIJ�ѯ�����˵, ����ͬ��ѯ������ʵ��һ���ܿ����ж��ֲ�ͬ��
��﷽��,��ͬ�ı���ʹ��ݿ����Ӧ�ٶȴ��ྶͥ����ͳ��,Լ
��90%���������������ڳ���Ա���û�ʹ���˲�ǡ���IJ�ѯ������
��,��������дSQL����������������ܵ�����кܴ��ϵ��Ȼ��
��ѯ���ĺû�������ͬʵ������ϵͳ����ݿ�ṹ����¼��������
��������йص�,�����޷�ֻ�ü����򵥵��ձ����õĹ������ܽ���
����ѯ��䡣������������Ӧ������ݿ����ϵͳ���Ĺ�������
��һЩ�˽�,�������ʹ�����ڶԲ�ѯ����ʱ�Ż������ݡ�
    ����SQL��������������������̵IJ�ѯ����,����һ��֧
��SQL���ԵĴ��͹�ϵ����ݿⶼ��Ҫʹ��һ�����ڳɱ����Ż���,Ϊ
��ʱ��ѯ�ṩһ����ѵ�ִ�в��ԡ������Ż���,������һ����ѯ��
��,�����һ��ִ�в��ԡ����ִ�в�����ִ�������ѯ����Ҫ��һ
ϵ�в��衣��ݿ�ķ�Ӧ�ٶȾ�������������һ���Ż��㷨�ϡ���ͬ
�IJ�ѯ���ԺͲ�ѯ�����ʹ�������ķ�Ӧ��ͬ,��˲����ʵ��IJ�ѯ
���Կ�ʹϵͳ���ܴ����ߡ�
    �Ż������Ż������û������ѯ������ݺ�����һЩ���������
�ص�����,��Cache��С��Cache���ԡ�I/O��С�ȡ�һ����˵Ӳ�̷���
�dzɱ���ߵIJ���,��˶��û�����,ʹ�Ż������ֶ�������в�����
�Ż���ѯ�Ĺؼ�
    SQL��ѯ��䶼�����кܶ���ִ�в���,�Ż��������Ƴ�ȫ����ִ
�з���������ʱ�����ٵ�Ҳ������ν�ɱ���͵�һ�ַ�����һ������
,��Ϊ��Ҫ��ѡ�����ʹ��ʲô����Ͳ��ú��ֱ�������ֶ�,������
�Ż��Ľ��ж��ǻ����û���ʹ�õIJ�ѯ����е�where�Ӿ䡣
    ������
    �Ż�����where�Ӿ��е��Ż���Ϊ���¼���:

    1.��������
    ��������ĺ��ľ�����ݿ��ܷ�ʹ�ñ����ֶε���������ѯ���
,���ֱ�Ӳ�ѯ��¼�е���ݡ������=��<��>��>=��<=�Ȳ������
������ѯ�Ϳ���ֱ��ʹ������
    ��������������������:
    id = "T0001",salary>30000,a = 1 and c = 7��
    ������������������:
    salary = commission,dept != 10,salary *12  >=  30000,a =
 1 or c = 7��
    �Ż�����ʱ���Խ�����������ת��Ϊ��������,��:
    ��SELECT  name FROM employee WHERE  salary   BETWEEN   $
10000  AND   $1500
    ת��Ϊ:SELECT  name  FROM employee   WHERE  salary  >=  
$10000   AND   sala ry  <=  $15000   ��SELECT name  FROM  em
ployee  WHERE  name like "a%"
    ת��Ϊ:SELECT name  FROM  employee  WHERE  name >= "a"  
AND   name<"b"
    ��SELECT  name  FROM  employee  WHERE  salary  >  $3000 
* 12
    ת��Ϊ:SELECT name FROM  employee WHERE salary  >  $3600
0
    ��������ڲ�ѯ��Ӧ���ṩһЩ�������������,ʹ�Ż����и�
���ѡ����ء���titl e��titleauthor���ű���һ�Զ�Ĺ�ϵ,ͬ��
�IJ�ѯ�����������������ֱ��ַ���:
    ��SELECT  title_id, title   FROM  titles,  titleauthor
    WHERE  title.title_id = titleauthor.title_id
    AND  titleauthor.title_id = ��T81002'
    ��SELECT  title_id, title   FROM  titles,  titleauthor
    WHERE  title.title_id = titleauthor.title_id
    AND  title.title_id = ��T81002'
    ��SELECT  title_id, title   FROM  titles,  titleauthor
    WHERE  title.title_id = titleauthor.title_id
    AND  title.title_id = ��T81002'
    AND  titleauthor.title_id  = ��T81002'
    ��Ȼ���ַ���һ�ֱ�һ��Ҫ��,��Ϊ����Ϊ�Ż����ṩ�˸���
ѡ���ᡣ
    2.��������
    �ڽ��в�ѯ����ʱ�Ż������������ӵķ���ȫ���оٳ���,����
ÿһ�����ӵijɱ�,ѡ��ɱ���͵�һ�֡�������ʱ�õ�������޷�
���,һ��ϵͳ��ʹ��ƽ���ܶ���Ϊ����,������ܵ������ʡ�

    3.������������
    ����ѯ�������IN����Ĺؼ��ʱ,�Ż�����ת�����е�������O
R��������������:
    SELECT * FROM author WHERE au_lname in (��Berry',��Densh
am')
    ��ת��Ϊ:
    SELECT * FROM author WHERE au_lname = ��Berry' or au_lna
me = ��Densham'
    ��ݿ����ϵͳ����ÿһ��OR�Ӿ���в�ѯ,�����еĽ��ϲ�
��ȥ���ظ�����Ϊ���ս��

    ������
    ���ڶ�������ݿ��Ż������˽�,Ϊȷ�������ǽ�Ҫִ�еIJ�ѯ
�����Խ���׼ȷ���Ż�,����Ӧע�����¼���:

    1.����ʹ�ò����ݵ�������͡�����float��int��char��varcha
r��binary��varbinar y�Dz����ݵġ�������͵IJ����ݿ���ʹ�Ż�
���޷�ִ��һЩ�������Խ��е��Ż�����������:
    SELECT  name  FROM  employee WHERE  salary  >  60000
    �����������,��salary�ֶ���money�͵�,���Ż������Ѷ����
���Ż�,��Ϊ60000�Ǹ�����������Ӧ���ڱ��ʱ������ת����ΪǮ
����,��Ҫ�ȵ�����ʱת����
    2.�����һ���洢��̻򴥷�����,�б��ʽ��ֵ�ڱ���ʱ�޷�
�õ�,�Ż�����ֻ��ʹ�����ƽ���ܶ����������еļ�¼������:
    DECLARE  @value  money
    SELECT name FROM   employee WHERE  salary = @value
    ����������ǿ��Ż��ġ�ֻ������@value��ֵ��ִ��ǰ��֪��,
��ֻ��ʹ����ƽ���ܶ��������������Ҫ���еļ�¼��

    3.�������������ʹ��������ѧ������,��Ҫ��
    SELECT  name  FROM  employee WHERE  SUBSTRING(id, 1, 1) 
= ��B'
    SELECT  name  FROM  emplyee WHERE  salary  * 12  >  3000
0
     д��Ϊ:
    SELECT  name  FROM  employee WHERE  id   like ��B%'
    SELECT  name  FROM  emplyee WHERE  salary   >  3000 
    4.����ʹ��!=��<>������IJ�����,��Ϊ���ʹϵͳ�޷�ʹ����
��,��ֻ��ֱ���������е���ݡ�����:
    SELECT id FROM employeeWHERE   id  !=  'B%'
    �Ż������޷�ͨ��������ȷ����Ҫ���е�����
    ���������ᵽ����һЩ�����߲�ѯ�ٶȵ�ע������,������
���������,����Ա������Ҫ��������Ƚϲ�ͬ������Եõ����
�����������Ϊ��Ҫ������Ҫ��ݿ����Ա����ݿ�ķ�����һ�˵�
����ݿ����ϵͳ�IJ���,�Եõ�������Ӧ����,��ͳ����˱��ĵ�
���۷�Χ��

--
�� ��Դ:���ϴ�С�ٺ���Ϣ����վ bbs.nju.edu.cn��[FROM: hsia.nju.edu.cn]
Technical Details
Message-ID: <3O9iOY$tz9@bbs.nju.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,b744a2b4d8adaab1,start
X-Google-Attributes: gidfc86e,public
From: pipishi.bbs@bbs.nju.edu.cn (���ܵ�Сʨ)
Subject: �Ż���ݿ��ѯ
Date: 1998/04/18
Message-ID: <3O9iOY$tz9@bbs.nju.edu.cn>
X-Deja-AN: 345408765
X-Filename: Programming/M.892911778.A
Organization: nju_bbs
Newsgroups: cn.bbs.comp.program