CREATE : 테이블 생성
CREATE TABLE 테이블명
ALTER TABLE : 테이블 수정
ALTER TABLE 테이블명 ADD or MODIFY or DROP 컬럼명 데이터타입 [제약조건]
DROP TABLE : 테이블 삭제
DROP TABLE 테이블명
TRUNCATE TABLE : 테이블 내의 데이터 삭제
TRUNCATE TABLE 테이블명
SELECT : 데이터 내용 조회
SELECT 속성명1,속성명2... FROM 테이블명 (WHERE 조건) ...
1-1.WHERE : 조건 비교, 집합 등
WHERE 이름 IN ('가',나');
1-2.GROUP BY : 속성값을 그룹으로 분류
... GROUP BY 급여
1-3. HAVING : GROUP BY 분류 후 그룹에 대한 조건 지정할 때 사용
GROUP BY 부서 HAVING 급여합계 >= 5000;
1-4. ORDER BY : 속성값을 정렬
ORDER BY 학점
JOIN : 두 개 이상의 테이블을 연결하여 데이터를 검색하는 방법
INNER JOIN
OUTER JOIN
CROSS JOIN
SELF JOIN
등 있음
UNION : 테이블을 집합 개념으로 보고 두 테이블 연산에 집합 연산자를 사용하는 방식
INSERT : 데이터 삽입
INSERT INTO 테이블명(속성명1,...) VALUES (데이터1,...)
UPDATE : 데이터 변경
UPDATE 테이블명 SET 속성명=데이터,... WHERE 조건
6.DELETE : 데이터 삭제
DELETE FROM 테이블명 WHERE 조건
GRANT 권한 ON 테이블 TO 사용자
REVOKE 권한 ON 테이블 FROM 사용자
데이터 타입의 종류와 추가적으로 컬럼마다 제약조건을 걸 수 있다는 점 빼고는 유사하다
유사하다
WHERE 없이 사용시 실제에서는 모든 레코드가 삭제된다는 것 빼고는 유사하다.
조건이 id로 한정된다는 점 빼고는 유사하다.
일단 가장 큰 차이점은 SELECT 이후 컬럼명을 지정하여 테이블에서 해당 컬럼에 해당하는 데이터를 모두 출력하지만 내가 구현한 것은 조건에 맞는 데이터를 모두 출력하는 것이다.
실제 문법의 경우 WHERE뿐만 아니라 GROUP BY, HAVING, ORDER BY 등의 구문이 가능하며 DISTINCT를 통해 중복을 제거한 튜플을 옵션으로 설정할 수 있다.
어떠한 일련의 작업을 의미한다. 4가지 특성을 가지는데 하나라도 실패할 경우 전체가 취소되어야 하는 원자성과, 트랜잭션 실행 성공 후 항상 일관된 상태를 보존해야한다는 일관성, 트랜잭션 실행 중 생성하는 연산의 중간결과를 다른 트랜잭션이 접근하지 못하는 격리성, 성공이 완료된 트랜잭션의 결과는 영속적이어야 한다는 영속성이 그것이다.
트랜잭션 처리가 일관된 묶음으로 진행되어야하므로 동기적으로 실행되면 좋다. 비동기가 실행될 가능성이 있는 것은 파일 입출력인데, 따라서 Sync 메소드를 이용해서 파일 입출력을 동기적으로 처리해주는 것이 필요하고 추가적으로 데이터가 잘 저장되면 true
를 리턴해서 확인하는 과정이 필요하다고 생각한다.
(비동기를 쓰겠다면 웬만하면 async/await 구문이 좋겠다고 생각한다.)
트랜잭션을 제공해주는 파일 기반의 DBMS이다. 데몬처럼 동작하는 것이 아닌 마치 라이브러리와 같이 프로그램에 직접 Embed하여 사용한다. 프로그램 내부에서 잦은 파일 접근을 최대한 적게 하기 위한 취지로 만들어진 DB이다.
Nested Loop : 질의에 대해 for문 돌듯이 판단
File Based Processing : 파일 기반으로 동작. 다른 것과 달리 테이블 단위가 아닌 데이터베이스 단위로 잠금이 발생함. 즉 테이블을 여러개로 나누어도 내부적 잠금이 단일 프로세스이므로 write 성능이 달라지지 않음. DB자체가 파일 하나이므로 파일 기반 데이터베이스로서 DB단위로 잠금이 발생함.
Transaction : 트랜잭션 처리 중 문제 발생시 원래 데이터로 복원하고자 함. 이를 위해 원본 데이터를 별도의 파일에 저장->데이터 변경-> 백업 데이터 제거(커밋)
그나마 최근에 기사 준비하며 공부했던 SQL이 나와서 수월하게 할 수 있었다. 정규식을 사용하니 더 편하게 문자열 처리를 할 수 있었다. 앞으로 정규식을 다루는 연습을 더 많이 해야겠다. 내일 마지막 미션이다!! 끝까지 화이팅하잣!