>  기사  >  데이터 베이스  >  SQL 데이터 연산의 기초(초급) 3

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

黄舟
黄舟원래의
2016-12-17 14:29:33838검색

필드 조작

일반적으로 테이블에서 필드 값을 검색하면 해당 값은 테이블이 생성될 때 정의된 필드 이름과 연결됩니다. 작성자 테이블에서 모든 작성자 이름을 선택하면 모든 값이 필드 이름 au_lname과 연결됩니다. 그러나 어떤 경우에는 필드 이름에 대해 작업을 수행해야 합니다. SELECT 문에서 기본 필드 이름 뒤에 새 이름을 추가하면 됩니다. 예를 들어, 더 직관적이고 읽기 쉬운 이름인 Author를 사용할 수 있습니다. 필드 이름 au_lname 대신 성:

SELECT au_lname "저자 성" FROM Author

이 SELECT 문이 실행되면 au_lname 필드의 값은 "Author Last"와 동일합니다. 이름". 쿼리 결과는 다음과 같을 수 있습니다.

저자 성

… .....

화이트

그린

카슨

오리어리

스트레이트



(23개 행이 영향을 받음)

필드 제목은 더 이상 au_lname이 아니지만 Author Last로 대체됩니다. 이름이 바뀌었습니다.

테이블에서 반환된 필드 값에 대해 작업을 수행할 수도 있습니다. 예를 들어 제목 테이블에 있는 모든 책의 가격을 두 배로 높이려면 다음
SELECT 문을 사용할 수 있습니다.

SELECT 제목에서 가격*2

이 쿼리가 실행되면 각 책의 가격이 테이블에서 나올 때마다 두 배가 됩니다. 그러나 이런 방식으로 필드를 조작해도 테이블에 저장된 책 가격은 변경되지 않습니다. 필드에 대한 작업은 SELECT 문의 출력에만 영향을 미치고 테이블의 데이터에는 영향을 미치지 않습니다. 책의 원래 가격과 가격 인상 후 새 가격을 모두 표시하려면 다음 쿼리를 사용할 수 있습니다.

SELECT 가격 "원래 가격", 가격*2 "새 가격" FROM titles

테이블 제목에서 데이터를 가져오면 원래 가격이라는 제목 아래에 원래 가격이 표시되고 New라는 제목 아래에 두 배의 가격이 표시됩니다. 아래 가격. 결과는 다음과 같습니다
:

원래 가격 새 제품 가격

………………………………………….

39.98
11.95 23.90

5.98
39.98


(18행) 영향을 받음)

더하기(+), 빼기(-), 곱하기(*), 나누기(/) 등 대부분의 표준 수학 연산자를 사용하여 필드 값을 조작할 수 있습니다. 여러 필드에 대해 한 번에
작업을 수행할 수도 있습니다. 예:

SELECT 가격*ytd_sales "총 수익" FROM 제목

이 예에서는 책 유형별 총 판매량은 가격에 판매량을 곱하여 계산됩니다. 이 SELECT 문의 결과는 다음과 같습니다.

total 수익

……………………………………..

81,859,05

46,318,20

55,978 ,78

81,859,05

40,619,68



(18 행)

마지막으로 연결 연산자(더하기 기호처럼 보임)를 사용하여 두 문자 필드를 결합할 수 있습니다.

SELECT au_fname+" "+au_lname "저자 이름" FROM 작성자

이 예에서는 au_fname 및 au_lname 필드를 쉼표로 구분하여 함께 붙여넣고 쿼리 결과 제목을 작성자로 지정합니다.
이름. 이 문의 실행 결과는 다음과 같습니다.

author 이름

………………………………………………

존슨 화이트

마조리 그린

셰릴 카슨

마이클 올리어리

딘 스트레이트



(23행) 영향을 받음)

보시다시피 SQL은 쿼리 결과에 대한 많은 제어 기능을 제공합니다. ASP 프로그래밍 프로세스에서는 이러한 이점을 최대한 활용해야 합니다. 쿼리 결과를 조작하기 위해 SQL을 사용하는 것은 동일한 작업을 수행하는 스크립트를 사용하는 것보다 거의 항상
더 효율적입니다.

쿼리 결과 정렬

이 장의 서문에서 강조한 것처럼 SQL 테이블에는 고유한 순서가 없습니다. 예를 들어 테이블에서 두 번째 레코드를 가져오는 것은 의미가 없습니다. SQL 관점에서 보면 다른 레코드보다 앞에
레코드가 없습니다.

그러나 SQL 쿼리 결과의 순서를 조작할 수 있습니다. 기본적으로 레코드는 테이블에서 검색될 때 특별한 순서 없이 나타납니다. 예를 들어
authors 테이블에서 au_lname 필드를 검색하면 쿼리 결과는 다음과 같이 표시됩니다.

au_lname

… ………….

화이트

그린

카슨

오리어리

스트레이트



(스물셋 영향을 받은 행)

특별한 순서 없이 이름 목록을 보는 것은 매우 불편합니다. 이름을 알파벳순으로 정렬하면 읽기가 훨씬 쉬울 것입니다. ORDER를 사용하여 BY 절을 사용하면
다음과 같이 쿼리 결과를 오름차순으로 정렬할 수 있습니다.

SELECT au_lname FROM Author ORDER BY au_lname

이 SELECT 문이 실행되면 작성자 이름이 알파벳순으로 표시됩니다. 주문하다 BY 절은 작성자 이름을 오름차순으로 정렬합니다.

여러 열에 동시에 ORDER를 사용할 수도 있습니다. BY 절. 예를 들어, au_lname 필드와 au_fname 필드를 모두 오름차순으로 표시하려면 두 필드 모두에 대해
을 수행해야 합니다.정렬:

