SQL 언어를 사용하면 무엇이 가능합니까? SQL: 데이터베이스 작업을 위한 범용 언어

안녕하세요 여러분! 오늘은 특히 초보자를 위해 가능한 한 간단하게 설명하려고 노력할 것입니다. SQL은 무엇입니까?, 그리고 그것이 필요한 것. 이 자료를 통해 데이터베이스와 데이터베이스 관리 시스템이 무엇인지, SQL 언어의 방언이 무엇인지 배울 수 있습니다. 전체 기사가 SQL이 무엇인지 원활하게 이해할 수 있도록 구성되어 있기 때문입니다.

이미 SQL이 일종의 데이터베이스와 관련된 일종의 언어라고 상상하셨을 것입니다. 하지만 SQL이 무엇인지 더 잘 이해하려면 SQL의 용도, 이 언어의 용도, 즉 그것의 목적.

따라서 먼저 SQL 언어의 목적을 명확하게 하고 일반적으로 SQL 언어가 필요한 이유를 설명하는 몇 가지 소개 정보를 제공하겠습니다.

데이터베이스란 무엇인가

그리고 데이터베이스는 일반적으로 특정 방식으로 저장되어 사용할 수 있는 정보 집합으로 이해된다는 사실부터 시작하겠습니다. 그러나 일부 자동화된 데이터베이스에 대해 이야기한다면 물론 소위 관계형 데이터베이스에 대해 이야기하는 것입니다.

관계형 데이터베이스– 특정 관계로 상호 연결된 정렬된 정보입니다. 이 모든 정보가 담긴 표 형태로 제공됩니다. 그리고 이것은 매우 중요합니다. 이제 단순히 테이블 형태의 최신 데이터베이스를 상상해야 하기 때문입니다. SQL의 맥락에서 말하기), 즉. 일반적인 의미에서 데이터베이스는 테이블의 모음입니다. 물론 이는 매우 단순화된 정의이지만 데이터베이스에 대한 실질적인 이해를 제공합니다.

SQL이란?

데이터베이스의 정보는 구성되어 특정 항목으로 구분되어 테이블 형식으로 표시되므로 필요한 정보에 쉽게 접근하고 찾을 수 있습니다.

그리고 여기서 주요 질문이 발생합니다. 어떻게 그녀에게 연락하여 필요한 정보를 얻을 수 있습니까?

이를 위해서는 특별한 도구가 있어야 하며 여기서는 데이터를 조작하는 도구인 SQL이 도움이 됩니다( 생성, 검색, 삭제 등) 데이터베이스에 있습니다.

SQL (구조화된 쿼리 언어)는 특수 쿼리를 작성하는 데 사용되는 구조화된 쿼리 언어입니다( 소위 SQL 문) 데이터베이스에서 데이터를 얻거나 해당 데이터를 조작할 목적으로 데이터베이스에 저장됩니다.

데이터베이스, 특히 관계형 모델은 서로 다른 개체를 하나의 전체로 결합하는 집합 이론을 기반으로 한다는 점도 주목할 가치가 있습니다. 데이터베이스에서 하나의 전체는 테이블을 의미합니다. 이는 SQL 언어가 특히 데이터 세트와 함께 작동하기 때문에 중요합니다. 테이블과 함께.

주제에 대한 유용한 자료:

  • Microsoft SQL Server에서 데이터베이스 생성 - 초보자를 위한 지침;
  • Microsoft SQL Server의 테이블에 데이터 추가 - INSERT INTO 문.

DBMS란?

데이터베이스가 테이블에 저장되는 일종의 정보라면 물리적으로 어떤 모습일까요?라는 질문이 있을 수 있습니다. 전체적으로 어떻게 볼까요?

간단히 말해서 이것은 특별한 형식으로 생성된 파일일 뿐이며 데이터베이스의 모습은 바로 이렇습니다( 대부분의 경우 데이터베이스에는 여러 파일이 포함되어 있지만 지금은 이 수준에서는 그다지 중요하지 않습니다.).

계속해서 데이터베이스가 특수 형식의 파일인 경우 이를 생성하거나 여는 방법은 무엇입니까? 그리고 여기서 어려움이 발생합니다. 왜냐하면 도구 없이도 그러한 파일을 생성하기 때문입니다. 관계형 데이터베이스는 불가능합니다. 이를 위해서는 데이터베이스를 생성하고 관리할 수 있는, 즉 이러한 파일을 사용할 수 있는 특별한 도구가 필요합니다.

바로 이 악기다. DBMS는 데이터베이스 관리 시스템이다, 줄여서 DBMS라고 합니다.

어떤 종류의 DBMS가 있나요?

실제로 다양한 DBMS가 있으며, 일부는 유료이고 모든 기능을 갖춘 버전에 대해 이야기하면 많은 비용이 들지만, 말하자면 가장 "멋진" DBMS에도 무료 버전이 있습니다. , 그런데 학습에 아주 좋습니다.

그 중에서도 기능과 인기 측면에서 다음 시스템을 구별할 수 있습니다.

  • 마이크로소프트 SQL 서버 Microsoft의 데이터베이스 관리 시스템입니다. 기업 부문, 특히 대기업에서 매우 인기가 있습니다. 이는 단순한 DBMS가 아닙니다. 이는 데이터를 저장 및 수정하고, 분석하고, 이 데이터를 보호하는 등의 작업을 수행할 수 있는 전체 애플리케이션 세트입니다.
  • 오라클 데이터베이스오라클의 데이터베이스 관리 시스템입니다. 대기업들 사이에서도 인기가 많은 DBMS이기도 합니다. 기능과 기능 측면에서 Oracle Database와 Microsoft SQL Server는 유사하므로 서로에 대한 심각한 경쟁자이며 모든 기능을 갖춘 버전의 가격은 매우 높습니다.
  • MySQL역시 Oracle의 데이터베이스 관리 시스템이지만 무료로 배포됩니다. MySQL은 인터넷 부문에서 매우 폭넓은 인기를 얻었습니다. 인터넷의 거의 모든 사이트는 MySQL을 기반으로 실행됩니다. 즉, 인터넷의 대부분의 사이트는 이 DBMS를 데이터 저장 수단으로 사용합니다.
  • 포스트그레SQL– 이 데이터베이스 관리 시스템도 무료이며 매우 인기 있고 기능적입니다.

주제에 대한 유용한 자료:

  • Microsoft SQL Server 2016 Express 설치 - Windows에 Microsoft SQL Server 무료 버전을 설치하는 예입니다.
  • Ubuntu Server에 Microsoft SQL Server 2017 Express 설치 - Linux에 Microsoft SQL Server 무료 버전을 설치하는 예입니다.
  • Windows에 PostgreSQL 11 설치 - Windows에 PostgreSQL 설치 예;
  • Windows에 MySQL 설치 - Windows에 MySQL을 설치하는 예;
  • Linux Mint에서 MySQL 설치 및 구성 - Linux에 MySQL을 설치하는 예입니다.
  • Oracle Database Express Edition 11g 설치 - Windows에 Oracle 무료 버전을 설치하는 예( 오래전에 쓴 글이지만 그래도 유용할 것 같아요).

SQL 방언(SQL 확장)

SQL 언어는 표준이며 모든 관계형 데이터베이스에서 구현되지만 각 DBMS에는 이 표준의 확장이 있고 데이터 작업을 위한 자체 언어가 있으며 일반적으로 SQL 방언이라고 합니다. SQL은 본격적인 프로그래밍에 대한 더 많은 기회를 제공합니다. 또한 이러한 내부 언어를 사용하면 시스템 정보를 얻고 SQL 쿼리를 단순화할 수 있습니다.

다음은 몇 가지 SQL 방언입니다.

  • Transact-SQL(약어로 T-SQL) – Microsoft SQL Server에서 사용됩니다.
  • PL/SQL(절차적 언어/구조적 쿼리 언어) – Oracle 데이터베이스에서 사용됩니다.
  • PL/pgSQL(절차적 언어/PostGres 구조적 쿼리 언어) – PostgreSQL에서 사용됩니다.

따라서 SQL 문을 작성하는 데 사용할 확장은 DBMS에 따라 다릅니다. 예를 들어 간단한 SQL 쿼리에 대해 이야기하면

상품에서 ProductId, ProductName을 선택하세요.

물론 SQL이 표준이기 때문에 이러한 쿼리는 모든 DBMS에서 작동합니다.

메모! 이는 하나의 테이블에서 데이터를 검색하여 두 개의 열을 출력하는 간단한 SQL 쿼리입니다.

하지만 프로그래밍을 하게 된다면 DBMS의 내부 기능을 모두 활용하세요. 절차 개발, 내장 기능 사용, 시스템 정보 획득 등), 그런 다음 SQL의 특정 방언을 배우고 이 방언을 사용하는 DBMS에서 그에 따라 연습해야 합니다. 이는 많은 구성의 구문이 다르며 기능 등도 다르기 때문에 중요합니다. 예를 들어 특정 SQL 확장의 기능을 사용하는 SQL 문을 다른 DBMS에서 실행하는 경우 물론 그러한 명령은 실행되지 않습니다.

예를 들어 저는 개인적으로 T-SQL 언어를 전문으로 하고 있으며 그에 따라 Microsoft SQL Server를 8년 넘게 사용해 왔습니다!

물론, 저는 다른 DBMS로도 작업했지만, 한때는 두 개의 애플리케이션을 지원했는데, 그 중 하나는 PostgreSQL에서 작동했고, 두 번째는 아마도 이미 분명했을 것입니다. Microsoft SQL Server에서 작동했습니다.

저는 다른 많은 사람들처럼 웹사이트와 서비스를 유지하는 일의 일환으로 MySQL을 사용해 일했습니다. 글쎄요, 저는 다른 프로젝트의 일부로 Oracle Database를 사용하여 작업해야 했습니다.

T-SQL 언어에 대해 축적된 경험을 모두 한곳에 모아 책으로 엮었으니, T-SQL(Transact-SQL) 언어를 배우고 싶은 마음이 있다면 내 책을 읽어보는 것을 추천한다.

  • T-SQL 프로그래머의 길 - 초보자를 위한 Transact-SQL 언어에 대한 자습서입니다. 여기에서 나는 언어의 모든 구성에 대해 자세히 설명하고 단순한 것에서 복잡한 것으로 일관되게 이동합니다. T-SQL 언어의 포괄적인 학습에 적합합니다.
  • T-SQL 프로그래밍 스타일 - 올바른 코딩의 기본입니다. T-SQL 코드의 품질 향상을 목표로 한 책( 이미 T-SQL 언어에 익숙한 사람들을 위한 것입니다. 최소한의 기본은 알고 있다).

이제 SQL이 무엇이고 무엇이 필요한지 이해하시기 바랍니다. 다음 자료에서는 SQL 쿼리를 생성하는 방법, 각 DBMS마다 고유한 속성이 있기 때문에 이를 위해 어떤 도구를 사용해야 하는지, 어떤 DBMS에 사용해야 하는지 알려 드리겠습니다. 도구이므로 소셜 네트워크의 내 그룹에 새 기사가 공개되면 팔로우하세요.

모든 프로그래머가 알아야 할 기본 SQL 명령

SQL 또는 구조적 쿼리 언어는 관계형 데이터베이스 시스템(RDBMS)에서 데이터를 관리하는 데 사용되는 언어입니다. 이 기사에서는 모든 프로그래머가 익숙해야 하는 일반적으로 사용되는 SQL 명령을 다룰 것입니다. 이 자료는 면접 전에 SQL에 대한 지식을 복습하려는 사람들에게 이상적입니다. 이를 수행하려면 기사에 제공된 예를 살펴보고 데이터베이스를 쌍으로 연구했다는 점을 기억하십시오.

일부 데이터베이스 시스템에서는 각 명령문 끝에 세미콜론이 필요합니다. 세미콜론은 SQL의 모든 문의 끝을 가리키는 표준 포인터입니다. 예제에서는 MySQL을 사용하므로 세미콜론이 필요합니다.

예시를 위한 데이터베이스 설정

팀의 작업 방식을 보여주는 데이터베이스를 만듭니다. 작업하려면 DLL.sql 및 InsertStatements.sql이라는 두 파일을 다운로드해야 합니다. 그런 다음 터미널을 열고 다음 명령을 사용하여 MySQL 콘솔에 로그인합니다(이 문서에서는 MySQL이 시스템에 이미 설치되어 있다고 가정합니다).

MySQL -u 루트 -p

그런 다음 비밀번호를 입력하세요.

다음 명령을 실행하십시오. 데이터베이스를 "대학"이라고 부르겠습니다.

데이터베이스 대학 생성; USE 대학; 원천 ; 원천

데이터베이스 작업 명령

1. 사용 가능한 데이터베이스 보기

데이터베이스 표시;

2. 새 데이터베이스 생성

데이터베이스 생성;

3. 사용할 데이터베이스 선택

사용 ;

4. .sql 파일에서 SQL 명령 가져오기

원천 ;

5. 데이터베이스 삭제

데이터베이스 삭제 ;

테이블 작업

6. 데이터베이스에서 사용 가능한 테이블 보기

테이블 표시;

7. 새 테이블 만들기

테이블 만들기 ( , , 기본 키( ), 외래 키( ) 참고자료 ());

CREATE TABLE 사용 시 무결성 제약 조건

테이블의 특정 열에 대한 제한 사항을 만들어야 할 수도 있습니다. 테이블을 생성할 때 다음 제한 사항을 설정할 수 있습니다.

  • 테이블 셀은 NULL 값을 가질 수 없습니다.
  • 기본 키 - PRIMARY KEY (col_name1, col_name2, ...) ;
  • 외래 키 - FOREIGN KEY (col_namex1, …, col_namexn) REFERENCES table_name(col_namex1, …, col_namexn) .

기본 키를 두 개 이상 지정할 수 있습니다. 이 경우 복합 기본 키를 얻게 됩니다.

테이블 "강사"를 생성합니다:

CREATE TABLE 강사 (ID CHAR(5), 이름 VARCHAR(20) NOT NULL, dept_name VARCHAR(20), 급여 NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES 부서(dept_name));

8. 테이블 정보

다음 명령을 사용하면 테이블 열에 대한 다양한 정보(값 유형, 키 여부)를 볼 수 있습니다.

설명하다 ;

9. 테이블에 데이터 추가하기

에 집어 넣다 (, , , ...) 값( , , , …);

테이블의 각 열에 데이터를 추가할 때 열 이름을 지정할 필요가 없습니다.

에 집어 넣다 값( , , , …);

10. 테이블 데이터 업데이트

업데이트 세트 = , = , ... 어디 ;

11. 테이블에서 모든 데이터 제거

다음에서 삭제 ;

12. 테이블 삭제

드롭 테이블 ;

쿼리 생성 명령

13. 선택

SELECT는 특정 테이블에서 데이터를 검색하는 데 사용됩니다.

선택하다 , , … 에서 ;

다음 명령은 테이블의 모든 데이터를 표시할 수 있습니다.

선택 *에서 ;

14. 구별 선택

테이블 열에 중복된 데이터가 포함될 수 있습니다. 중복되지 않은 데이터만 검색하려면 SELECT DISTINCT를 사용하세요.

구별 선택 , , … 에서 ;

15. 어디서

SELECT에서 WHERE 키워드를 사용하여 쿼리에 조건을 지정할 수 있습니다.

선택하다 , , … 에서 어디 ;

요청에 다음 조건을 지정할 수 있습니다.

  • 텍스트 비교;
  • 수치 비교;
  • 논리 연산자 AND(and), OR(or) 및 NOT(부정).

다음 명령을 시도해 보세요. WHERE에 지정된 조건에 주의하세요.

SELECT * FROM 코스 WHERE dept_name='Comp. 과학.'; SELECT * FROM 코스 WHERE 학점>3; SELECT * FROM 코스 WHERE dept_name="Comp. Sci." AND 학점>3;

16. 그룹별

GROUP BY 연산자는 출력 값을 그룹화하기 위해 COUNT, MAX, MIN, SUM 및 AVG와 같은 집계 함수와 함께 사용되는 경우가 많습니다.

선택하다 , , … 에서 그룹 기준 ;

각 교수진의 강좌 수를 표시해 보겠습니다.

SELECT COUNT(course_id), dept_name FROM 강좌 GROUP BY dept_name;

17. 가지고 있는 것

WHERE는 집계 함수와 함께 사용할 수 없기 때문에 HAVING 키워드가 SQL에 추가되었습니다.

선택하다 , , ... 에서 그룹 기준 가지고 있는

둘 이상의 코스가 있는 교수진 목록을 표시해 보겠습니다.

SELECT COUNT(course_id), dept_name FROM 강좌 GROUP BY dept_name HAVING COUNT(course_id)>1;

18. 주문

ORDER BY는 쿼리 결과를 내림차순 또는 오름차순으로 정렬하는 데 사용됩니다. ORDER BY는 ASC 또는 DESC를 지정하지 않는 한 오름차순으로 정렬합니다.

선택하다 , , … 에서 주문 , , ...ASC|DESC;

학점 오름차순 및 내림차순으로 강좌 목록을 표시해 보겠습니다.

SELECT * 코스에서 ORDER BY 학점; SELECT * 코스에서 ORDER BY 학점 DESC;

19. 사이

BETWEEN은 특정 범위에서 데이터 값을 선택하는 데 사용됩니다. 날짜뿐만 아니라 숫자 및 텍스트 값도 사용할 수 있습니다.

선택하다 , , … 에서 어디 사이 그리고 ;

급여가 50,000보다 크고 100,000보다 작은 강사 목록을 표시해 보겠습니다.

SELECT * 급여가 50000에서 100000 사이인 강사로부터;

20. 좋아요

LIKE 연산자는 WHERE에서 유사한 값에 대한 검색 패턴을 지정하는 데 사용됩니다.

LIKE에는 두 가지 자유 연산자가 사용됩니다.

  • %(없음, 하나 이상의 문자);
  • _(한 글자).
선택하다 , , … 에서 어디 좋다 ;

이름에 "to"가 포함된 강좌 목록과 이름이 "CS-"로 시작하는 강좌 목록을 표시해 보겠습니다.

SELECT * FROM 코스 WHERE 제목 LIKE '%to%'; SELECT * FROM 코스 WHEREcourse_id LIKE "CS-___";

21. 에

IN을 사용하면 WHERE 절에 여러 값을 지정할 수 있습니다.

선택하다 , , … 에서 어디 안에 ( , , …);

Comp 전공 학생의 목록을 표시해 보겠습니다. 과학, 물리학, 전자 영어:

SELECT * FROM 학생 WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. 가입

JOIN은 두 개 이상의 테이블 내의 공통 속성을 사용하여 연결하는 데 사용됩니다. 아래 이미지는 SQL에 조인하는 다양한 방법을 보여줍니다. 왼쪽 외부 조인과 오른쪽 외부 조인의 차이점에 유의하세요.

선택하다 , , … 에서 가입하다 = ;

실시예 1

모든 강좌 목록과 해당 학부에 대한 관련 정보가 표시됩니다.

SELECT * FROM 코스 JOIN 학과 ONcourse.dept_name=department.dept_name;

실시예 2

모든 필수 과정 목록과 이에 대한 세부 정보가 표시됩니다.

SELECT prereq.course_id, 제목, dept_name, 학점, prereq_id FROM prereq LEFT OUTER JOIN 강좌 ON prereq.course_id=course.course_id;

