본문 바로가기
IT 인터넷/비개발자를위한IT지식

SQL이란 무엇일까

by Oriyong 2020. 5. 6.
반응형

SQL이란 무엇인가

IT회사에서 일하다 보면 SQL이라는 단어를 많이 듣게 됩니다. 비개발자분들에겐 굉장히 낯선 단어인데요. 일반인들은 사용할 일이 없기 때문입니다. 하지만 회사에서 일하다 보면 많이 듣게 되고, 모르면 업무 진도가 빨리빨리 진행이 안되니까 알아두면 좋습니다.

 

SQL이란

SQL(Structured Query Language, 구조화 질의어, S-Q-L)는 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. 많은 수의 데이터베이스 관련 프로그램들SQL을 표준으로 채택하고 있다.

출처: https://ko.wikipedia.org/wiki/SQL 

 

SQL 설명을 보려니, 관계형 데이터베이스에서 쓴다고 합니다. 데이터베이스는 데이터를 예쁘고, 안정적이고, 편리하게 관리하기 위한 프로그램입니다. 현장에서는 데이터를 다룬다면 무조건 쓴다고 생각하면 됩니다. 본 포스팅은 데이터베이스를 설명하기 위한 포스팅은 아니니, 혹시 데이터베이스를 모르신다면 아래 포스팅을 참고해주세요.

https://blog.naver.com/newgrade/221635470665

 

비전공자의 개발자 소통 방법 - 데이터베이스 편

데이터베이스(Database) 편이다. 데이터베이스는 단순히 단어 정의 하나 안다고 해결될 범위가 아니다. 이...

blog.naver.com

SQL로 넘어갑니다. 관계형 데이터베이스 프로그램들은 데이터를 관리하기 위해 명령어를 사용합니다. 관계형 데이터베이스 제품들은 다양합니다. 마이SQL(MySQL), 마리아DB(MariaDB), MSSQL, 오라클(Oracle) 등이 있는데요. SQL은 이 제품들에서 공통으로 사용할 수 있습니다. 데이터베이스마다 명령어가 다르다면 제품이 바뀔 때마다 다시 학습해야 했지만, 표준적인 SQL문법은 거의 동일해서 추가 학습의 부담이 적습니다. 부담은 가지지 말고, 'SQL을 이용해 이런 행위를 할 수 있구나' 정도로 보면 됩니다.

 

데이터베이스의 데이터를 확인할 때는 보통 위와 같은 프로그램의 도움을 받습니다. 개발을 할 때 사용되는 프로그래밍 언어들은 DB에 SQL을 전달하는 기능을 제공합니다.

 

SQL로 할 수 있는 기본 행위는 CRUD입니다. 데이터를 입력하고, 읽고, 수정하고, 삭제하죠. 이런 행위를 데이터의 CRUD(Create, Read, Update, Delete)라고 합니다. 데이터에 할 수 있는 행위는 네 가지가 다입니다. 그러니 개발자들도 이 네 가지를 중심으로 개발합니다. SQL은 명령어의 대소문자를 구분하진 않습니다. 예시에서는 가독성을 위해 SQL 명령어들은 대문자로 표시했습니다. 그럼 저장을 위한 공간을 만드는 SQL과, CRUD의 간단한 문법을 알아보겠습니다.

 

테이블 만들기

CREATE TABLE 테이블명 (
	필드1 값형식,
	필드2 값형식);

CREATE TABLE temp_users_list (
	user_id VARCHAR(10),
	user_name VARCHAR(10),
	user_birthday DATE);

 

테이블만들기는 값을 저장할 공간을 데이터베이스에게 미리 말해주는 과정입니다. 필드들은 필요한 만큼 추가하면 됩니다. 이렇게 등록한 공간은 값들을 행 단위로 입력합니다. varchar는 문자열을 입력하는 곳입니다. 괄호 속의 숫자는 글자 수를 의미합니다. varchar(10)이라면 글자를 10글자까지 입력할 수 있습니다. DATE라는 값형식은 날짜를 등록하는 형식입니다.

 

입력, Create

INSERT INTO 테이블명 (필드1, 필드2, 필드3) VALUES (값1, 값2, 값3);
INSERT INTO temp_users_list (user_id, user_name, user_birthday) VALUES ('testId', '홍길동', '1990-01-01');

INSERT INTO 명령어 뒤에 테이블명, 입력되는 값을 위처럼 순서대로 입력합니다. 위 그림처럼 필드1에는 값1, 필드2에는 값2, 필드3에는 값3이 입력됩니다. 필드들의 개수와 값들의 개수가 일치하지 않을 경우는 오류가 발생합니다. INSERT INTO 테이블명 (필드1, 필드2) VALUES (값1); 식으로는 등록할 수 없습니다. 위의 예시와 같이 입력할 경우 테이블이라고 불리는 데이터 공간에 아래와 같이 입력됩니다.

 

temp_users_list 테이블

user_id user_name user_birthday
testId 홍길동 1990-01-01

 

읽기, Read

SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1;
SELECT user_id, user_name FROM temp_users_list WHERE user_name = '홍길동';

SELECT 후 원하는 필드(예시에서는 user_id, user_name)를 나열합니다. 조건에 따라 값이 여러 행일 수도 있고, 하나도 없을 수도 있습니다. 위의 예시는 user_name 필드의 값이 '홍길동'인 행들을 요청하는 명령어입니다. 조건을 입력하지 않는다면 테이블의 모든 값을 보여줍니다.

 

temp_users_list 테이블

user_id user_name
testId 홍길동

 

 

수정, Update

UPDATE 테이블명 SET 필드1 = 값1 WHERE 필드1 = 조건값1;
UPDATE temp_users_list SET user_name = '이순신' WHERE user_name = '홍길동';

UPDATE 명령어 뒤에 테이블명, 그 뒤 SET 명령어 뒤에 수정 필드와 값들을 입력하면 됩니다. 예시의 경우 user_name 값이 '홍길동'인 행에서 user_name 값을 '이순신'으로 변경합니다. 뒤에 WHERE 조건을 입력하지 않으면 테이블의 모든 값이 수정됩니다. 주의하세요.

 

temp_users_list 테이블 

user_id user_name
testId 이순신

 

삭제, Delete

DELETE FROM 테이블명 WHERE 필드1 = 값1;
DELETE FROM temp_users_list WHERE user_name = '홍길동';

DELETE FROM 후에 테이블명 WHERE 뒤에 조건을 넣어주면, 해당하는 행들이 삭제됩니다. 뒤에 WHERE 조건을 입력하지 않으면 해당 테이블의 모든 값을 삭제합니다. 주의하세요.

 

정리

프로그래밍 언어들은 관계형 데이터베이스에 접속해서 SQL 명령어를 데이터베이스에 전달하는 명령어들을 제공합니다. 많은 프로그램들의 목적은 적절한 데이터를 읽고, 등록하고, 수정하고, 필요 없는 데이터를 삭제하는 것이 목적입니다. 위에서는 가장 간단한 구문만을 봤지만, 세밀하게 배운다면 SQL은 두꺼운 책 몇 권 분량입니다. 데이터베이스는 다양한 종류가 있습니다. 관계형 데이터베이스 말고도, NoSQL이라는 데이터베이스들도 있습니다. 대표적인 NoSQL로는 몽고DB(MongoDB)가 있습니다. 시간을 내서 어떤 데이터베이스들이 있는지 둘러보고, 이런 저런 DB들의 특징 정도는 알아두시길 추천합니다. 개발자나 데이터베이스 관리자의 업무 중 하나는 SQL을 다루는 것입니다. 그들이 어떤 일을 하는지 알아두면 소통에 큰 도움이 됩니다. 

반응형

'IT 인터넷 > 비개발자를위한IT지식' 카테고리의 다른 글

AR이란 무엇인가  (0) 2020.05.12
VR이란 무엇인가  (0) 2020.05.12
IoT(사물인터넷)란 무엇인가  (0) 2020.04.29
API란 무엇인가  (0) 2020.04.24
UI 용어 컴포넌트 이름 소개  (1) 2020.04.23