본문 바로가기

공부 기록/Database

DML - 데이터 조작하기


SELECT - 데이터 조회하기

SELECT(DISTINCT) {column_name}(ALIAS) FROM {table_name} [WHERE {attribute} = {value}];
SELECT CONCAT({column_name}, '-', {column_name}) FROM {table_name};

 

  • DISTINCT : 중복행을 제거한다.
  • ALIAS : 컬럼의 별칭을 지정한다.
  • CONCAT : 문자열을 결합한다.

 

SELECT * FORM employee WHERE deptno IN (10, 30);

 

SELECT deptno (as) 부서번호, name (as) 부서명 FROM department;

 


 

-  Like

  • 와일드 카드를 사용하여 특정 문자를 포함한 값에 대한 조건을 처리한다.
  • % : 0에서부터 여러 개의 문자를 나타냄
  • _ : 단 하나의 문자를 나타내는 와일드 카드
SELECT name, job FROM employee WHERE name LIKE '_A%';

 


 

-  여러 가지 함수

SELECT UPPER('SEoul'), UCASE('seOUL'); // SEOUL, SEOUL
  • UCASE, UPPER : 대문자로 반환한다.

 

SELECT LOWER('SEoul'), LCASE('seOUL'); // seoul, seoul
SELECT LOWER(name) FROM employee;
  • LCASE, LOWER : 소문자로 반환한다.

 

SELECT substring('Happyy Day', 3, 2);  //pp
  • substring : 문자열을 slice할 수 있다.

 

SELECT LPAD('hi', 5, '?');  //???hi
SELECT RPAD('joe', 7, '*');  //joe****
  • LPAD, RPAD : 왼쪽/오른쪽에 지정한 문자로 채워준다.

  

SELECT LTRIM(' hello');  //hello
SELECT TRIM(BOTH 'x' FROM 'xxxhixxx');  //hi
  • TRIM, LTRIM, RTRIM : 공백을 없애준다.

 

CAST({expression} AS {type})
CONVERT({expression}, {type})
CONVERT({expression} USING {transcoding_name})

 

select cast(now() as date);
select cast(1-2 as unsigned);
  • CAST, CONVERT : type을 변경(지정)하는 데 유용하다.
    • MySQL type : BINARY, CHAR, DATE, DATETIME, TIME, SIGNED, UNSIGNED

-  그룹 함수

SELECT AVG(salary), SUM(salary) FROM employee WHERE deptno=30;
SELECT deptno, AVG(salary), SUM(salary) FROM employee GROUP BY deptno;

 

INSERT - 데이터 삽입(추가)하기

  • 필드명 생략 => 모든 필드 값을 반드시 입력해야 한다.
  • 필드명 지정 => 디폴트 값이 세팅되는 필드는 생략 가능하다. 필드가 추가/변경/수정 되는 변경에 유연하게 대처 가능하다.
INSERT INTO {table_name} VALUES {all_values_list};
INSERT INTO {table_name} {attributes_list} VALUES {values_list};
INSERT INTO {table_name} VALUES ({attribute}, {value}), ({attribute}, {value}), ... ;

 

INSERT INTO role(role_id, description) values(200, 'CEO');

 

UPDATE - 데이터 수정하기

  •  WHERE 절을 생략하면 전체 데이터가 수정된다. 주의!
UPDATE {table_name} SET {attribute} = {value} [update_detail];
UPDATE {table_name} SET {attribute} = {value} WHERE {attribute} = {value};
UPDATE {table_name} SET {attribute} = {value} WHERE {table_name}.{attribute} = {value};
     
UPDATE employee SET salary = salary * 2;

 

UPDATE role SET description='CTO' WHERE role_id = 200;

 

DELETE - 데이터 삭제하기

DELETE FROM {table_name} WHERE {attribute} = {value};
DELETE FROM {table_name};

 

DELETE FROM role WHERE role_id=200;