선택 au_lname,au_fname 저자로부터 ORDER BY au_lname ,au_fname

이 쿼리는 먼저 au_lname 필드를 기준으로 결과를 정렬한 다음 au_fname 필드를 기준으로 정렬합니다. 기록은 다음 순서로 검색됩니다:

au_lname au_fname

……………………………………………….

베넷 아브라함

Ringer Albert

Ringer Anne

Smith Meander



(23행) 영향을 받음)

링거라는 이름을 가진 작가가 두 명 있다는 점에 유의하세요. Albert Ringer라는 작가가 Anne으로 등장합니다. 링거의 저자 앞에는 알파벳순으로 앤이라는 성 앞에 알베르라는 성이 와야 하기 때문이다.

쿼리 결과를 역순으로 정렬하려면 DESC 키워드를 사용하면 됩니다. DESC 키워드는 다음 예와 같이 쿼리 결과를 내림차순으로 정렬합니다.

SELECT au_lname,au_fname FROM 작성자

WHERE au_lname=”Ringer” ORDER BY au_lname ,au_fname DESC

이 쿼리는 작성자 테이블에서 Ringer라는 이름의 모든 작성자 레코드를 검색합니다. 주문하다 BY 절은 작성자의 이름과 성을 기준으로 쿼리 결과를 내림차순으로 정렬합니다. 결과는 다음과 같습니다
:

au_lname au_fname

……………………………………………………………….

벨소리 앤

링거 알버트

(2행) affectec)

이 표에서는 Anne이라는 성이 Albert라는 성 앞에 나타납니다. 작성자 이름은 내림차순으로 표시됩니다.

숫자 필드를 기준으로 쿼리 결과를 정렬할 수도 있습니다. 예를 들어 모든 책의 가격을 내림차순으로 검색하려면 다음 SQL 쿼리를 사용할 수 있습니다.

SELECT 가격 FROM 타이틀 ORDER BY 가격 DESC

이 SELECT 문은 테이블에서 모든 도서의 가격을 검색하여 결과를 표시할 때 가격이 낮은 도서가 먼저 표시되고 가격이 높은 도서가 마지막에 표시됩니다.

경고:

특별히 필요한 경우가 아니면 쿼리 결과를 정렬하지 마세요. 서버가 이 작업을 완료하는 데 약간의 노력이 필요하기 때문입니다. 즉, ORDER를 사용하면 에 의해
절의 SELECT 문은 일반 SELECT 문보다 실행 시간이 오래 걸립니다.

다른 레코드 검색

테이블의 동일한 열에 중복된 값이 있을 수 있습니다. 예를 들어, 데이터베이스 pub의 작성자 테이블에 Ringer라는 두 명의 작성자가 있습니다. 이 테이블에서
이름을 모두 가져오면 Ringer라는 이름이 두 번 표시됩니다.

특정 상황에서는 테이블에서 고유한 값을 검색하는 것에만 관심이 있을 수 있습니다. 필드에 중복된 값이 있는 경우 각 값을 한 번만 선택하도록 할 수 있습니다.
DISTINCT 키워드를 사용하여 이 작업을 수행할 수 있습니다.

SELCET WHERE 작성자와 구별되는 au_lname au_lname="Ringer"

이 SELECT 문이 실행되면 하나의 레코드만 반환됩니다. SELECT 문에 DISTINCT 키워드를 포함하면 모든 중복 값을 제거할 수 있습니다. 예를 들어
에 뉴스 그룹에 게시된 정보에 대한 테이블이 있고 이 뉴스 그룹에 정보를 게시한 모든 사람의 이름을 검색하려는 경우 DISTINCT 키워드를 사용할 수 있습니다. 각 사용자
의 이름은 한 번만 지정되지만 일부 사용자는 두 개 이상의 게시물을 게시합니다.

경고:

주문 좋아요 BY 절과 마찬가지로 서버가 다른 값을 반환하도록 강제하는 것도 운영 오버헤드를 증가시킵니다. Blessing은 이 작업을 완료하는 데 시간이 좀 걸렸습니다. 따라서
필요하지 않은 경우에는 DISTINCT 키워드를 사용하지 마세요.

새 테이블 만들기

앞서 언급했듯이 데이터베이스의 모든 데이터는 테이블에 저장됩니다. 데이터 테이블에는 행과 열이 포함됩니다. 열은 테이블의 데이터 유형을 결정합니다. 행에는 실제 데이터가 포함됩니다.

예를 들어 데이터베이스 pubs의 테이블 작성자에는 9개의 필드가 있습니다. 필드 중 하나의 이름은 au_lname이며 작성자 이름 정보를 저장하는 데 사용됩니다. 이 테이블에 새 작성자가 추가될 때마다 작성자의 이름이 이 필드에 추가되어 새 레코드가 생성됩니다.

필드를 정의하여 새 테이블을 만들 수 있습니다. 각 필드에는 이름과 특정 데이터 유형이 있습니다(데이터 유형은 나중에 "필드 유형" 섹션에 설명되어 있음). 예를 들어, au_lname 필드는 문자 데이터를 저장합니다. 필드에는 다른 유형의 데이터도 저장할 수 있습니다.

SQL 사용 서버, 새 테이블을 만드는 방법에는 여러 가지가 있습니다. SQL 문을 실행하거나 SQL 트랜잭션 관리자(SQL Enterprise)를 사용할 수 있습니다. Manager)를 사용하여 새 테이블을 생성합니다. 다음 섹션에서는 SQL 문을 사용하여 새 테이블을 만드는 방법을 알아봅니다.


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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.