본문 바로가기
개발 기초 다지기

내일배움캠프 28일차 : SQL (Structured Query Language)

by 너의고래 2024. 5. 25.
반응형

Node.js의 숙련주차의 강의를 마치고 복습과 개인과제를 시작했다. 그러면서 이번 과제의 기본이자 계속 사용하게 될 SQL에 대해 정리해보려한다.

 

 

SQL (Structured Query Language)

SQL (Structured Query Language) 데이터베이스에서 데이터를 관리하고 조작하는 사용되는 표준 프로그래밍 언어.

데이터베이스에서 데이터를 조회, 삽입, 업데이트 삭제하는 기능을 제공.

 

 

 

- 대표적인 SQL 구성 요소

1) DDL (Data Definition Language) : 데이터베이스 구조를 정의하는데 사용

  • CREATE : 데이터베이스 객체(: 테이블, 인덱스) 생성
CREATE DATABASE 데이터베이스명;
CREATE TABLE 테이블명
{
 컬럼명 컬럼속성
}

 

  • ALTER : 기존 데이터베이스 객체를 수정
ALTER DATABASE 데이터베이스명 변경조건;
ALTER TABLE 테이블명 ADD 변경조건; -- 테이블에 새로운 컬럼을 추가합니다.
ALTER TABLE 테이블명 DROP 변경조건; -- 테이블에서 컬럼을 삭제합니다.
ALTER TABLE 테이블명 MODIFY 변경조건; -- 테이블의 컬럼을 수정합니다.
ALTER TABLE 테이블명 RENAME 변경조건; -- 테이블의 이름을 변경합니다.
...

 

  • DROP : 데이터베이스 객체를 삭제
DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명;

 

2) DML (Data Manipulation Language): 데이터베이스 내의 데이터를 조작하는 사용

  • SELECT : 데이터를 조회
SELECT 컬럼목록 FROM 테이블명 [WHERE 조건];

 

  • INSERT : 데이터를 삽입
INSERT INTo 테이블명 (컬럼목록) VALUES (값목록);

 

  • UPDATE : 기존 데이터를 수정 (조건이 없으면 모든 데이터가 수정)
UPDATE 테이블명 SET 컬럼 = 값 [WHERE 조건];

 

  • DELETE : 데이터를 삭제 (조건이 없으면 모든 데이터가 삭제)
DELETE FROM 테이블명 [WHERE 조건];

 

 

 

3) DCL (Data Control Language): 데이터베이스에 대한 권한을 관리

  • GRANT: 사용자에게 권한을 부여
  • 권한에는 SELECT, INSERT, UPDATE, DELETE 다양한 종류가 존재
GRANT [권한] ON 객체명 TO 사용자;

 

  • REVOKE : 사용자의 권한을 회수
REVOKE [권한] ON 객체명 FROM 사용자;

 

 

4) TCL (Transaction Control Language): 데이터베이스 트랜잭션을 관리합니다.

  • COMMIT : 트랜잭션을 영구적으로 저장
  • 데이터베이스의 작업이 정상적으로 완료되었음을 관리자에게 알려줄 사용
START TRANSACTION;
...
COMMIT;

 

 

 

  • ROLLBACK : 트랜잭션을 취소 후 이전상태로 되돌릴 때 사용
  • 데이터베이스의 작업이 비정상적으로 완료되었음을 관리자에게 알려줄 때 사용
START TRANSACTION;
...
ROLLBACK;

 

 

 

 

이전에 지급되었던 SQL강의를 꽤나 재미있게 들었었는데, SQL을 실제로 개발하는데 이용하여 클라이언트에게 제공한다고 생각하니 꽤나 신이난다. 단순히 내가 데이터를 조회해서 분석하는데만 쓴다고 생각했는데, 그것을 이렇게도 사용할 수 있다는 것이 뭔가 하나를 알면 다른것도 쉽게 할 수 있는 개발의 세계를 다시 느낄 수 있었다. 빨리 하나 둘씩 익혀 어떠한 프로그램도 쉽게 익힐 수 있는 사람이 되고싶다.

반응형

댓글