스프링 부트의 spring-data-jpa로 메서드만을 이용해서 데이터를 조작하느라 쿼리문을 다 까먹은 것 같다.
기본적으로 쿼리문을 다시 익혀가야 할 것 같아서 정리하고 공부해놔야겠다.
객체의 생성, 변경, 삭제 명령어
ex.create, alter, drop, rename
schema, domain, table, view, index를 정의, 변경, 삭제할 때 사용하는 언어입니다.
주로 데이터베이스 관리자나 데이터 베이스 설계자가 사용합니다. 데이터 정의어는 3가지 유형으로 craete, alter, drop이 있습니다.
레코즈 제어 명령어
ex. select, insert, update, delete
데이터 베이스 사용장와 데이터 베이스 관리 시스템 간의 인터페이스를 제공합니다.
데이터 베이스 사용자가 응용 프로그램이나 질의어를 통합니다. 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어입니다. 데이터 조작어는 4가지 유형으로 select, insert, delete, update가 있습니다.
객체 권한 부여 등의 제어어
데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는 데 사용하는 언어입니다.
데이터 베이스 관리자가 데이터 관리를 목적으로 사용합니다.
ex. grant, revoke, (commit, rollback : TCL)
정리
DLL, DML, DCL은 모두 SQL 언어라는 공통점이 있습니다. DDL은 데이터와 그 구조를 정의한다는 점이 있습니다. DML는 데이터의 검색, 수정, 삭제 등을 처리합니다. DCL은 데이터 베이스의 사용자 권한을 제어한다는 점에서 차이가 있습니다.
-- database 생성
create database db이름;
-- 사용자 생성 @서버의 주소
create user 유저이름@localhost identified by '비밀번호';
-- 사용자 삭제
drop user user_phl@localhost;
-- (유저이름) 유저에게 (db이름) 데이터베이스 사용 권한 부여
grant all privileges on db이름.* to 유저이름@localhost;
select user();
연습하기
create user coco@localhost identified by '1234';
create database cocoloDB;
grant all privileges on cocoloDB.* to coco@localhost;
create table member (
컬럼 생성 시 이름 타입 크기를 지정함
member_name varchar(5),
member_age int,
member_date date
);
insert into member (member_name, member_age, member_date)
values ('혜린', 211021, str_to_date('17-12-1980','%d-%m-%Y'))
select * from member;
select member_num from member;
ex) 이름이 형철이인 멤버 이름조회
select member_name from member where member_name = '형철';
ex) 이름이 형철이거나 나이가 10살인 테이블 조회
select * from member where member_age = 10 || member_name = '형철';
ex) 이름 오름차순 나이 내림차순
select * from member order by member_name asc;
select * from member order by member_age desc;
ex) 이름이 김으로 시작하는 사람
select * from member where member_name like ('김%');
ex) 이름이 두글자고 성이 김이 오는 사람
select * from member where member_name like ('김_');
ex) 이름이 김으로 끝나는 사람
select * from member where member_name like ('%김');
ex) 이름의 두번째 글자가 김인 사람
select * from member where member_name like ('_김');
ex) 이름 사이에 김이 있는 사람
select * from member where member_name like('%김%');
ex) 이름 두번째가 김인사람
select * from member where member_name like ('_김%');
ex) 평균 나이
as '별명'
select avg(member_age) as '평균 나이' from member;
select disrinct member_name from member;
dese member;
Null yes : 비어있어도 됨
key : 유일하게 구분되어지는 데이터(어떤 컬럼이 키로 저장되어있느냐)
default : 기본으로 정해진 값