CREATE TABLE employees ()
CREATE TABLE tb_emp_copy
AS SELECT * FROM tb_emp;
제약조건 | 설명 | 예시 |
---|---|---|
PRIMARY KEY | 테이블의 각 행을 고유하게 식별할 수 있는 키 | PRIMARY KEY (id) |
UNIQUE | 열의 모든 값이 고유한지 확인(중복 X) | UNIQUE (email) |
FOREIGN KEY | 다른 테이블의 기본 키에 대한 참조를 설정하여 관계를 정의 | FOREIGN KEY (department_id) REFERENCES departments(department_id) |
CHECK | 열의 값이 특정 조건을 만족하는지 확인 | CHECK (salary > 0) |
NOT NULL | 열의 값이 NULL이 아닌지 확인 | NOT NULL |
테이블 완전 삭제
DROP TABLE employees;
테이블 내 모든 데이터 삭제(오직 데이터만)
TRUNCATE TABLE employees
테이블 이름 변경
RENAME employees TO staff;
SELECT first_name, last_name, salary FROM employees;
INSERT INTO employees (...)
VALUES (...);
UPDATE employees
SET salary = salary * 1.1
WHERE employee_id = 1;
DELETE FROM employees
WHERE employee_id = 1;
: NOT > AND > OR
<> / != / ^=
여러 개의 값을 비교 - or 대체(또는)
WHERE job_id IN ('IT_PROG', 'SA_REP');
WHERE job_id NOT IN ('IT_PROG', 'SA_REP');
%
: 0개 이상의 문자와 일치합니다. (글자수 상관 없음)_
: 한 개의 문자와 일치합니다. ( _개수 만큼)WHERE EMP_NM LIKE '%심%'; --이름에 '심'이 포함
WHERE EMP_NM LIKE '이__' -- 이름이 '이ㅇㅇ' 인 경우
AND EMP_NM NOT LIKE '이%'
범위 지정
WHERE salary BETWEEN 5000 AND 8000;
IS NULL
연산자 : 이 연산자는 해당 열(column)의 값이 NULL인 행(row)을 선택합니다. 예를 들어, employees
테이블에서 commission_pct
열의 값이 NULL인 직원들을 선택하려면 다음과 같이 IS NULL
을 사용할 수 있습니다.
SELECT employee_id, first_name, last_name
FROM employees
WHERE commission_pct IS NULL;
WHERE commission_pct IS NOT NULL;
WHERE commission_pct = NULL;
SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명;
함수 이름 | 설명 | 사용 예시 |
---|---|---|
AVG | 열의 평균 값을 반환합니다. | AVG(salary) |
COUNT | 열의 행 수를 반환합니다. NULL 값은 카운트에 포함되지 않습니다. | COUNT(employee_id) |
MAX | 열의 최대 값을 반환합니다. | MAX(revenue) |
MIN | 열의 최소 값을 반환합니다. | MIN(revenue) |
SUM | 열의 합계 값을 반환합니다. | SUM(salary) |
STDDEV | 열의 표준 편차 값을 반환합니다. | STDDEV(salary) |
VARIANCE | 열의 분산 값을 반환합니다. | VARIANCE(salary) |
HAVING
절은 SQL 쿼리에서 GROUP BY
절과 함께 사용되며, 그룹화된 결과에서 특정 조건을 만족하는 그룹만을 필터링하는 데 사용됩니다. 이는 WHERE 절이 개별 행을 필터링하는 것과 유사하지만, HAVING
절은 그룹화된 결과에 대한 필터링을 수행합니다.
SELECT
department_id,
COUNT(employee_id) AS employee_count,
AVG(salary) AS average_salary
FROM
employees
GROUP BY
department_id
HAVING
COUNT(employee_id) >= 5;
ORDER BY PRICE DESC
LIMIT 3 -- 위에서 3번째 까지 출력
LIMIT 2,5; -- 3번째 부터 5개 출력