@'localhost' : 해당 컴퓨터에서만 접근 가능
@'%' : 모든 클라이언트에서 접근 가능
create user '계정명'@'localhost' IDENTIFIED BY '비밀번호';
create user '계정명'@'%' IDENTIFIED BY '비밀번호';
grant all privileges on : 데이터베이스의 테이블에 대한 권한 부여, (. : 모든 테이블)
flush privileges : 변경한 권한을 즉시 반영해주는 명령어
grant all privileges on *.* to '계정명'@'%'; # 모든 데이터베이스의 모든 테이블에 대한 권한 부여
grant all privileges on DB명.* to '계정명'@'%'; # 해당 DB의 모든 테이블에 대한 권한 부여
합집합을 나타내는 연산자로, 중복된 값을 제거함
서로 같은 종류의 테이블(컬럼이 같아야함) 에서만 적용이 됨
select * from 테이블1 union select *from 테이블2
합집합을 나타내는 연산자로, 중복된 값을 제거하지 않음
select * from 테이블1 union all select *from 테이블2
스칼라 서브쿼리
- 컬럼처럼 사용
select 컬럼명1, (select..)
일반 서브쿼리
- 하나의 변수(상수)처럼 사용
where 컬럼명 연산자(select..)
인라인뷰
- 하나의 테이블처럼 사용
select 컬럼명1 from(select..) : 하나의 테이블처럼 사용 -> 인라인뷰
조건에 값이 여러 개 리턴되면 any(in, or과 동일한 의미)를 사용
select * from product where pro_name = any (select pro_name from product where pro_price in (100000,1400000));
all(and를 의미)은 도출된 모든 조건 값에 만족할 때
select * from product where pro_price = all (select pro_name from product where pro_price in (1000000));
사전적 의미(거래) → DB(분할이 불가능한 업무처리 단위)
성공 | commit | |
---|---|---|
—> 부분완료 | —→ 완료 | |
활성 | 중단(abort) | |
(active) | —→ 철회 | —→ 철회 |
오류 | rollback |
commit : 모든 작업들을 항상 처리하겠다고 확정하는 명령어로서, 해당 처리 과정을 DB에 영구 저장
rollback : 작업 중 문제가 발생되어 트랜잭션 처리 과정에서 발생한 변경사항을 모두 취소하는 명령어
자동 커밋확인
- autocommit : on 자동으로 commit해줌
- set autocommit = 0(off) / set autocommit = 1(on)
show variables like '%commit%';
트랜잭션 예외
truncate : 개별적으로 행을 삭제할 수 없으며, 테이블 내부의 모든 행을 삭제
트랜잭션 로그에 한 번만 기록하므로 delete보다 성능 면에서 빠름
rollback이 불가능
truncate table 테이블명;
JDBC(Java Database Connectivity)
JDBC Driver 다운로드
인텔리제이 JDBV 드라이버 추가
라이브러리 (도구)
프레임워크 (틀;비워져있는 건축물)
JDBC API를 통해 DBMS와 연결