728x90

SQL이란?



SQL은 Structured(구조화된) Query(질문하다) Language(언어)의 약자로, 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하고 조작하기 위해 사용되는 프로그래밍 언어입니다.

SQL은 컴퓨터에게 데이터를 가져오는 일을 시킬 때 쓰는 언어입니다. 데이터베이스에서 데이터를 생성, 수정, 삭제, 검색하는 등 다양한 작업을 수행할 수 있습니다.
정리하면 SQL은 컴퓨터에게 ‘데이터 가져오는일 ( + 조작하는 일)을 시킬 때 쓰는 구조화된 질문을 하는 언어입니다.

 

💡 가장 기본적인 SQL(Read)의 형태 
           → select * from tableName;

- Select : 검색해보자
- * : 모든 정보 ! (와일드 카드라고 부릅니다)
- from : 어떤 저장소에서 가져와
- from 뒤에는 저장소 (table) 이름을 적어서 알려줍니다.

 

🎈 SQL의 4가지 분류

  1. 데이터 정의 언어(DDL, Data Definition Language): 데이터베이스의 구조를 정의하고 관리하는 명령어를 포함합니다. CREATE, ALTER, DROP 등의 명령어를 사용하여 테이블, 인덱스, 뷰 등을 생성하거나 변경할 수 있습니다.

  2. 데이터 조작 언어(DML, Data Manipulation Language): 데이터베이스에 저장된 데이터를 조작하는 명령어를 포함합니다. SELECT, INSERT, UPDATE, DELETE 등의 명령어를 사용하여 데이터를 조회, 삽입, 수정, 삭제할 수 있습니다.

  3. 데이터 제어 언어(DCL, Data Control Language): 데이터베이스의 보안과 권한을 관리하는 명령어를 포함합니다. GRANT, REVOKE 등의 명령어를 사용하여 사용자에게 권한을 부여하거나 회수할 수 있습니다

 

❓ DB(Data Base) 란 ? DB는 데이터를 통합하여 모아두는 공간

데이터베이스(Database)는 체계화된 데이터의 모임으로, 여러 사용자가 공유하여 사용할 수 있도록 구조화된 데이터의 집합입니다.
데이터베이스는 데이터의 저장, 관리, 조작을 위한 기능을 제공하여 사용자가 데이터에 접근하고 처리할 수 있도록 합니다.

데이터베이스는 일반적으로 테이블(Table)이라는 구조를 사용하여 데이터를 저장합니다.
테이블은 행(Row)과 열(Column)의 형태로 구성되어 있으며, 각 행은 레코드(Record)로 데이터의 한 개체를 나타내고,
각 열은 속성(Attribute)로 데이터의 특징을 나타냅니다. 테이블 간에는 관계(Relationship)를 설정하여
데이터들 간의 연결과 종속성을 나타낼 수 있습니다.

데이터베이스는 다양한 형태로 구현될 수 있으며, 주로 관계형 데이터베이스(RDBMS)와 비관계형 데이터베이스(NoSQL)로 분류됩니다.
관계형 데이터베이스는 테이블 간의 관계를 이용하여 데이터를 구성하고 SQL을 사용하여 데이터를 조작합니다.
현실 환경에서는 관계형 데이터베이스가 가장 널리 사용되고 있습니다. 비관계형 데이터베이스는 테이블과 관계 대신에
다른 구조를 사용하여 데이터를 저장하고, SQL 이외의 쿼리 언어나 API를 사용하여 데이터를 처리합니다.

 

✅ SQL 구문 파헤치기

 

SQL에 4가지의 목적을 가진 용법 (CRUD / Create, Read, Update, Delete)

데이터를 읽을 때는 (Read) ‘Select 구문’을 사용 select구문은 select/from/where/group by/having/order by 의 6가지 절로 이루어져 있습니다.

 

  • Select * from : SELECT * FROM은 SQL 문법에서 사용되는 구문으로, 데이터베이스 테이블에서 모든 컬럼의 데이터를 조회할 때 사용됩니다.
    은 와일드카드 문자로, 모든 컬럼을 의미합니다. 여러 개의 정보를 추출하기 위해서는 SELECT 문을 사용하고, 원하는 컬럼들을 명시적으로 지정해야 합니다. 각 컬럼은 쉼표로 구분하여 나열합니다. → SELECT 이름, 나이 FROM Customers;
  • 예를 들어, "Customers"라는 테이블에서 모든 데이터를 조회하고자 한다면 다음과 같이 SELECT * FROM Customers;와 같은 SQL 문을 사용할 수 있습니다.
    -- 데이터를 가져올 때 가장 먼저 알려주어야 하는 것(컴퓨터에게) 최소 2가지의 정보가 무엇일까요?
    -- 1. 가져와야 할 데이터가 어떤 것인지? -> Select
    -- 2. 그 데이터는 어디에 저장되어 있는지 ? -> From 절


    SELECT * FROM Customers;


    1. Select : ' ~을 가져와!' 라는 뜻입니다.
         - select 뒤에 어떤 것을 가져올지를 적어서 컴퓨터에게 알려줍니다.
       - * (와일드카드) : 모든 (컬럼)의 값을 가져와! 란 뜻입니다.
       - 컬럼(열 - 세로줄) 정보에 대해 원하는 부분을 적어줍니다.
       - select columnName1, columnName2와 같이 개별 컬럼명을 적어 줄 때는 콤마(,)로 구분해줍니다.


    2. From : 데이터를 어디서 가져올지 컴퓨터에게 알려주는 라인
        - select 구문을 실행하기 위한 필수 조건입니다
        - 데이터가 저장되어 있는 주소인 table 명을 적어주어야 하고, 
        - DB 종류에 따라 DB명과 Table 명을 같이 적어줘야 하는 경우도 존재합니다.
        - join명령도 from 절에 작성해서 컴퓨터에게 알려줍니다.

    SELECT *
    FROM Customers
    LIMIT 5;


    * SQL 문에서 결과를 제한하는데 사용되는 절입니다. 
        LIMIT 절은 추출하고자 하는 결과의 개수를 지정하여 해당 개수만큼의 행만 반환합니다.

 

  • 이렇게 작성된 SQL 문은 Customers 테이블의 모든 컬럼에 해당하는 데이터를 반환합니다.
    데이터베이스 시스템은 해당 테이블의 구조를 기반으로 모든 컬럼을 가져와 결과를 반환합니다.

  • 주의할 점은 SELECT * FROM을 사용할 때는 데이터베이스의 성능 측면을 고려해야 합니다.
    모든 컬럼을 조회하면 불필요한 데이터까지 가져올 수 있으며, 테이블에 많은 컬럼이 있는 경우 데이터를 가져오는 데 시간이 오래 걸릴 수 있습니다.
    또한, 테이블 스키마가 변경되었을 때 코드에 영향을 주는 등의 문제도 발생할 수 있습니다.
    따라서, 필요한 컬럼만 명시적으로 선택하여 조회하는 것이 좋습니다.
728x90
반응형

'[ DATABASE]' 카테고리의 다른 글

[SQL] 기본 문법  (0) 2023.07.20

+ Recent posts