[개발] 프로그램 지식

SQL 기초 이론 정리 / SQL basic theory summary

  • -
반응형

https://www.w3schools.com/sql/sql_where.asp

 

SQL WHERE Clause

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

SQL

: Structured Query Language

조건

= Equal

> Greater than

< Less than

>= Greater than or equal

<= Less than or equal

<> Not equal. Note: In some versions of SQL this operator may be written as !=

BETWEEN Between a certain range

LIKE Search for a pattern

IN To specify multiple possible values for a column

* null

=, < 또는 <>와 같은 비교 연산자를 사용하여 NULL 값을 테스트할 수 없습니다.

IS NULL대신 및 IS NOT NULL연산자 를 사용해야 합니다 .

* SELECT TOP 절

이 SELECT TOP절은 반환할 레코드 수를 지정하는 데 사용됩니다

이 SELECT TOP절은 수천 개의 레코드가 있는 대형 테이블에서 유용합니다. 많은 수의 레코드를 반환하면 성능에 영향을 줄 수 있습니다.

참고: 모든 데이터베이스 시스템이 이 SELECT TOP절을 지원하는 것은 아닙니다. MySQL은 LIMIT제한된 수의 레코드를 선택하는 절을 지원하는 반면 Oracle은 및 . FETCH FIRST n ROWS ONLYROWNUM

( number에는 숫자를 입력해주면 됨 )

SQL Server/MS 액세스 구문:

SELECT TOP number|percent column_name(s)

FROM table_name

WHERE condition;

MySQL 구문:

SELECT column_name(s)

FROM table_name

WHERE condition

LIMIT number;

오라클 12 구문:

SELECT column_name(s)

FROM table_name

ORDER BY column_name(s)

FETCH FIRST number ROWS ONLY;

이전 Oracle 구문:

SELECT column_name(s)

FROM table_name

WHERE ROWNUM <= number;

* LIKE

LIKE연산자 와 함께 자주 사용되는 두 가지 와일드카드가 있습니다 .

백분율 기호(%)는 0개, 1개 또는 여러 문자를 나타냅니다.

밑줄 기호(_)는 하나의 단일 문자를 나타냅니다.

참고: MS Access는 퍼센트 기호(%) 대신 별표(*)를 사용하고 밑줄(_) 대신 물음표(?)를 사용합니다.

LIKE다음은 '%' 및 '_' 와일드카드가 있는 다양한 연산자를 보여주는 몇 가지 예 입니다.

LIKE Operator Description

WHERE CustomerName LIKE 'a%' Finds any values that start with "a"

WHERE CustomerName LIKE '%a' Finds any values that end with "a"

WHERE CustomerName LIKE '%or%' Finds any values that have "or" in any position

WHERE CustomerName LIKE '_r%' Finds any values that have "r" in the second position

WHERE CustomerName LIKE 'a_%' Finds any values that start with "a" and are at least 2 characters in length

WHERE CustomerName LIKE 'a__%' Finds any values that start with "a" and are at least 3 characters in length

WHERE ContactName LIKE 'a%o'

* SQL 와일드카드 문자

와일드카드 문자는 문자열에서 하나 이상의 문자를 대체하는 데 사용됩니다.

와일드카드 문자는 연산자와 함께 사용됩니다.

연산자는 열에서 지정된 패턴을 검색하기 위해 절에서 사용 됩니다 .

LIKELIKE WHERE

MS Access의 와일드카드 문자

Symbol Description Example

* Represents zero or more characters bl* finds bl, black, blue, and blob

? Represents a single character h?t finds hot, hat, and hit

[] Represents any single character within the brackets h[oa]t finds hot and hat, but not hit

! Represents any character not in the brackets h[!oa]t finds hit, but not hot and hat

- Represents any single character within the specified range c[a-b]t finds cat and cbt

# Represents any single numeric character 2#5 finds 205, 215, 225, 235, 245, 255, 265, 275, 285, and 295

SQL Server의 와일드카드 문자

Symbol Description Example

% Represents zero or more characters bl% finds bl, black, blue, and blob

_ Represents a single character h_t finds hot, hat, and hit

[] Represents any single character within the brackets h[oa]t finds hot and hat, but not hit

^ Represents any character not in the brackets h[^oa]t finds hit, but not hot and hat

- Represents any single character within the specified range c[a-b]t finds cat and cbt

모든 와일드카드를 조합하여 사용할 수도 있습니다!

LIKE다음은 '%' 및 '_' 와일드카드가 있는 다양한 연산자를 보여주는 몇 가지 예 입니다.

LIKE Operator Description

WHERE CustomerName LIKE 'a%' Finds any values that starts with "a"

WHERE CustomerName LIKE '%a' Finds any values that ends with "a"

WHERE CustomerName LIKE '%or%' Finds any values that have "or" in any position

WHERE CustomerName LIKE '_r%' Finds any values that have "r" in the second position

WHERE CustomerName LIKE 'a__%' Finds any values that starts with "a" and are at least 3 characters in length

WHERE ContactName LIKE 'a%o' Finds any values that starts with "a" and ends with "o"

* SQL BETWEEN 연산자

연산자 는 BETWEEN주어진 범위 내에서 값을 선택합니다. 값은 숫자, 텍스트 또는 날짜일 수 있습니다.

BETWEEN연산자는 포괄적입니다. 시작 값과 끝 값이 포함됩니다.

( 시작, 끝 값 >> 포함 << )

* UNION 연산자

UNION연산자는 둘 이상의 SELECT 명령문 의 결과 집합을 결합 하는 데 사용됩니다.

내의 모든 SELECT명령문 UNION에는 동일한 수의 열이 있어야 합니다.

열의 데이터 유형도 유사해야 합니다.

모든 명령문의 열도 SELECT동일한 순서여야 합니다.

연산자 는 UNION기본적으로 고유한 값만 선택합니다.

중복 값을 허용하려면 다음을 사용 UNION ALL하십시오.

* group by

GROUP BY"각 국가의 고객 수 찾기"와 같이 동일한 값을 가진 행을 요약 행으로 그룹화합니다.

이 GROUP BY명령문은 종종 집계 함수( COUNT(), MAX(), MIN(), SUM(), AVG())와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화합니다.

* EXSIT 연산자

EXISTS연산자는 하위 쿼리에 레코드가 있는지 테스트하는 데 사용됩니다 .

EXISTS하위 쿼리가 하나 이상의 레코드를 반환하면 연산자는 TRUE를 반환합니다 .

* ANY 연산자

ANY운영자 :

결과로 부울 값을 반환합니다. ( boolean )

하위 쿼리 값 중 하나라도 조건을 충족하면 TRUE를 반환합니다.

ANY범위의 값 중 하나에 대해 작업이 참인 경우 조건이 참이 됨을 의미합니다.

ex. SELECT column_name(s)

FROM table_name

WHERE column_name operator ANY

(SELECT column_name

FROM table_name

WHERE condition);

* ALL 연산자

ALL운영자 :

결과로 부울 값을 반환합니다. ( boolean )

모든 하위 쿼리 값이 조건을 충족하면 TRUE를 반환합니다.

SELECT, WHERE및 HAVING문과 함께 사용

ALL범위의 모든 값에 대해 연산이 참인 경우에만 조건이 참이 됨을 의미합니다.

* SELECT INTO

명령문은 한 테이블 의 SELECT INTO데이터를 새 테이블로 복사합니다.

EX.

SELECT *

INTO newtable [IN externaldb]

FROM oldtable

WHERE condition;

* INSERT INTO SELECT 문

NSERT INTO SELECT한 테이블에서 데이터를 복사하여 다른 테이블에 삽입합니다.

명령문은 소스 및 대상 테이블의 데이터 유형 이 INSERT INTO SELECT일치해야 합니다.

참고: 대상 테이블의 기존 레코드는 영향을 받지 않습니다.

* CASE WHEN 표현식

표현식 은 CASE조건을 통과하고 첫 번째 조건이 충족되면 값을 반환합니다(예: if-then-else 문). 따라서 조건이 참이면 읽기를 중지하고 결과를 반환합니다. 참인 조건이 없으면 ELSE절의 값을 반환합니다. / 마지막 END 작성

( CASE WHEN 조건 THEN '' ELSE '' END )

EX.

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

WHEN conditionN THEN resultN

ELSE result

END;

* NULL 함수

Oracle NVL()기능은 동일한 결과를 얻습니다.

SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))

FROM Products;

또는 다음 COALESCE() 과 같이 함수를 사용할 수 있습니다.

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))

FROM Products;

( 안에 파라미터 중에서 순차적으로 돌면서 처음으로 NULL값이 아닌 값을 리턴하고, 모두 NULL값인 경우 NULL값을 리턴함 )

* stored Procedure

저장 프로시저는 저장할 수 있는 준비된 SQL 코드이므로 코드를 반복해서 재사용할 수 있습니다.

따라서 반복해서 작성하는 SQL 쿼리가 있는 경우 저장 프로시저로 저장한 다음 호출하여 실행하면 됩니다.

저장 프로시저가 전달된 매개 변수 값에 따라 작동할 수 있도록 매개 변수를 저장 프로시저에 전달할 수도 있습니다.

* CREATE | DROP DATEBASE 문

CREATE DATABASE문은 새 SQL 데이터베이스를 만드는 데 사용됩니다.

CREATE DATABASE databasename;

DROP DATABASE databasename;

* BACKUP DATABASE 문

BACKUP DATABASE명령문은 SQL Server에서 기존 SQL 데이터베이스의 전체 백업을 만드는 데 사용됩니다.

BACKUP DATABASE databasename

TO DISK = 'filepath';

* BACKUP WITH DIFFERENTIAL 문

BACKUP DATABASE명령문은 SQL Server에서 기존 SQL 데이터베이스의 전체 백업을 만드는 데 사용됩니다.

BACKUP DATABASE databasename

TO DISK = 'filepath'

WITH DIFFERENTIAL;

EX.

BACKUP DATABASE testDB

TO DISK = 'D:\backups\testDB.bak'

WITH DIFFERENTIAL;

* 다른 테이블을 사용하여 테이블 만들기

를 사용하여 기존 테이블의 복사본을 만들 수도 있습니다 CREATE TABLE.

새 테이블은 동일한 열 정의를 가져옵니다. 모든 열 또는 특정 열을 선택할 수 있습니다.

기존 테이블을 사용하여 새 테이블을 만드는 경우 새 테이블은 이전 테이블의 기존 값으로 채워집니다.

EX.

CREATE TABLE new_table_name AS

SELECT column1, column2,...

FROM existing_table_name

WHERE ....;

* ALTER TABLE 문

이 ALTER TABLE문은 기존 테이블의 열을 추가, 삭제 또는 수정하는 데 사용됩니다.

이 ALTER TABLE문은 기존 테이블에 다양한 제약 조건을 추가하고 삭제하는 데에도 사용됩니다.

EX.

// 열 추가

ALTER TABLE Customers

ADD Email varchar(255);

// 열 삭제

ALTER TABLE Customers

DROP COLUMN Email;

// 열 이름 바꾸기

ALTER TABLE table_name

RENAME COLUMN old_name to new_name;

// 테이블 변경 - 데이터 유형 변경 / 수정

ALTER TABLE table_name

MODIFY column_name datatype;

* SQL 제약

SQL 제약 조건은 테이블의 데이터에 대한 규칙을 지정하는 데 사용됩니다.

제약 조건은 테이블에 들어갈 수 있는 데이터 유형을 제한하는 데 사용됩니다. 이렇게 하면 테이블에 있는 데이터의 정확성과 신뢰성이 보장됩니다. 제약 조건과 데이터 작업 사이에 위반 사항이 있으면 작업이 중단됩니다.

제약 조건은 열 수준 또는 테이블 수준일 수 있습니다. 열 수준 제약 조건은 열에 적용되고 테이블 수준 제약 조건은 전체 테이블에 적용됩니다.

다음 제약 조건은 SQL에서 일반적으로 사용됩니다.

NOT NULL- 열이 NULL 값을 가질 수 없도록 합니다.

UNIQUE- 열의 모든 값이 다른지 확인

PRIMARY KEY- NOT NULL와 의 조합 UNIQUE. 테이블의 각 행을 고유하게 식별합니다.

FOREIGN KEY - 테이블 간의 링크를 파괴하는 행위를 방지합니다.

CHECK- 열의 값이 특정 조건을 충족하는지 확인

DEFAULT- 값이 지정되지 않은 경우 열의 기본값을 설정합니다.

CREATE INDEX- 데이터베이스에서 매우 빠르게 데이터를 생성하고 검색하는 데 사용됩니다.

* CREATE INDEX 문

인덱스는 다른 경우보다 더 빨리 데이터베이스에서 데이터를 검색하는 데 사용됩니다. 사용자는 인덱스를 볼 수 없으며 검색/쿼리 속도를 높이는 데만 사용됩니다.

참고: 인덱스가 있는 테이블을 업데이트하는 것은 인덱스가 없는 테이블을 업데이트하는 것보다 시간이 더 걸립니다(인덱스도 업데이트해야 하기 때문). 따라서 자주 검색되는 열에 대해서만 인덱스를 생성하십시오.

------ 인덱스 -----------

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.