SQL(Structured Query Language)
데이터베이스 용 프로그래밍 언어를 말한다. SQL은 구조화 된 쿼리 언어이며,데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다.
SQL 특징
- 선언적 언어이다.
- 명령어를 이용해 결과를 도출하는 것이 아니라 원하는 결과를 명시하고 그 결과를 얻는 방식의 언어이다.
- 데이터의 삽입,수정,삭제,검색 및 관리를 위한 다양한 기능을 제공한다.
- 데이터베이스의 구조를 정의하는 명령어를 제공한다.
- 테이블,뷰,인덱스 등 데이터베이스 구조를 정의하고 수정하는 명령어가 포함된다.
- 데이터베이스에 대한 보안 기능을 제공한다.
SQL 장점
- 직관적인 구문과 명령어를 사용하여 복잡한 데이터 검색 및 조작을 상대적으로 쉽게 수행할 수 있다.
- 데이터 간의 관계를 설정하여 데이터의 일관성을 유지할 수 있다.
- 데이터를 효율적으로 관리할 수 있다.
SQL 단점
- 다중 조인,서브쿼리 등을 사용하는 복잡한 쿼리를 작성할 때 쿼리를 최족화 하는 것이 어려울 수 있다.
(다중 조인이 있는 쿼리에서는 실행 계획을 최적화 하는 것이 좋다.)- 대규모 데이터 처리에서 SQL을 처리 속도가 느려질 수 있다.
SQL 쿼리문
- SELECT
데이터베이스를 불러오는 기능을 한다.(조회기능)select 컬럼명1,컬럼명2, from 테이블명; -- 컬럼1,컬럼2 조회 select * from 테이블명; -- 테이블의 모든 컬럼 조회
- SELECT문 순서
select 컬럼명 From 테이블명 WHERE 조건식 GROUP BY 컬럼명 HAVING 조건식 ORDER 컬럼명
- DISTINCT
SELECT와 함께 사용되며 중복 되지 않는 유일한 값만 조회한다.SELECT DISTENT 컬럼명1,컬럼명2 FROM 테이블명;
- WHERE
SELECT와 함께 사용하며 원하는 값만 가져오고 싶을 때 사용한다.SELECT column_menu FROM 테이블명 WHERE column_menu = '김치찜';
- ORDER BY
데이터 정렬시 사용한다.SELECT * FROM 테이블명 ORDER BY 컬럼명1; -- ASC : 오름차순(생략 시 기본값) -- DESC : 내림차순 SELECT * FROM 테이블명 ORDER BY 컬럼명1, 컬럼명2; -- 컬럼명1로 정렬 후 그 값을 바탕으로 컬럼명2로 정렬
- GROUP BY
그룹화 하여 데이터를 조회한다. 보통 집계함수와 같이 쓰인다.SELECT gener, AVG(price) AS "평균" FROM library GROUP BY gener;
- 집계함수
- SUM() : 컬럼의 함계를 반환
- AVG() : 컬럼의 평균을 반환
- MIN() : 컬럼의 최소값 반환
- MAX() : 컬럼의 최대값 반환
- COUNT) : 행의 개수를 반환
- COUNT(DISTINCT) : 중복 된 값을 제거 하고 행의 개수를 반환
- HAVING
그룹화 된 데이터에 대해서 조건을 제한한다.SELECT gener, AVG(price) AS "평균" FROM library GROUP BY gener HAVING AVG(price) > 조건 값
- INSERT INTO
테이블안에 새로운 데이터를 삽입할 때 사용INSERT INTO 테이블명(컬럼명1,컬럼명2,컬럼명3) VALUE(값1,값2,값3); --컬럼명의 수보다 값의 수가 적으면 나머지 값은 NULL로 처리 된다.
- UPDATE SET
테이블 안 데이터를 수정할 때 사용된다.UPDATE 테이블명 SET 컬럼명1 = 값2, 컬럼명2 = 값2;
- DELETE
테이블 안 데이터 삭제시 사용된다DELECT FROM 테이블명 WHERE 컬럼명1 = 값2; -- UPDATE 떄 WHERE 조건문을 쓰지 않으면 테이블 전체 데이터가 삭제된다.
🙇 참고 사이트 🙇
https://velog.io/@juunghunz/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-SQLTIL-2021.08.26 https://acdongpgm.tistory.com/69 https://rachel0115.tistory.com/entry/SQL-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC-SELECT-%EC%A0%88 https://prmblogs.tistory.com/30