SQL개요와 종류(DDL, DQL, DML, DCL, TCL, MySQL, NoSQL)
1. SQL이란?
- SQL이란 Structured Query Langauge, 구조적 쿼리 언어로 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다.
- 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터값 간의 관계를 나타낸다.
- SQL문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색 등을 할 수 있으며 데이터베이스의 성능을 유지, 관리하고 최적화하는데에 SQL을 사용하기도 한다.
- SQL은 모든 유형의 어플리케이션에서 자주, 널리 사용되는 쿼리 언어로 데이터 분석가와 개발자는 SQL이 서로 다른 프로그래밍 언어와 잘 통합되기 때문에 사용한다.
- Oracle 또는 MS SQL Server와 같은 주요 SQL 데이터베이스 시스템으로 고성능 데이터 처리 어플리케이션을 빌드할 수 있다.
2. SQL 명령어 종류
1) 데이터 정의어 DDL(Data Definition Language)
- 데이터베이스의 전체적인 구조나 골격을 설계하는 명령을 나타낸다.
- 어떤 데이터베이스, 스키마, 테이블이 필요한지를 설계한다.
- 데이터베이스 엔지니어는 DDL을 사용하여 비즈니스 요구에 따라 데이터베이스 객체를 만들고 수정한다.
- CREATE(생성), ALTER(수정), DROP(삭제), TRUNCATE(초기화)
2) 데이터 쿼리어 DQL(Data Query Language)
- 관계형 데이터베이스에 저장된 데이터를 검색하기 위한 명령으로 구성된다.
- 소프트웨어 어플리케이션은 SELECT 명령을 사용하여 테이블의 특정 결과를 필터링하고 반환한다.
3) 데이터 조작어 DML(Data Manipulation Language)
- 구조가 아닌 테이블 안에 있는 데이터를 조작하는 역할을 한다.
- 새 정보를 쓰거나 관계형 데이터베이스의 기존 레코드를 수정한다.
- INSERT(추가), UPDATE(수정), DELETE(삭제), SEARCH(검색)
4) 데이터 제어어 DCL(Data Control Language)
- 데이터베이스 관리자는 데이터 제어어를 사용하여 다른 사용자의 데이터베이스 엑세스를 관리하거나 권한을 부여한다.
- GRANT(데이터를 사용할 권한을 부여), REVOKE(권한을 박탈)
5) 트랜잭션 제어 언어 TCL(Transaction Control Language)
- 트랜잭션은 데이터베이스의 상태를 변화시키는 기능을 수행하기 위한 작업이다.
- TCL은 데이터베이스를 자동으로 변화시키는 작업을 제어하는 언어이다.
- COMMIT(수정한 작업을 저장), ROLLBACK(수정한 작업을 취소), SAVEPOINT(특정 지점으로 되돌리기)
3. MySQL이란?
- MySQL은 Oracle에서 제공하는 오픈 소스 관계형 데이터베이스 관리 시스템이다.
- SQL은 데이터베이스 생성 및 조작을 위한 '표준 언어'이고 MySQL은 SQL 쿼리를 사용하는 관계형 데이터베이스 프로그램이다.
- SQL은 국제 표준에 의해 정의되지만 MySQL 소프트웨어는 지속적인 업그레이드 및 개선을 거친다.
4. NoSQL이란?
- NoSQL은 테이블을 사용하여 데이터를 저장하지 않는 비관계형 데이터베이스를 나타낸다.
- NoSQL 데이터베이스는 수평 확장이 가능하기 때문에 최신 어플리케이션에 널리 사용된다.
- 수평 확장이란 NoSQL 소프트웨어를 실행하는 컴퓨터를 더 추가하여 처리 능력을 높이는 것을 의미한다.
- SQL은 일관된 데이터 조작어를 제공하지만 NoSQL 구현은 서로 다른 기술에 따라 달라진다.
- 개발자는 트랜잭션 및 분석 어플리케이션에 SQL을 사용하는 반면 NoSQL은 응답성이 높고 사용량이 많은 어플리케이션에 적합하다.
5. SQL 서버란?
- SQL Server는 SQL로 데이터를 조작하는 Microsoft의 관계형 데이터베이스 관리 시스템의 공식 명칭이다.
6. 참고 사이트
- MySQL Tutorial: https://www.mysqltutorial.org/mysql-basics/
MySQL Basics
This MySQL basics section provides you with everything you need to know to manage data in MySQL effectively
www.mysqltutorial.org
- MySQL 공식문서: https://dev.mysql.com/doc/
MySQL :: MySQL Documentation
dev.mysql.com
- SQL Server 공식문서: https://learn.microsoft.com/ko-kr/sql/?view=sql-server-ver16
Microsoft SQL 문서 - SQL Server
SQL Server 및 Azure SQL을 사용하여 온-프레미스 및 클라우드에서 데이터베이스 요구 사항을 관리하는 방법을 알아보세요.
learn.microsoft.com
- SQL 실습 사이트: https://www.w3schools.com/
W3Schools Online Web Tutorials
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 코딩테스트 플랫폼: https://www.hackerrank.com/dashboard
Dashboard | HackerRank
Join over 16 million developers in solving code challenges on HackerRank, one of the best ways to prepare for programming interviews.
www.hackerrank.com
- AWS의 SQL 소개: https://aws.amazon.com/ko/what-is/sql/
SQL이란 무엇인가요? - 구조적 쿼리 언어(SQL) 설명 - AWS
구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과
aws.amazon.com