🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: cn.bbs.comp.program
1 messages
1 total messages Started by ���ܵ�Сʨ Sat, 18 Apr 1998 00:00
�Ż���ݿ��ѯ
#1258
Author: ���ܵ�Сʨ
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]
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads