SQL

[MYSQL]RDBMS, SQL 기본 명령문 (SELECT, DESC, AS), NULL특징

yeon-96 2023. 1. 1. 12:51
반응형
 

 

RDBMS

mySQL은 RDBMS(관계형 데이터베이스)로 데이터가 하나 이상의 열과 행의 테이블에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음이다.

이러한 테이블간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적 연결이다.

테이블 구조

SELECT 문

MYSQL에서는 SELECT문을 사용해 테이블의 레코드에 접근할 수 있습니다.

기본적인 연산도 가능한 명령문입니다.

 

테이블의 모든 레코드를 조회할 땐 

SELECT 컬럼이름

FROM 테이블이름

으로 조회할 수 있으며, 필드이름 외에 *을 입력하게 되면 모든 컬럼에 대한 정보를 조회할 수 있다.

조회결과

내가 보고 싶은 열만 입력한다면?

[간단한 SELECT문 예제]

-- Continent Asia, North America, Europe을 제외한 국가들 중
-- 인구가 10,000,000 이상인 국가들 조회
SELECT * FROM country
	WHERE Continent NOT IN ('Asia', 'North America', 'Europe') 
	AND Population >= 10000000;

1. 모든 컬럼을 조회할건데 ~

2. 그 중 Continent 컬럼에서 Asia, North America, Europe 는 제외한 ~

3. 인구 1천만명 이상인 국가들로 조회 해 줘~

 

DESC(Description)

DESC문은 생성된 테이블의 구조를 알려주는 명령문이다.

city테이블의 구조

Filed : 어떤 컬럼을 갖고 있는지

Type : 해당 컬럼은 어떤 자료형의 정보를 담을 수 있는지

Nul : 해당 컬럼은 Null값이 입력 가능한지

Key : 해당 컬럼이 어떤 Key 속성을 담고 있는지

Default : 해당 컬럼의 기본값은 무엇인지

Extra : 쿼리 실행계획에서 성능에 관련된 중요한 내용이 표시 됨 (auto_increment, distinct ..)


 

AS 문 (별명 지어주기)

연산된 값 혹은 기존의 컬럼명에 대한 별명을 지어 줄 수 있다.

SELECT 컬럼명 AS '별명' 

이런 식으로 지어주면 컬럼명은 Result Grid에서 별명으로 바뀌어 출력된다.

컬럼명이 수정되는 것은 아니니 주의하자.

SELECT Code AS '코드', Name AS "이름", Population AS "인구" FROM country;

Code > 코드, Name > 이름, Pop > 인구

[연산값 인구밀도의 값을 별명을 붙여 출력해보기]

1. 인구수와 국가면적과 '인구 / 면적'인 컬럼을 나타낼거고~

2. '인구 / 면적' 컬럼은 '인구 밀도'라는 별명으로 출력 해 줘 ~

3. FROM country에서~

-- 국가(Name), 인구(Population), 면적(SurfaceArea), 인구 / 면적
SELECT Name, Population, SurfaceArea, Population / SurfaceArea '인구 밀도' FROM country;

 

Null에 관하여

Null을 조회한다거나 논리값을 적용할 때 SQL에서는 관계연산자(=, !=)를 사용하면 안된다. 

-- NULL 값을 다루는 법 (IS, IS NOT)
SELECT Code, Name, GNP, GNPOld, GNP - GNPOld 'GNP 변화량' FROM country
WHERE GNPOld IS NOT NULL;

1. code, name, GNP, GPNOld, GPN - GNPOld 가 궁금한데~

2. contry테이블에서 말이야~

3. 근데 GNPOld 컬럼 중 NULL값은 보고싶지 않아 ~

 

Null 조회를 원한다면 IS NULL, 그렇지 않다면 IS NOT NULL을 사용하면 된다.

 

또한,

NULL값은 연산이 불가하다.

NULL의 연산값은 무조건 NULL을 반환한다.

-- null 특징 (무조건 null 출력)
SELECT NULL + 5;

반응형