DML(Data Manipulation Language)
DML(Data Mainpulation Language)
-> 데이터 조작어
-> 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하는 명령어들
자 일단 시작하기 전에 이번 챕터를 같이 해줄 제가 미리 만들어놓은 테이블을 소개합니다
CREATE TABLE `my_contacts` (`last_name` varchar(30) , `first_name` varchar(20) , `email` varchar(50) , `gender` char(1), `birthday` date , `profession` varchar(50), `location` varchar(50), `status` varchar(20), `interests` varchar(100), `seeking` varchar(100)); |
INSERT
-> 데이블에 데이터를 입력하는 것.
-> 방법은 2가지가 있습니다.
방식 |
쿼리 |
1 |
insert into my_contacts values ('minsu','kim','minssdf@naver.com','M','1991-05-07','student','korea','couple') |
2 |
insert into my_contatcs (last_name,email,gender) values ('younghwi','young@naver.com','F') |
1번 : 테이블의 각 칼럼들을 명시해주지 않은 대신 모든 칼럼에 값을 입력해준다.
2번 : 테이블의 모든 칼럼들을 명시하지 않고 내가 넣고 싶은ㅇ 칼럼에만 데이터를 넣어 줄 수도 있다. 단, 2번 같은 경우에는 내가 입력하지 않은 칼럼이 NOT NULL 이라면 오류가 생성되므로 이럴경우에는 DEFAULT를 설정해주거나 값을 빼지 않고 직접 입력해준다.
UPDATE
-> 입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야하는 경우 사용
update my_contacts set email='수정합니다.' where last_name='younghwi'; |
UPDATE 테이블명 set 수정할칼럼='수정할내용' where 조건절칼럼='조건칼럼내용';
이렇게 해주시면 됩니다.
주의!
UPDATE를 잘못 사용할 경우에는 모든 데이터가 바뀔수가 있으므로 조심히 신중하게 조건절을 준 다음에 사용해 줍니다.
DELETE
- 테이블의 정보가 필요 없게 되었을 경우 데이터 삭제를 수행할 때 쓰는 명령어
delete from my_contacts where last_name='younghwi'; |
DELETE FROM 테이블명 where 조건절칼럼='조건 값';
주의!
UPDATE와 마찬가지로 조건을 잘못 줄 경우 엉뚱한 값이 삭제될 수가 있으므로 신중히 사용합니다.
* 테이블 전체를 삭제하고 싶은 경우.
-> DELETE FROM 테이블명;
-> TRUNCATE 테이블명;
-> 2가지 방법이 있지만 시스템 부하가 적은 TRUNCATE 를 쓰는 것을 추천합니다.
-> 그러나 TRUNCATE 의 경우 삭제된 데이터의 로그가 없으므로 ROLLBACK이 불가능하다.
SELECT
-> 사용자가 입력한 데이터를 조회하기 위한 명령문
현재 이런 구조를 가진 테이블에 어떤 값이 입력되있는지 알고 싶다?!
그럴때 쓰는 명령어가 SELECT 이다.
SELECT * FROM my_contacts; |
my_contacts 테이블의 모든 내용을 보고싶다.
SELECT last_name,first_name,email from my_contacts; |
my_contacts 테이블의 last_name,first_name,email 칼럼의 내용만 보고싶다.
바로 위의 실행 결과 3가지 칼럼만 나왔다.
DISTINCT 옵션
- 중복된 값을 빼고 나머지를 보여준다.
select distinct fist_name from my_contacts; |
first_name 의 전체 값 16개가 나와야 하지만
distinct를 사용했으므로 Anne의 중복값이 없어지고 Anne이 1개만 나왔다.
이럴때 쓰는게 DISTINCT 이다.
ALIAS
- 칼럼에 대한 별명을 부여한다.
- 칼럼명 바로 뒤에 온다.
- 칼럼명과 ALIAS 사이에 AS,as 키워드를 사용할 수도 있다. 안써도 가능하다.
- 이중 인용부호는 ALIAS가 공백, 특수문자를 포함할 경우와 대소문자 구분이 필요할 경우 사용됨.
이렇게 되있는걸 이름, 성, 이메일 한글로 바꾸고 싶다 그럴때 쓴다.
이렇게 바꿔진다.
위의 select 문은 제가 2개는 as 붙이고 하나는 붙이지 않았습니다.
잘 보시고 편할거 같다는 생각이 드시는 것을 사용하면 됩니다.
저기서 본 결과 ALIAS 사용시 문자인데도 ( ' ' ) 를 안붙여도 된다는사실! 붙이나 안붙이나 똑같습니다.ㅎ
산술 연산자와 합성 연산자
- NUMBER 와 DATE 자료형에 대해 적용되며 일반적으로 수학의 4칙 연산과 동일
산술연산자
제가 이번에 가져온 테이블로는 안되므로...
그냥 대충 예시 문장으로 설명하겠습니다.
select name, height-weight as "키-몸무게" from my_BMI; |
이런식으로 써주시면 됩니다.
합성연산자
- 문자와 무자를 연결하는 경우 2개의 수직바(||)에 의해 이루어진다.
- 문자와 문자를 연결하는 경우 + 표시에 의해 이루어진다.
- CONCAT(string1,string2) 함수를 사용할 수 있다.
- 칼럼과 문자 또는 다른 칼럼과 연결시킨다.
- 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.
먼저 이 내용을 하기 위해 테이블 부터 약간 수정해보도록 하겠습니다.
테이블에 total_name 이라는 칼럼을 추가 했습니다.
CONCAT을 이용하여 total_name 칼럼에 first_name 과 last_name 을 붙여 내용을 넣었습니다.
여기서 위의 그림을 보면 CONCAT이 꼭 2개만 합칠 수 있는 것이 아니라 3개도 합칠 수 있다는 사실!
중요합니다^^
'IT > SQLD(SQL개발자)' 카테고리의 다른 글
[SQLD] WHERE (0) | 2019.06.27 |
---|---|
[SQLD] TCL (Transaction Control Language) (1) | 2019.06.26 |
[SQLD] DDL(Data Definition Language) (0) | 2019.06.23 |
[SQLD] 관계형 데이터베이스 개요 (0) | 2019.06.22 |
[SQLD] 분산 데이터베이스와 성능 (0) | 2019.06.21 |