INSERT INTO 테이블명(데이터를 삽입할 컬럼명) VALUES(테이블의 컬럼 수에 맞게 값 삽입); INSERT INTO 테이블명 VALUES(테이블의 컬럼 수에 맞게 값 삽입); - 테이블의 모든 컬럼에 값을 넣을 때는 컬럼명 생략가능
- 컬럼 순서대로 데이터값이 들어가기에 순서명이 정확해야함
INSERT INTO MEM VALUES(1,'김철수',001,01012345678);
INSERT INTO MEM(EMPLPOYEE_ID,EMPLOYEE_NAME,EMPLOYEE_NUMBER,PHONE);
원하는 컬럼에 데이터값 넣기
INSERT INTO MEM(EMPLOYEE_ID) VALUES(2);
INSERT INTO MEM(EMPLOYEE_NAME) VALUES('박철수');
INSERT INTO MEM(EMPLOYEE_NUMBER,PHONE) VALUES('002','01012345679');
2.UPDATE 데이터 수정
UPDATE 테이블명 SET 컬럼명 [WHERE]
UPDATE MEM SET EMPLOYEE
UPDATE MEM SET EMPLOYEE = WHERE EMPLOYEE_ID = '002';
3.DELETE 데이터 삭제
DELETE FROM 테이블명 [WHERE] 컬럼명;
DELETE 제약조건 무시 기본적으로는 부모 참조 자식 테이블 있으면 삭제 불가
DELETE로 삭제한거는 롤백으로 복원 가능 TRUNCATE는 롤백으로 복원 불가능
DELETE FROM MEM;
DELETE FROM MEM WHERE EMPLOYEE_ID='001';
방법1
SELECT EMP_ID,EMP_NAME,SALARY FROM EMPLOYEE;
방법2
SELECT EMP_ID,EMP_NAME, SALARY
FROM EMPLOYEE;
SELECT 컬럼명 -- 조회하고자 하는 컬럼명 기술 FROM 테이블명 -- 조회하고자 하는 컬림이 포함된 테이블명 기술 WHERE 조건식; -- 행을 선택하는 조건 기술, 조건을 만족하는 행만 반환 -- 조건식 복수로 붙여서 사용가능. 복수라도 WHERE절 한개만 기술
한 테이블의 모든 정보 조회
--EMPLOYEE 테이블의 모든 정보 조회
방법1
SELECT EMP_ID,EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE, JOB_CODE, SAL_LEVEL, SALARY,
BONUS, MANAGER_ID, HIRE_DATE, ENT_DATE, ENT_YN FROM EMPLOYEE ;
방법2
SELECT * -- * : 전체
FROM EMPLOYEE;
DISTINCT
중복제거
DISTINCT는 한번만 쓸 수 있다
-- DISTINCT : 중복제거
SELECT DISTINCT JOB_CODE
FROM EMPLOYEE;
-- EMPLOYEE 테이블에서 직원의 부서 코드를 중복 없이 조회
SELECT DISTINCT DEPT_CODE
FROM EMPLOYEE;
-- DISTINCT는 한번만 쓸 수 있다
--SELECT DISTINCT DEPT_CODE, DISTINCT DEPT_CODE -- ERROR
--FROM EMPLOYEE;
DISTINCT A,B 콤마로 같이 쓰면 ()로 묶은 효과 발생
콤마로 두 컬럼을 묶으면 두 컬럼의 조건이
AND조건으로 교집합 된 것만 중복 제거한다
SELECT DISTINCT DEPT_CODE, JOB_CODE -- 콤마로 두 컬럼을 묶으면 두 컬럼의 조건이
FROM EMPLOYEE; -- AND조건으로 교집합 된 것만 중복 제거한다
리터럴(literal)
값 자체
싱글쿼테이션( ' ' )
오라클에서는 문자,문자열,데이트 상관없이 다 싱글쿼테이션(’ ‘)으로 감싸준다
컬럼 별칭
컬럼명 AS 별칭 / 컬럼명 AS “별칭” / 컬럼명 별칭 / 컬럼명 “별칭”
별칭 : ""
쌍따옴표( “”)를 무조건 붙여야하는 조건
1)별칭에 특수문자가 들어갈 경우 2)별칭이 숫자로 시작할 경우 쌍따옴표 = 더블 쿼테이션(” ”) EX) 직원 명 ←띄어쓰기 공백 특수문자라 “직원 명”으로 적어줘야한다 EX) SALARY*12 AS 연봉
SELECT 컬럼명 -- 조회하고자 하는 컬럼명 기술 FROM 테이블명 -- 조회하고자 하는 컬림이 포함된 테이블명 기술 WHERE 조건식; -- 행을 선택하는 조건 기술, 조건을 만족하는 행만 반환 -- 조건식 복수로 붙여서 사용가능. 복수라도 WHERE절 한개만 기술
비교연산자
>, <, >=, <=, = ,!=
크다, 작다, 크거나 같다 같다 : = 같지않다 : != , ^= , <>
컬럼 별칭
컬럼명 AS 별칭 / 컬럼명 AS “별칭” / 컬럼명 별칭 / 컬럼명 “별칭”
별칭 : ""
리터럴(literal)
값 자체
싱글쿼테이션( ' ' )
오라클에서는 문자,문자열,데이트 상관없이 다 싱글쿼테이션(’ ‘)으로 감싸준다
-- 컬럼 별칭
-- 컬럼명 AS 별칭 / 컬럼명 AS “별칭” / 컬럼명 별칭 / 컬럼명 “별칭”
/*
리터럴(literal)
값 자체 ‘ ‘
오라클에서는 문자,문자열,데이트 상관없이 다 싱글쿼테이션(’ ‘)으로 감싸준다
데이터 타입에 상관없이 별칭(””) 외에는 다 싱글쿼테이션으로 감싼다
*/
-- EMPLOYEE 테이블에서 직원의 직원 번호, 사원명, 급여, 단위 조회
SELECT EMP_NO, EMP_NAME, SALARY, '원' "단위 : 원"
FROM EMPLOYEE;
SELECT EMP_NO, EMP_NAME, SALARY, '@' "원"
FROM EMPLOYEE;
-- 별칭 : ""
-- 리터럴을 싱글쿼테이션으로 처리한다 : ' '
-- '원'이라는 컬럼을 보여주고 싶지않으면 더블쿼테이션""으로 단위써주자
-- EMPLOYEE테이블에서 직원의 직급 코드 조회
SELECT EMP_ID, '직급코드' AS 직급코드
FROM EMPLOYEE;
SELECT EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE 'b%';
-- 결과 : 방명수 bang ns@kh.kr
-- 결과 : 없음
-- 리터럴은 대소문자 철저히 구별하기에 대문자 BANG으로 시작하는 EMAIL이 없어서 안나온 것
-- EMPLOYEE 테이블에서 직원의 부서 코드를 중복 없이 조회
SELECT DISTINCT JOB_CODE
FROM EMPLOYEE;
-- DISTINCT는 한번만 쓸 수 있다
--SELECT DISTINCT DEPT_CODE, DISTINCT DEPT_CODE -- error
--FROM EMPLOYEE;
SELECT DISTINCT DEPT_CODE, JOB_CODE -- 콤마로 두 컬럼을 묶으면 두 컬럼의 조건이
FROM EMPLOYEE; -- AND조건으로 교집합 된 것만 중복 제거한다
/*
SELECT 컬럼명 -- 조회하고자 하는 컬럼명 기술
FROM 테이블명 -- 조회하고자 하는 컬림이 포함된 테이블명 기술
WHERE 조건식; -- 행을 선택하는 조건 기술, 조건을 만족하는 행만 반환
-- 조건식 복수로 붙여서 사용가능. 복수라도 WHERE절 한개만 기술
--비교연산자
>, <, >=, <=, = ,!=
크다, 작다, 크거나 같다
같다 : =
같지않다 : != , ^= , <>
*/
--EMPLOYEE테이블에서 부서코드가 'D9'인 직원의 이름, 부서코드 조회
SELECT EMP_NAME, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE = 'D9';
-- '' 없이 D9만 쓰면 컬럼으로 인지하게 됨
-- 'd9'라고 써도 안됨. 리터럴은 대소문자 구분
--급여가 4000000이상인 직원의 이름, 급여 조회
SELECT EMP_NAME, SALARY
FROM EMPLOYEE
WHERE SALARY >= 4000000;
-- EMPLOYEE테이블에서 부서코드가 D9이 아닌 사원의 사번, 이름, 부서코드조회
SELECT EMP_NO, EMP_NAME, DEPT_CODE
FROM EMPLOYEE
--WHERE DEPT_CODE != 'D9';
WHERE DEPT_CODE <> 'D9';
WHERE DEPT_CODE ^= 'D9';
-- EMPLOYEE 테이블에서 퇴사 여부가 N인 직원을 조회하고 근무 여부를 재직중으로 표시
-- 사번,이름, 고용일, 근무여부 조회
SELECT EMP_ID, EMP_NAME, HIRE_DATE, '재직중' "근무여부"
FROM EMPLOYEE
WHERE ENT_YN = 'N';