2 분 소요

DML DCL



DML

명령어 : SELECT(조회), INSERT(삽입), UPDATE(갱신), DELETE(삭제)

[데이터 조회]

SELECT [ * | DISTINCT ] 속성1, 속성2
     FROM 테이블명
   WHERE 조건
GROUP BY 기준
  HAVING 그룹 조건
ORDER BY 속성[ASC | DESC];

* : 모든 컬럼

asc : 오름차순, 생략가능

desc : 내림차순

집계함수 : 데이터의 그룹을 집계(언산)할 수 있는 함수

count() : 개수
max() : 최대값
min() : 최소값
sum() : 합계
avg() : 평균
-- 집계함수 예시)
		SELECT COUNT(*) FROM STUDENT WHERE 국어 >= 80;
		-- STUDENT 테이블에서 국어점수가 80점 이상인 모든 학생의 수를 조회

		SELECT 과목이름, MIN(점수) AS 최초점수, MAX(점수) AS 최대점수
		  FROM 성적
	  GROUP BY 과목이름
	HAVING AVG(점수) >= 90;
	-- 성적 테이블에서 과목이름에 대한 평균 점수가 90점 이상인 
	-- 그룹의 이름, 최저, 최고 점수를 조회
	-- as 별명 주기

		SELECT STDDEV(국어), VARIAN(국어) *STDDEV : 표준편차, VARIAN : 분산
		  FROM 학생;
		-- 학생 테이블에서 국어점수의 표준편차와 분산을 조회

WHERE 조건

    = : 같다
    <> : 다르다
    is : 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참
    is not : 왼쪽 피연산자와 오른쪽 피연산자가 다르면 참
    between A and B : 값이 A보다는 크거나 같고, B보다는 작거나 같으면 참
    in() : 연산자의 값이 인수로 전달받은 리스트에 존재하면 참
    like '%a' : 접미어가 a인 연산자가 존재하면 참 


[데이터 삽입]

INSERT INTO 테이블명(속성1, 속성2, ... )
     VALUES (데이터1, 데이터2, ... );
INSERT INTO 학생(학번, 성명, 학년)
     VALUES (6866, ‘홍길동’, 2);
     -- 학생 테이블에 학번이 6866, 이름이 홍길동, 2학년인 데이터를 삽입하라.


[데이터 갱신]

UPDATE 테이블명
   SET 속성 = 데이터
 WHERE 조건;
UPDATE 학생
   SET 주소 = ‘인천’
 WHERE 이름 = ‘장길산’;
 -- 학생 테이블에서 이름이 장길산인 학생의 주소를 인천으로 갱신하라


[데이터 삭제]

DELETE FROM 테이블
      WHERE 조건;
DELETE FROM 학생
      WHERE 이름 = ‘장길산’;
       -- 학생 테이블에서 이름이 장길산인 학생의 데이터를 삭제하라


조인 : 데이터 베이스 여러 데이블에서 가져온 레코드를 하나의 테이블이나 결과 집합으로 표현

-- inner join(교집합)
    select mem_idx, mem_userid, mem_name, mem_hp, mem_gender, pro_age, pro_mbti
    from tb_member inner join tb_profile
    on tb_member.mem_idx = tb_profile.pro_idx;
    
-- left join(테이블1 기준으로 테이블2를 조합하는 형태)
    select mem_idx, mem_userid, mem_name, mem_hp, mem_gender, pro_age, pro_mbti
    from tb_member left join tb_profile
    on tb_member.mem_idx = tb_profile.pro_idx;
    
-- right join(테이블2 기준으로 테이블1를 조합하는 형태)
    select mem_idx, mem_userid, mem_name, mem_hp, mem_gender, pro_age, pro_mbti
    from tb_member right join tb_profile
    on tb_member.mem_idx = tb_profile.pro_idx;



DCL

[권한 부여]

GRANT 권한 ON 테이블 TO 사용자 [WITH GRANT OPTION];
GRANT UPDATE ON 학생 TO 장길산 [WITH GRANT OPTION];
-- 장길산에게 학생테이블에 대한 UPDATE에 대한 권한을 부여하라


[권한 철회]

REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE CONSTRAINT];
REVOKE UPDATE ON 학생 TO 장길산 [CASCADE CONSTRAINT];
-- 장길산에게 학생테이블에 대한 UPDATE에 대한 권한을 철회하라

태그:

카테고리:

업데이트: