SQL 데이터 연산의 기초(초급) 2

黄舟
풀어 주다: 2016-12-17 14:28:11
원래의
1229명이 탐색했습니다.

ISQL을 이용하여 SELECT 쿼리 실행

SQL 설치 시 Sever에는 ISQL/w라는 응용 프로그램도 설치되어 있습니다. ISQL/w를 사용하면 대화형 SQL 쿼리를 수행할 수 있습니다. ASP 웹 페이지에 쿼리를 포함시키기 전에 ISQL/w로 테스트하는 것이 매우 유용합니다.

참고:

이 책의 첫 번째 부분에서는 Microsoft를 설치하고 구성하는 방법을 배웠습니다. SQL 서버. SQL Server가 설치되어 있지 않거나 SQL Server를 실행할 수 없는 경우에는 '3장 SQL 설치 및 사용하기'를 참조하세요. Sever".

SQL에서 작업 선택 Sever 프로그램 그룹의 ISQL_w를 사용하여 프로그램을 시작합니다. 프로그램이 시작되면 먼저 서버 정보와 로그인 정보를 묻는 대화 상자가 나타납니다(그림 10.1 참조). 서버 상자에 SQL Server의 이름을 입력합니다. 서버가 로컬 컴퓨터에서 실행 중인 경우 서버 이름은 컴퓨터의 이름입니다.
로그인 정보 상자에 로그인 계정과 비밀번호를 입력하거나 "신뢰할 수 있는 연결" 사용을 선택한 후 연결 버튼을 클릭하세요.

그림 10.1





참고:

SQL을 사용하는 경우 서버가 전체 보안 또는 혼합 보안을 사용하도록 구성되면 신뢰할 수 있는 연결을 사용할 수 있습니다. 표준 보안을 사용하는 경우 사용자 이름과
비밀번호를 제공해야 합니다. 자세한 내용은 3장을 참조하세요.

정상적으로 진행되면 그림 10.2와 같이 연결 버튼을 클릭한 후 쿼리 창이 나타납니다. (이상이 있을 경우 3장을 참고하세요)

 

그림 10.2

 

쿼리를 실행하기 전에 데이터베이스를 선택해야 합니다. SQL Server를 설치하면 SQL이라는 데이터베이스가 생성됩니다. Sever에는 master, model, msdb 및 tempdb와 같은 많은 시스템 데이터베이스도 있습니다.

편리하게는 SQL Sever에는 pubs라는 특별한 예제 데이터베이스가 함께 제공됩니다. 도서관 pubs에는 가상 게시자가 사용할 테이블이 포함되어 있습니다. 문서의 모든 예제 프로그램은 이 라이브러리용으로 설계되었습니다. 이 책에 나오는 많은 예제에서도 이 데이터베이스를 사용합니다.

쿼리 창 상단의 DB 드롭다운 상자에서 데이터베이스 퍼브를 선택하여 데이터베이스를 선택합니다. 모든 쿼리는 이 라이브러리의 다양한 테이블에 대해 실행됩니다. 이제 첫 번째 쿼리를 실행할 수 있습니다. 정말 신난다!

첫 번째 쿼리는 가상 출판사에서 일하는 모든 저자에 대한 데이터가 포함된 autrors라는 테이블에 대한 것입니다. 쿼리 창을 클릭하고 다음 문을 입력합니다.

SELECT 작가의 전화는 어디서? au_name="Ringer"

입력이 완료되면 쿼리 실행 버튼(VCR 재생 버튼 모양의 녹색 삼각형)을 클릭합니다. 이 버튼을 클릭하면 쿼리 창에 나타나는 모든 명령문이 실행됩니다
. 쿼리 창은 자동으로 결과 표시 창으로 바뀌며, 쿼리 결과를 확인할 수 있습니다(그림 10.3 참조).

표시되는 쿼리 결과는 그림 10.3에 표시된 것과 다를 수 있습니다. SQL에서 Sever의 버전에 따라 라이브러리 게시의 데이터가 다릅니다. SQL 서버 6.5의 경우
에서는 두 개의 레코드를 찾습니다. 결과 표시 창에 다음 내용이 표시되어야 합니다.

phone

……………….

801 826_0752

801 826_0752

(2행) 영향을 받음)

그림 10.3

 

 

실행한 SELECT 문은 작성자 테이블에서 Ringer라는 이름의 모든 작성자의 전화번호를 검색합니다.
WHERE 절에서 특별한 선택 기준을 사용하여 쿼리 결과를 제한합니다. 선택 기준을 무시하고 테이블에서 모든 저자의 전화번호를 가져올 수도 있습니다. 이렇게 하려면 쿼리 탭을 클릭하고 쿼리 창으로 돌아가서 다음 SELECT 문을 입력합니다.

SELECT 전화번호 작성자

이 쿼리가 실행된 후 작성자 테이블의 모든 전화번호가 특정 순서 없이 검색됩니다. 작성자 테이블에 100개의 전화번호가 포함되어 있으면 100개의 레코드를 가져옵니다. 테이블에 10억 개의 전화번호가 있으면 10억 개의 레코드를 모두 가져옵니다(시간이 걸릴 수 있음).

테이블 인증 필드에는 성, 이름, 전화번호, 주소, 도시, 주 및 우편번호가 포함됩니다. SELECT 문의 첫 번째 부분에 필드를 지정하여 테이블에서 모든 필드를 검색할 수 있습니다. 다음과 같이 SELECT 문에서 여러 필드를 한 번에 검색할 수 있습니다.

SELECT au_fname,au_lname, 전화 발신 작성자

SELECT 문을 실행하면 이 세 열의 모든 값이 검색됩니다. 다음은 이 쿼리 결과의 예입니다(종이를 절약하기 위해 쿼리 결과의
부분만 표시되고 나머지 레코드는 줄임표로 대체됨):

au_fname au_lname 전화

......................................................................................................

Johnson White 408 496_7223

마조리 그린 415 986_7020

셰릴 카슨 415 548_7723

Michael O'Leary 408 286_2428



(23개 행) 영향을 받음)

SELECT 문에서는 나열해야 하는 만큼 많은 필드를 나열할 수 있습니다. 필드 이름을 쉼표로 구분하는 것을 잊지 마세요. 별표(*)를 사용하여
테이블에서 모든 필드를 제거할 수도 있습니다. 다음은 별표를 사용한 예입니다.

SELECT * 에서 작가

SELECT 문이 실행되면 테이블의 모든 필드 값이 검색됩니다. SQL 쿼리에서 별표를 자주 사용하게 될 것입니다.

팁:

별표를 사용하면 테이블에 있는 모든 열의 이름을 볼 수 있습니다. 이렇게 하려면 SELECT 문을 실행한 후 쿼리 결과의 열 헤더를 살펴보세요.

여러 테이블 운영

지금까지는 SQL 쿼리를 사용하여 하나의 테이블에서 데이터를 검색하는 방법만 시도했습니다. SELECT 문을 사용하여 동시에 여러 테이블에서 데이터를 가져올 수도 있습니다.
SELECT 문의 FROM 절에 데이터를 가져오려는 테이블의 이름을 나열하세요.

선택하다 au_lname ,제목 FROM 작성자, 제목

이 SELECT 문이 실행되면 Authors 테이블과 Titles 테이블에서 동시에 데이터가 검색됩니다. 저자 테이블에서 모든 저자 이름을 가져오고 제목 테이블에서 모든
책 제목을 가져옵니다. ISQL/w 프로그램에서 이 쿼리를 실행하고 쿼리 결과를 살펴보십시오. 이상하고 예상치 못한 점을 발견하게 될 것입니다. 저자 이름이 저자의
책과 일치하지 않지만 저자 이름과 책 제목의 가능한 모든 조합이 나타나는데 이는 예상한 것과 다를 수 있습니다.

무슨 일이 있었나요? 문제는 두 테이블 간의 관계를 지정하지 않았다는 것입니다. 테이블을 서로 연결하는 방법을 SQL에 알려주지 않습니다.
두 테이블을 연결하는 방법을 모르면 서버는 두 테이블에서 가져온 레코드의 가능한 모든 조합을 간단히 반환할 수 있습니다.

두 테이블에서 의미 있는 레코드 조합을 선택하려면 두 테이블의 필드 간 관계를 설정하여 두 테이블을 연결해야 합니다. 이를 수행하는 한 가지 방법은 다른 두 테이블의 필드 간의 관계를 설명하는 데 특별히 사용되는 세 번째
테이블을 만드는 것입니다.

authors 테이블에는 각 저자의 고유 ID가 포함된 au_id라는 필드가 있습니다. 테이블 제목에는 각 책 제목의 고유 식별자
가 포함된 title_id라는 필드가 있습니다. 필드 au_id 및 필드 title_id를 가질 수 있는 경우 두 테이블 사이에 관계를 설정하면 두 테이블을 연관시킬 수 있습니다. 이 작업을 완료하는 데 사용되는 데이터베이스 pubs에 titleauthor라는
테이블이 있습니다. 테이블의 각 레코드에는 제목 테이블을 작성자 테이블과 연결하는 데 사용되는 두 개의 필드가 포함되어 있습니다. 다음 SELECT 문은
세 개의 테이블을 사용하여 올바른 결과를 얻습니다.

SELECT au_name,title FROM 작성자,제목,제목저자

어디 Authors.au_id=titleauthor.au_id

그리고 titles.title_id=titleauthor.title_id

이 SELECT 문이 실행되면 각 저자가 올바른 책 제목과 일치됩니다. 테이블 titleauthor는 각 테이블의
필드를 포함하여 작성자 테이블과 제목 테이블 간의 관계를 지정합니다. 세 번째 테이블의 유일한 목적은 다른 두 테이블의 필드 간의 관계를 설정하는 것입니다. 추가 데이터 자체는 포함되어 있지 않습니다.

이 예에서는 필드 이름이 어떻게 작성되는지 확인하세요. Authors 테이블과 Titles 테이블에서 동일한 필드 이름 au_id를 구별하기 위해 각 필드 이름 앞에는 테이블 이름 접두사
와 마침표가 붙습니다. 명명된 작성자.au_id 필드는 테이블 작성자에 속하며, titleauthor.au_id라는 필드는 테이블 titleauthor에 속합니다.
두 필드는 혼동되지 않습니다.

세 번째 테이블을 사용하면 두 테이블의 필드 간에 다양한 유형의 관계를 설정할 수 있습니다. 예를 들어, 한 작가가 다양한 책을 쓸 수도 있고,
여러 작가가 한 책을 쓸 수도 있습니다. 두 테이블의 필드 사이에 "다대다" 관계가 있는 경우 세 번째 테이블을 사용하여 이 관계를 표시해야 합니다.

그러나 많은 경우 두 테이블의 관계는 복잡하지 않습니다. 예를 들어, 테이블 제목과 테이블 게시자 간의 관계를 지정해야 합니다. 제목은
여러 출판사와 일치할 수 없으므로 두 테이블 간의 관계를 나타내는 세 번째 테이블이 필요하지 않습니다. titles 테이블과 출판사 테이블 사이의 관계를 지정하려면 두 테이블이 공통 필드를 갖도록 만들기만 하면 됩니다. 데이터베이스 pubs에서 테이블 제목과 게시자에는 pub_id라는 필드가 있습니다. 책 제목
및 출판사 목록을 얻으려면 다음 명령문을 사용할 수 있습니다.

SELECT title,pub_name 제목,출판사

어디 titles.pub_id=publishers.pub_id

물론 두 출판사가 공동으로 책을 출판하는 경우 이 관계를 나타내는 세 번째 테이블이 필요합니다.

보통 두 테이블의 필드 사이에 '다대다' 관계가 있다는 것을 미리 알면 세 번째 테이블을 사용하여 두 테이블을 연결합니다. 반대로 두 테이블의 필드 사이에 "일대일" 또는 "일대다" 관계만 있는 경우 공통 필드를 사용하여 연관시킬 수 있습니다.


위 내용은 SQL 데이터 연산 기초(초급) 내용입니다. 2. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!