실시예 3

필수 여부에 관계없이 모든 강좌 목록이 표시됩니다.

SELECT Course.course_id, 제목, dept_name, 학점, prereq_id FROM prereq 오른쪽 외부 JOIN 코스 ON prereq.course_id=course.course_id;

23. 보기

뷰는 표현식을 실행한 결과 생성되는 가상의 SQL 테이블입니다. 행과 열을 포함하며 일반 SQL 테이블과 매우 유사합니다. 보기에는 항상 데이터베이스의 최신 정보가 표시됩니다.

창조

보기 만들기 선택으로 , , … 에서 어디 ;

제거

드롭뷰 ;

3학점이 있는 강좌로 구성된 뷰를 만들어 보겠습니다.

24. 집계 함수

이러한 함수는 문제의 데이터와 관련된 집계 결과를 얻는 데 사용됩니다. 다음은 일반적으로 사용되는 집계 함수입니다.

  • COUNT(col_name) - 행 수를 반환합니다.
  • SUM(col_name) - 이 열에 있는 값의 합계를 반환합니다.
  • AVG(col_name) - 주어진 열의 평균 값을 반환합니다.
  • MIN(col_name) - 주어진 열의 가장 작은 값을 반환합니다.
  • MAX(col_name) - 주어진 열의 가장 큰 값을 반환합니다.

25. 중첩된 하위 쿼리

중첩 하위 쿼리는 다른 쿼리 내에 중첩된 SELECT , FROM 및 WHERE 절을 포함하는 SQL 쿼리입니다.

2009년 가을과 2010년 봄에 진행된 강좌를 찾아보겠습니다.

SELECT DISTINCTcourse_id FROM 섹션 WHERE 학기 = '가을' AND 연도= 2009 AND Course_id IN (SELECT Course_id FROM 섹션 WHERE 학기 = '봄' AND 연도= 2010);

공부를 시작하려면 SQL먼저 데이터베이스가 무엇인지 이해해야 합니다.

1. 데이터베이스란?

데이터베이스(DB)- 논리적으로 관련된 데이터의 순서 집합으로, 함께 사용되고 한 곳에 저장됩니다. 한마디로 가장 단순한 DB이것은 다양한 유형의 정보가 저장되는 행과 열로 구성된 일반 테이블입니다(예: 뛰어나다). 그래서 종종, 함께 DB떼어놓을 수 없게 묶다 데이터베이스 관리 시스템(DBMS), 작업을 위한 기능을 제공합니다. DB. 언어 SQL단지 일부일 뿐이야 DBMS, 에서 정보를 관리합니다. DB. 우리는 계산할 것이다 DB별도의 파일에 저장되는 일반 테이블 세트입니다.

2. SQL이란 무엇인가

그럼 다음으로 넘어 갑시다 SQL.

SQL명령이 거의 없고 누구나 배울 수 있는 간단한 프로그래밍 언어입니다. 다음을 의미합니다. 구조화된 쿼리 언어함께 작동하도록 설계된 구조화된 쿼리 언어입니다. DB즉, 데이터를 수신/추가/변경하고, 많은 양의 정보를 처리하고 구조화되고 그룹화된 정보를 빠르게 얻을 수 있습니다. 다양한 언어 옵션이 있습니다 SQL, 그러나 모두 동일한 기본 명령을 가지고 있습니다. 또한 많은 DBMS, 그러나 주요 내용은 다음과 같습니다. Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL 및 Sybase Adaptive Server SQL. 함께 일하다 SQL코드, 위 중 하나가 필요합니다 DBMS. 훈련을 위해 우리는 마이크로소프트 액세스 DBMS.

SQL다른 프로그래밍 언어와 마찬가지로 여기에는 데이터 검색을 위한 지침이 제공되는 자체 명령(연산자)이 있습니다. 운영자가 어떻게 작동하는지 보려면 SQL, 우리는 상상의 DB판매된 제품에 대한 정보와 함께.

