2.1 SQL 소개

데이터베이스(DB)가 있고 그 안에 일부 데이터가 있는 테이블이 있는 경우 가장 일반적인 작업은 이 테이블에서 특정 데이터를 찾는 것입니다. 그것이 SQL이 40년 전에 발명된 것입니다.

SQL은 Structured Query Language 의 약자입니다 .

가장 간단한 SQL 쿼리는 다음과 같습니다.

SELECT column1, column2, … columnN FROM table

스타트업 직원 목록이 포함된 직원 테이블이 있다고 가정해 보겠습니다 .

ID 이름 직업 샐러리 나이 가입 날짜
1 이바노프 이반 프로그램 제작자 100,000 25 2012-06-30
2 페트로프 페트르 프로그램 제작자 80,000 23 2013-08-12
이바노프 세르게이 시험 장치 40,000 서른 2014-01-01
4 라비노비치 모이샤 감독 200,000 35 2015-05-12
5 키리엔코 아나스타샤 사무실 관리자 40,000 25 2015년 10월 10일
6 바스카 고양이 1,000 2018-01-01

employee names그것들을 표시하는 쿼리를 작성하고 싶다면 salaries쿼리를 작성해야 합니다.

SELECT name, salary FROM employee

쿼리 결과가 표시됩니다.

이름 샐러리
이바노프 이반 100,000
페트로프 페트르 80,000
이바노프 세르게이 40,000
라비노비치 모이샤 200,000
키리엔코 아나스타샤 40,000
바스카 1,000

테이블의 모든 열을 표시하려면 모든 열의 이름을 나열하는 대신 별표를 쓰면 됩니다. 예:

SELECT * FROM employee

쿼리 결과가 표시됩니다.

ID 이름 직업 샐러리 나이 가입 날짜
1 이바노프 이반 프로그램 제작자 100,000 25 2012-06-30
2 페트로프 페트르 프로그램 제작자 80,000 23 2013-08-12
이바노프 세르게이 시험 장치 40,000 서른 2014-01-01
4 라비노비치 모이샤 감독 200,000 35 2015-05-12
5 키리엔코 아나스타샤 사무실 관리자 40,000 25 2015년 10월 10일
6 바스카 고양이 1,000 2018-01-01

2.2 SQL 쿼리의 고급 보기

SQL 언어는 최대한 사용자 친화적으로 설계되었습니다.

첫째, 요청 텍스트의 대소문자는 중요하지 않습니다 . SELECT, Select 또는 select를 작성할 수 있으며 모든 것이 작동합니다. 둘째, 줄 바꿈은 어떤 식으로든 고려되지 않습니다 . DBMS는 여전히 쿼리를 하나의 긴 문자열로 변환하므로 원하는 대로 작성할 수 있습니다.

이미 짐작하셨겠지만 SELECT 및 FROM 키워드는 제한이 없습니다. 그렇지 않으면 SQL에 대한 이야기가 많지 않을 것입니다. SQL 쿼리의 확장 보기는 다음과 같습니다.

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting

키워드를 사용하여 WHERE선택한 행에 대한 조건/필터를 설정할 수 있습니다.

예 1 . 직업이 "프로그래머"인 직원을 선택하는 쿼리를 작성해 보겠습니다.

SELECT * FROM employee WHERE occupation = 'Programmer'

그리고 다음 쿼리 결과를 얻습니다.

ID 이름 직업 샐러리 나이 가입 날짜
1 이바노프 이반 프로그램 제작자 100,000 25 2012-06-30
2 페트로프 페트르 프로그램 제작자 80,000 23 2013-08-12

보시다시피 쿼리 수행 결과 해당 직원의 직업이 "프로그래머"인 행만 표시됩니다.

키워드 GROUP BY, ORDER BY그리고 HAVING우리는 다음 강의에서 다룰 것입니다. 그리고 여기에서 우리는 WHERE라는 ​​단어로 몇 가지 예를 더 분석할 것입니다.

예 2 . 이제 급여가 100K보다 큰 모든 직원을 표시하는 쿼리를 작성해 보겠습니다. 다음과 같이 표시됩니다.

SELECT * FROM employee WHERE salary > 100000

다음 쿼리 결과를 얻습니다.

ID 이름 직업 샐러리 나이 가입 날짜
4 라비노비치 모이샤 감독 200,000 35 2015-05-12

예 3 . 이제 더 어려운 것을 시도해 봅시다. 2015년에 고용된 모든 직원을 표시하는 방법은 무엇입니까? 그리고 다음과 같이:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

다음 쿼리 결과를 얻습니다.

ID 이름 직업 샐러리 나이 가입 날짜
4 라비노비치 모이샤 감독 200,000 35 2015-05-12
5 키리엔코 아나스타샤 사무실 관리자 40,000 25 2015년 10월 10일

YEAR()이 쿼리에서는 날짜에서 연도를 가져온 다음 해당 날짜의 연도를 숫자 2015와 비교할 수 있는 특수 함수를 사용합니다 .

2.3 SQL 쿼리의 주석

그리고 한 가지 더 중요한 점은 SQL 쿼리의 주석입니다. 댓글은 매우 유용한 기능입니다. 첫째, 설명 및 / 또는 아이디어를 작성할 수 있습니다. 둘째, 주석을 사용하여 깨진 코드를 비활성화할 수 있습니다. 또는 이전 버전의 코드를 주석 처리하십시오.

Java와 마찬가지로 SQL에는 한 줄 및 여러 줄 주석이 있습니다. 또한 여러 줄 주석은 Java와 동일하게 보입니다. 외관:


/*
 	comment text
 	comment text
 	comment text
*/
        

물론 한 줄에서도 사용할 수 있습니다. 예:


/*comment text*/
        

Java "//"와 유사하게 "줄의 처음부터 끝까지"라는 주석 유형도 있습니다. SQL에서만 두 개의 빼기 문자와 공백을 작성해야 합니다 . 그러한 의견에 대한 일반적인 견해:

-- comment text

예:


        SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 
        

위의 예에서 쿼리 조건을 주석 처리했으므로 MySQL은 쿼리만 실행합니다.

SELECT * FROM employee

2.4 SQL 발음

외국 고객과 소통하거나 미국 회사의 온라인 인터뷰에 합격하면 속편 언어 경험에 대한 질문을 받을 수 있습니다 . 당신은 그와 함께 일하지 않았다고 정직하게 말하고 즉시 인터뷰에서 낙제할 것입니다.

그리고 문제는 SQL 언어가 원래 속편(ˈsēkwəl)처럼 발음되는 SEQUEL이라고 불렸기 때문에 미국 및 기타 영어 소스에서 "escuel"이 아니라 "sequel"을 자주 듣게 된다는 것입니다. SQL을 작성하고 속편을 읽습니다. 여기에 그러한 역사적 역설이 있습니다.