🦁멋쟁이 사자처럼 15기/3월달 수업 내용 정리

멋쟁이 사자처럼 16회차 ( 03 / 20 )

코딩하는 하마 2025. 3. 20. 16:51

 

[학습목표]

1. Mysql의 기본 구조와 환경설정 및 기본 명령을 구현하고 활용할 수 있다.

2. SELECT 문법을 이해하고 원하는 컬럼 데이터를 조회할 수 있다.

3. WHERE 절을 활용하여 조건에 맞는 데이터를 필터링할 수 있다.
 

 

Database

entity : 데이터베이스에 저장하려고 하는 현실상의 개념 / 객체

attribute : entity의 속성

tuple : entity의 값

 

 

 


MySQL

1) 데이터베이스 만들기 

CREATE DATABASE 데이터베이스명;

 

2) 데이터베이스 삭제하기 

DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명; //테이블 삭제하기

 


 

1) SELECT를 이용하여 데이터 추출하기 

SELECT 컬럼명 ,,, [*] 
FROM 테이블명 ,,,;

 

ex) 

SELECT ENAME , SAL , DEPTNO FROM EMP;
SELECT * FROM EMP;
SELECT ENAME , EMPNO FROM EMP;

 

 

2) 컬럼과 테이블에 별칭 주기

SELECT 컬럼명 [AS] 별칭 ,,,
FROM 테이블명 [AS] 별칭 ,,,;

 

ex) 

SELECT EMP.ENAME , EMP.DEPTNO , DNAME FROM EMP, DEPT;
SELECT E.ENAME , E.DEPTNO , D.DNAME FROM EMP E , DEPT D;
SELECT E.ENAME , E.DEPTNO , D.DNAME FROM EMP AS E, DEPT AS D;

 

 

3) 속성명으로 출력하기

#CASE 1 : 속성명에 공백이 있을 경우 " "
SELECT E.ENAME "사원 이름" , E.DEPTNO "부서 번호"  , D.DNAME "부서 이름" 
FROM EMP E , DEPT D;

#CASE 2 : as 선택
SELECT E.ENAME AS 사원이름 , E.DEPTNO AS 부서번호 , D.DNAME AS 부서이름 
FROM EMP E , DEPT D;

#CASE 3 : 테이블 별칭과 컴럼 별칭
SELECT EMP.ENAME AS 사원이름 , EMP.DEPTNO AS 부서번호 , DEPT.DNAME AS 부서이름 
FROM EMP E , DEPT D;

 

 

4) 중복 데이터 제거하기 

SELECT DISTINCT 컬럼명 [AS] 별칭 ,,, [*]
FROM 테이블명 [AS] 별칭 ,,,;

 

DISTINCT : 지정한 컬럼 값이 완전히 같을 때 중복 제거 
                   컬럼 1개일 때는 해당 컬럼값만 비교
                   컬럼 2개 이상일 때 컬럼들의 조합이 같아야 중복으로 간주

 

#Q10. 사원테이블에서 고유 직업명만 출력하자
SELECT DISTINCT JOB FROM EMP;

#Q11. 사원테이블에서 직업, 부서번호를 고유값으로 출력하자.
SELECT DISTINCT JOB, DEPTNO FROM EMP;

 

 

5) 속성에 4칙 연산 하기 

 

*연산 시 NULL은 NULL로 리턴되어 계산되지 않는다. 

- IFNULL(널이 있는 컬럼 , 초기값)

- COALESCE() 

- WHERE 문과 같이 사용  IS NULL

 

SELECT ENAME , SAL , SAL * 12 AS 연봉 FROM EMP;

SELECT ENAME ,SAL , COMM, SAL +IFNULL(COMM,SAL) AS 봉급 FROM EMP;

SELECT ENAME ,SAL , COMM, SAL +COALESCE(COMM,0) AS 봉급 FROM EMP;

SELECT ENAME ,SAL , COMM, SAL +IFNULL(COMM,SAL *3) AS 봉급 FROM EMP;

 

 

6) 테이블의 사원의 이름과 입사일을 TEST03 테이블로 생성하기 (하지만 Mysql에서는 안됨)

CREATE TABLE TEST03 (사원이름 , 입사일) # Mysql에서는 x 
AS 
SELECT ENAME , HIREDATE 
FROM EMP;

DESC TEST03;

 

 

7) 데이터 없이 구조만 가지고 오기

CREATE TABLE TEST03 LIKE EMP;
DESC TEST03;

 

8) 데이터 입력해서 넣기 

INSERT INTO TEST02
VALUES('111','1980-01-01');

INSERT INTO TEST02
VALUES('222','1980/01/01');

INSERT INTO TEST02
VALUES('333','80-01-01');

INSERT INTO TEST02
VALUES('444','80/01/01');

 

9) 입사년도가 1981년 이후의 사원들 목록 출력하기 

SELECT * FROM TEST02 WHERE HIREDATE > '1981-1-01';