DBMS

SQL 테이블 생성 & 삭제 & 조회 & 정렬

보배 진 2025. 11. 12. 08:55
-- 학생 테이블 생성
CREATE TABLE STUDENT (
	STUDENT_ID INT PRIMARY KEY, -- PK : 비어서는 안되고 유일해야 함
	NAME VARCHAR(30) NOT NULL, -- NOT NULL : 공백 허용 x
	SCORE INT DEFAULT 0 -- DEFAULT : 기본값으로 0 
);

DROP TABLE STUDENT;

 

< 테이블 생성 >

CREATE TABLE [ 테이블명 ] (

 

);

 

< 테이블 삭제 >

DROP TABLE [ 테이블 명 ];

 

 

 

 

 

CREATE TABLE STUDENT_Q (
	STUDENT_ID INT PRIMARY KEY,
	NAME VARCHAR(30) NOT NULL,
	SCORE INT DEFAULT 0
);

INSERT INTO STUDENT_Q(STUDENT_ID, NAME, SCORE) VALUES(1, '티모', 90);
INSERT INTO STUDENT_Q(STUDENT_ID, NAME) VALUES(2, '모르가나');
INSERT INTO STUDENT_Q(STUDENT_ID, NAME, SCORE) VALUES(3, '가렌', 73);
DELETE FROM STUDENT_Q WHERE STUDENT_ID=3;

INSERT INTO STUDENT_Q(STUDENT_ID, NAME) VALUES((SELECT NVL(MAX(STUDENT_ID), 0) FROM STUDENT_Q)+1, '베인'); 


SELECT * FROM STUDENT_Q;

SELECT * FROM STUDENT_Q 
ORDER BY STUDENT_ID DESC;

SELECT * FROM STUDENT_Q
WHERE SCORE >= 80;

SELECT * FROM STUDENT_Q
WHERE NAME LIKE '%가%'

SELECT * FROM STUDENT_Q
WHERE SCORE >= 50 AND NAME LIKE '가렌';

SELECT COUNT(*) AS 학생수 FROM STUDENT_Q;

SELECT AVG(SCORE) FROM STUDENT_Q;

UPDATE STUDENT_Q 
SET SCORE = 10
WHERE STUDENT_ID=2;

SELECT NAME, SCORE FROM STUDENT_Q 
WHERE SCORE >= (SELECT AVG(SCORE) FROM STUDENT_Q);

DROP TABLE STUDENT_Q;

 

< 테이블에 추가 >

INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3, ...) VALUES (값1, 값2, 값3, ...);

 

컬럼명을 생략 : INSERT INTO 테이블명  VALUES (컬럼 개수만큼, ...);

⚠️ 이 경우 모든 컬럼에 순서대로 값을 넣어야 합니다.
컬럼이 5개인데 값이 4개면 오류가 빌셍

 

 

< 테이블 조회 >

SELECT * FROM 테이블명

SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;

 

 

< WHERE >

조건 걸어서 데이터 필터링
WHERE 절은 조회할 때 조건을 지정해서 필요한 행(row)만 불러오는 구문

SELECT 컬럼명 FROM 테이블명 WHERE 조건식;

 

< ORDER BY >

데이터 정렬
ORDER BY 절은 조회한 결과를 정렬해서 보여주는 구문

 

 

< LIKE >

특정 문자열(패턴) 검색하기
LIKE는 문자열(column)의 일부를 검색할 때 사용

SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '패턴';

%  : 글자 수 상관없이 모든 문자
%  : 문자% 앞뒤 아무 글자
_   : 정확히 한 글자

 

 

< COUNT >

행(Row) 개수 세기
COUNT()는 조건에 맞는 행의 개수(건수)를 세는 함수

보통 GROUP BY나 통계 쿼리에서 사용 多

SELECT COUNT(컬럼명) FROM 테이블명 WHERE 조건;

 

 

< UPDATE >

데이터 수정하기
UPDATE는 테이블 안의 기존 데이터 값을 바꿀 때 사용
UPDATE 테이블명 SET 컬럼명1 = 값1, 컬럼명2 = 값2, ... WHERE 조건;

WHERE 조건이 없으면 모든 행이 수정됨