표준 SQL 쿼리 언어를 사용한 데이터베이스 개발에 오신 것을 환영합니다. 데이터베이스 관리 시스템(DBMS)에는 다양한 하드웨어 플랫폼에서 실행되는 많은 도구가 있습니다.

  • 관계형 데이터베이스 기본

    이 장에서는... | 정리정보 | 데이터베이스란 무엇입니까 | DBMS란 무엇입니까 | 데이터베이스 모델 비교 | 관계형 데이터베이스란?

  • SQL 기초

    이 장에서는... | SQL이란 무엇입니까 | SQL에 대한 오해 | 다양한 SQL 표준 살펴보기 | 표준 SQL 명령 및 예약어 소개 | 숫자, 기호, 날짜, 시간 및 기타 유형의 데이터 표현 | 정의되지 않은 값 및 제한사항

  • SQL 구성 요소

    이 장에서는... | 데이터베이스 생성 | 데이터 처리 | 데이터베이스 보호 | SQL은 관계형 데이터베이스에서 데이터를 생성하고 유지하도록 특별히 설계된 언어입니다. 그리고 그러한 데이터베이스를 관리하기 위한 시스템을 공급하는 회사가 자체적으로 SQL 구현을 제공하더라도 언어 자체의 개발은 ISO/ANSI 표준에 따라 결정되고 제어됩니다.

  • 간단한 데이터베이스 생성 및 유지 관리

    이 장에서는... | RAD 도구를 사용하여 데이터베이스에서 테이블을 생성, 수정 및 삭제합니다. | SQL을 사용하여 데이터베이스에서 테이블을 생성, 수정 및 삭제합니다. | 데이터베이스를 다른 DBMS로 이전합니다.

  • 다중 테이블 관계형 데이터베이스 만들기

    이 장에서는... | 데이터베이스에 무엇이 있어야 합니까 | 데이터베이스 요소 간의 관계 정의 | 키를 사용하여 테이블 연결 | 데이터 무결성 설계 | 데이터베이스 정규화 | 이 장에서는 다중 테이블 데이터베이스를 생성하는 예를 제시합니다.

  • 데이터베이스에서 데이터 조작

    이 장에서는... | 데이터 작업 | 테이블에서 필요한 데이터 얻기 | 하나 또는 여러 테이블에서 선택한 정보 표시 | 테이블 및 뷰의 정보 업데이트 | 테이블에 새 행 추가

  • 가치 정의

    이 장에서는... | 변수를 사용하여 중복 코딩 줄이기 | 데이터베이스 테이블 필드에 있는 자주 요청되는 정보 검색 | 간단한 값을 결합하여 복합 표현식 만들기 | 이 책에서는 데이터베이스 구조가 데이터베이스 무결성을 유지하는 데 얼마나 중요한지 지속적으로 강조합니다.

  • 의미가 있는 복잡한 표현

    이 장에서는... | 조건부 사례문 사용 | 한 데이터 유형에서 다른 데이터 유형으로 데이터 항목 변환 | 레코드 값 표현식으로 데이터 입력 시간 절약 | 2장에서는 SQL을 데이터 하위 언어라고 불렀습니다.

  • 필요한 데이터에 대한 "타겟팅"

    이 장에서는... | 필수 테이블 지정 | 필요한 줄을 다른 모든 줄과 분리하기 | 효과적인 Where 절 만들기 | Null 값으로 작업하는 방법 ​​| 논리 연결을 사용하여 복합 표현식 만들기 | 쿼리 결과 출력을 컬럼별로 그룹화

  • 관계 연산자

    이 장에서는... | 유사한 구조를 가진 테이블 조인 | 구조가 서로 다른 테이블 병합 | 여러 테이블에서 필요한 데이터 가져오기 | SQL은 관계형 데이터베이스에서 사용되는 쿼리 언어입니다.

  • 중첩 쿼리 사용

    이 장에서는... | 단일 SQL 문으로 여러 테이블에서 데이터 검색 | 한 테이블의 값을 다른 테이블의 값 세트와 비교하여 데이터 항목 찾기 | 한 테이블의 값을 다른 테이블의 select 문을 사용하여 선택한 단일 값과 비교하여 데이터 항목 찾기

  • 재귀 쿼리

  • 데이터베이스 보안

    이 장에서는... | 데이터베이스 테이블에 대한 액세스 제어 | 접근권한 부여 여부 결정 | 액세스 권한 부여 | 접근권한 철회 | 무단 접근 시도 방지

  • 데이터 보호

    이 장에서는... | 데이터베이스 손상을 방지하는 방법 | 동시작업으로 인한 문제 | SQL 엔진을 사용하여 이러한 문제 해결 | set transaction 명령을 사용하여 필요한 보안 수준 설정

  • 애플리케이션에서 SQL 사용

    이 장에서는... | 애플리케이션의 SQL | 절차적 언어로 SQL 공유 ​​| 비호환성을 방지하는 방법 | 절차 코드에 삽입된 SQL 코드 | 절차 코드에서 SQL 모듈 호출 | RAD 도구에서 SQL 호출 | 이전 장에서는 주로 SQL 명령을 개별적으로 살펴보았습니다. 데이터 처리 작업이 공식화되었고 이에 대한 SQL 쿼리가 생성되었습니다.

  • ODBC 및 JDBC

    이 장에서는... | ODBC 정의 | ODBC 부품 설명 | 클라이언트/서버 환경에서 ODBC 사용 | 인터넷에서 ODBC 사용 | 로컬 네트워크에서 ODBC 사용 | JDBC 사용 | 매년 한 조직 또는 여러 다른 조직의 컴퓨터가 점점 더 서로 연결되고 있습니다. 따라서 네트워크를 통해 데이터베이스에 대한 공유 액세스를 설정해야 합니다.

  • SQL:2003 및 XML

    이 장에서는... | XML과 함께 SQL 사용 | XML, 데이터베이스 및 인터넷 | SQL:2003의 가장 중요한 새로운 기능 중 하나는 XML(Extensible Markup Language) 파일에 대한 지원입니다. XML(Extensible Markup Language) 파일은 서로 다른 플랫폼 간의 데이터 교환을 위한 보편적인 표준이 되고 있습니다.

  • 커서

    이 장에서는... | 선언문에서 커서 범위 정의 | 커서 열기 | 행별 데이터 샘플링 | 커서 닫기 | SQL은 테이블의 모든 행의 데이터에 대해 동시에 작업을 수행하는 반면 절차 언어는 데이터를 행 단위로 처리한다는 점에서 가장 널리 사용되는 대부분의 프로그래밍 언어와 다릅니다.

  • 우리 잡지의 6호와 7호에 게재된 이 시리즈의 이전 두 기사에서 우리는 ADO, BDE 및 그 대안을 포함한 다양한 데이터 액세스 메커니즘을 살펴보았습니다. 이제 우리는 특정 "DBMS - 개발 도구" 쌍에 대한 데이터 액세스 기술을 선택하는 방법을 알았습니다.

    데이터에 접근하는 기술을 갖추게 되면서 마침내 데이터와 메타데이터 자체를 어떻게 조작해야 하는지 생각해 볼 수 있게 되었습니다. 조작 방법은 특정 DBMS(예: 데이터베이스 개체에 액세스하기 위해 이 DBMS의 클라이언트 부분에 있는 개체 사용) 또는 특정 데이터 액세스 메커니즘에 따라 다를 수 있습니다. 그럼에도 불구하고 거의 모든 서버 관계형 DBMS와 가장 보편적인 데이터 액세스 메커니즘(데스크톱 DBMS와 함께 사용되는 경우 포함)에서 지원되는 다소 보편적인 데이터 조작 방법이 있습니다. 이 방법은 SQL 언어(Structured Query Language)를 사용하는 것입니다. 아래에서는 이 언어의 목적과 기능을 살펴보고, 이를 사용하여 데이터를 추출 및 요약하고, 기록을 추가, 삭제 및 수정하고, 무단 액세스로부터 데이터를 보호하고, 데이터베이스를 만드는 방법도 알아봅니다. SQL에 대한 보다 자세한 연구를 위해서는 Martin Graber의 저서 "Introduction to SQL"(M., Laurie, 1996) 및 "SQL. 참조 가이드"(M., Lori, 1997).

    소개

    구조적 쿼리 언어(Structured Query Language)는 관계형 DBMS에서 데이터를 관리하는 데 사용되는 비절차적 언어입니다. "비절차적"이라는 용어는 주어진 언어가 데이터로 수행해야 할 작업을 공식화할 수 있지만 해당 언어가 수행되어야 하는 방법을 정확하게 지시할 수는 없음을 의미합니다. 즉, 이 언어에는 레이블, 루프 연산자, 조건부 점프 등과 같은 알고리즘 구성이 없습니다.

    SQL 언어는 관계형 데이터를 조작하기 위한 언어를 만드는 것이 목표였던 IBM 연구 프로젝트의 결과로 70년대 초반에 만들어졌습니다. 원래는 SEQUEL(Structured English Query Language)이라고 불렸고, 그 다음에는 SEQUEL/2, 그 다음에는 간단히 SQL이라고 불렸습니다. 공식 SQL 표준은 1986년 ANSI(American National Standards Institute, USA)에서 발표되었습니다(현재 가장 일반적으로 사용되는 SQL 구현입니다). 이 표준은 1989년과 1992년에 확장되었으므로 최신 SQL 표준을 SQL92라고 합니다. 현재 일부 객체 지향 확장이 포함된 SQL3 표준에 대한 작업이 진행 중입니다.

    ANSI 준수에는 초급, 중급, 완전의 세 가지 수준이 있습니다. IBM, Informix, Microsoft, Oracle 및 Sybase와 같은 많은 서버 DBMS 공급업체는 ANSI 표준(최소한 표준 준수의 초기 수준 충족)을 기반으로 하고 DBMS에 특정한 일부 확장을 포함하는 자체 SQL 구현을 사용합니다.

    특정 DBMS에 사용되는 SQL 버전의 호환성에 대한 자세한 내용은 해당 DBMS와 함께 제공되는 설명서에서 확인할 수 있습니다.

    SQL 작동 방식

    SQL이 어떻게 작동하는지 살펴보겠습니다. 일종의 DBMS를 이용해 관리되는 데이터베이스가 있다고 가정해보자. 여기에서 데이터를 추출하려면 SQL로 작성된 쿼리가 사용됩니다. DBMS는 이 요청을 처리하고 요청된 데이터를 검색하여 반환합니다. 이 과정은 도 1에 개략적으로 도시되어 있다. 1 .

    나중에 살펴보겠지만 SQL을 사용하면 데이터를 검색할 수 있을 뿐만 아니라 데이터 구조를 정의하고, 데이터를 추가 및 삭제하고, 데이터에 대한 액세스를 제한하거나 부여하고, 참조 무결성을 유지할 수 있습니다.

    SQL 자체는 DBMS도 아니고 별도의 제품도 아니라는 점을 참고하시기 바랍니다. 이는 DBMS와 상호 작용하는 데 사용되는 언어이며 어떤 의미에서는 DBMS의 필수 부분입니다.

    데이터 정의 언어(DDL)

    데이터 정의 언어에는 데이터베이스와 그 안에 있는 개체(테이블, 뷰 등)를 생성, 수정 및 삭제할 수 있는 연산자가 포함되어 있습니다. 이러한 연산자는 표에 나열되어 있습니다. 1.

    1 번 테이블

    운영자

    설명

    데이터베이스에 새 테이블을 추가하는 데 사용됩니다.

    데이터베이스에서 테이블을 제거하는 데 사용됩니다.

    기존 테이블의 구조를 변경하는 데 사용됩니다.

    데이터베이스에 새 보기를 추가하는 데 사용됩니다.

    데이터베이스에서 뷰를 제거하는 데 사용됩니다.

    특정 필드에 대한 색인을 생성하는 데 사용됩니다.

    기존 인덱스를 삭제하는 데 사용됩니다.

    데이터베이스에 새 스키마를 생성하는 데 사용됩니다.

    데이터베이스에서 스키마를 제거하는 데 사용됩니다.

    새 도메인을 만드는 데 사용됩니다.

    도메인을 재정의하는 데 사용됩니다.

    데이터베이스에서 도메인을 제거하는 데 사용됩니다.

    데이터 조작 언어(DML)

    데이터 조작 언어에는 데이터를 선택, 추가, 삭제 및 수정할 수 있는 연산자가 포함되어 있습니다. 이러한 문은 호출되는 트랜잭션을 완료하는 데 필요하지 않습니다. DML 문은 표에 나와 있습니다. 2.

    표 2

    SELECT 문은 때때로 DQL(Data Query Language)이라는 별도의 범주로 분류됩니다.

    커서 제어 언어(CCL)

    커서 제어 언어(Cursor Control Language) 문은 커서를 정의하고, 실행을 위해 SQL 문을 준비하며, 기타 여러 명령문을 사용하는 데 사용됩니다. CCL 문은 표에 나와 있습니다. 5.

    표 5

    운영자

    설명

    요청에 대한 커서를 결정하는 데 사용됩니다.

    쿼리 계획을 설명하는 데 사용됩니다. 이 문은 Microsoft SQL Server 7.0의 SQL 확장입니다. 다른 DBMS에서 실행할 필요는 없습니다. 예를 들어 Oracle의 경우 EXPLAIN PLAN 문을 사용해야 합니다.

    쿼리 결과 수신 시 커서를 여는 데 사용됩니다.

    쿼리 결과에서 문자열을 가져오는 데 사용됩니다.

    커서를 닫는 데 사용됩니다.

    실행을 위해 SQL 문을 준비하는 데 사용됩니다.

    SQL 문을 실행하는 데 사용됩니다.

    준비된 요청을 설명하는 데 사용됩니다.

    모든 SQL문은 그림 1과 같은 형태를 갖는다. 2.

    모든 SQL 문은 명령문이 수행하는 작업(SELECT, INSERT, DELETE...)을 지정하는 키워드인 동사로 시작됩니다. 명령문에는 작업이 수행되는 데이터에 대한 정보가 포함된 문장도 포함되어 있습니다. 각 절은 FROM, WHERE 등과 같은 키워드로 시작합니다. 절의 구조는 해당 유형에 따라 다릅니다. 일부 절에는 테이블 또는 필드 이름이 포함되어 있고 일부 절에는 추가 키워드, 상수 또는 표현식이 포함될 수 있습니다.

    SQL 문을 어떻게 실행할 수 있나요?

    모든 최신 서버 DBMS(및 널리 사용되는 많은 데스크톱 DBMS)에는 SQL 문을 실행하고 그 결과를 볼 수 있는 유틸리티가 포함되어 있습니다. 특히 Oracle 클라이언트 부분에는 SQL Plus 유틸리티가 포함되어 있고 Microsoft SQL Server에는 SQL 쿼리 분석기 유틸리티가 포함되어 있습니다. SQL의 기능을 시연하기 위해 사용할 유틸리티는 바로 이 유틸리티이며, "실험"할 데이터베이스로는 Microsoft SQL Server 7.0 패키지에 포함된 NorthWind 데이터베이스를 사용하겠습니다. 원칙적으로 다른 데이터베이스와 이 데이터베이스에서 SQL 문을 실행하고 결과를 표시할 수 있는 다른 유틸리티를 사용할 수 있습니다(또는 Visual Basic, Delphi, C++Builder 등의 개발 도구를 사용하여 직접 작성할 수도 있습니다). 그러나 만일의 경우를 대비하여 이 데이터베이스를 백업하는 것이 좋습니다.

  • 공유하다