728x90
SQL 명령어에 대해 소개해보려고 한다. 자주 사용하는 명령어 위주로 설명하고 이후에는 코테문제에서 사용했던 명령어들을 설명하려고 한다.
데이터
다음은 user 테이블의 데이터이다.
id | name | age | |
1 | John | 28 | John@example.com |
2 | Jane | 32 | Jane@example.com |
3 | Bob | 24 | Bob@example.com |
4 | Alice | 29 | Alice@example.com |
5 | Tom | 31 | Tom@example.com |
6 | Lucy | 22 | Lucy@example.com |
7 | Mark | 35 | Mark@example.com |
8 | Ana | 25 | Ana@example.com |
9 | Yun | 28 | Yun@example.com |
명령어
명령어와 명령어에 대한 간단한 설명이다.
키워드 | 설명 |
SELECT | 하나 이상의 컬럼의 데이터를 조회 |
FROM | 데이터 조회의 대상이 되는 테이블을 지정 |
WHERE | 특정 조건건을 만족하는 데이터만을 필터링하여 조회 |
INSERT INTO | 테이블에 새로운 데이터 행을 추가 |
UPDATE | 기존 테이블의 데이터를 수정 |
DELETE | 테이블에서 데이터를 삭제 |
JOIN | 두 개 이상의 테이블을 연결하여 데이터를 조회 |
GROUP BY | 선택된 컬럼을 기준으로 결과 세트를 그룹화 |
ORDER BY | 결과 세트를 특정 컬럼에 따라 정렬 |
CREATE TABLE | 새 테이블을 생성 |
ALTER TABLE | 기존의 테이블 구조를 변경 |
DROP TABLE | 테이블을 데이터베이스에서 제거 |
LIKE | 특정 패턴을 포함하는 데이터를 검색할 때 사용 |
ASC | 특정 데이터를 오름차순으로 정렬 |
DESC | 특정 데이터를 내림차순으로 정렬 |
예시
각각의 명령어(키워드)에 대한 코드, 설명과 예상결과다.
아래는 `users` 테이블을 이용해 각 SQL 키워드의 사용 예시, 그리고 각 예시에 대한 설명과 예상되는 결과를 구체적으로 설명한다.
1. SELECT
- 형식 : SELECT 컬럼1, 컬럼2, ... FROM 테이블명;
SELECT name, age FROM users;
- 설명: 하나 이상의 컬럼의 데이터를 조회합니다.
- 예상 결과: 모든 사용자의 이름과 나이가 출력됩니다.
2. FROM
- 형식 : SELECT 컬럼1, 컬럼2, ... FROM 테이블명;
SELECT age FROM users;
- 설명: 데이터 조회의 대상이 되는 테이블을 지정합니다.
- 예상 결과: users 테이블의 age 행이 출력됩니다.
3. WHERE
- 형식 : SELECT 컬럼들 FROM 테이블명 WHERE 조건;
SELECT * FROM users WHERE age > 30;
- 설명: 특정 조건을 만족하는 데이터만을 필터링하여 조회합니다.
- 예상 결과: 나이가 30세를 초과하는 모든 사용자의 정보가 출력됩니다.
4. INSERT INTO
- 형식: INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...);
INSERT INTO users VALUES (11, 'Eva', 27, 'eva@example.com');
- 설명: 테이블에 새로운 데이터 행을 추가합니다.
- 예상 결과: users 테이블에 새로운 사용자 Eva (27세, eva@example.com)가 추가됩니다.
5. UPDATE
- 형식: UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
UPDATE users SET age = 33 WHERE id = 2;
- 설명: 기존 테이블의 데이터를 수정합니다.
- 예상 결과: 사용자 Jane의 나이가 33세로 업데이트됩니다.
6. DELETE
- 형식: DELETE FROM 테이블명 WHERE 조건;
DELETE FROM users WHERE id = 10;
- 설명: 테이블에서 데이터를 삭제합니다.
- 예상 결과: 사용자 Sara가 users 테이블에서 삭제됩니다.
7. JOIN
- 형식: SELECT 컬럼들 FROM 테이블1 JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;
SELECT users.name, orders.order_date FROM users JOIN orders ON users.id = orders.user_id;
- 설명: 두 개 이상의 테이블을 연결하여 데이터를 조회합니다.
- 예상 결과: 사용자의 이름과 그들의 주문 날짜가 출력됩니다.
8. GROUP BY
- 형식: SELECT 컬럼1, 집계함수(컬럼2) FROM 테이블명 GROUP BY 컬럼1;
SELECT age, COUNT(*) FROM users GROUP BY age;
- 설명: 선택된 컬럼을 기준으로 결과 세트를 그룹화합니다.
- 예상 결과: 각 연령대별 사용자 수가 출력됩니다.
9. ORDER BY
- 형식: SELECT 컬럼들 FROM 테이블명 ORDER BY 컬럼 ASC|DESC(내림차순| 오름차순);
SELECT name, age FROM users ORDER BY name ASC;
- 설명: 결과 세트를 특정 컬럼에 따라 정렬합니다.
- 예상 결과: 사용자 이름을 알파벳 순으로 정렬하여 출력합니다.
10. CREATE TABLE
- 형식: CREATE TABLE 테이블명 (컬럼1 타입, 컬럼2 타입, ...);
CREATE TABLE new_users (id INT, name VARCHAR(100), age INT, email VARCHAR(255));
- 설명: 새 테이블을 생성합니다.
- 예상 결과: new_users라는 새로운 테이블이 생성됩니다.
11. ALTER TABLE
- 형식: ALTER TABLE 테이블명 ADD|MODIFY 컬럼 타입;
ALTER TABLE users ADD column VARCHAR(255);
- 설명: 기존의 테이블 구조를 변경합니다.
- 예상 결과: users 테이블에 새로운 열 column이 추가됩니다.
12. DROP TABLE
- 형식: DROP TABLE 테이블명;
DROP TABLE new_users;
- 설명: 테이블을 데이터베이스에서 제거합니다.
- 예상 결과: new_users 테이블이 데이터베이스에서 제거됩니다.
13. LIKE
- 형식: SELECT 컬럼들 FROM 테이블명 WHERE 컬럼 LIKE '패턴';
SELECT name, email FROM users WHERE email LIKE '%example.com';
- 설명: 특정 패턴을 포함하는 데이터를 검색할 때 사용합니다.
- 예상 결과: "example.com"을 도메인으로 가지는 이메일 주소를 가진 모든 사용자의 이름과 이메일이 출력됩니다.
+ 추후 추가 예정