Tomato

SQL

    SQLD 10

    1. NULL 함수 NVL함수 값이 null이면 지정한 다른 값으로 바꿈 NVL2함수 nvl + decode의 의미, null이면 0 / null이 아니면 1 NULLIF함수 2개의 값이 같으면 null, 같지 않으면 첫 번째 값 COALESCE함수 null이 아닌 최초의 인자값 2. group 연산 1) group by 소규모 행을 그룹화 해 합계, 평균, 최댓값, 최솟값 등을 계산할 수 있다! having구문을 조건문으로 사용한다, order by를 사용해 정렬할 수 있다. 부서별/관리자별 급여 평균 계산 select deptno, mgr avg(sal) from emp group by deptno, mgr order by deptno; --부서별, 관리자별 급여 평균이기 때문에 부서와 괸리자 추가 ..

    SQLD 9

    1. View 뷰란 가상의 테이블이다! 실제 데이터를 가지고 있지는 않고 테이블을 참조해서 원하는 칼럼만을 조회할 수 있다. 그렇기 때문에 참조한 테이블이 변경되면 뷰도 당연히 함께 변경된다. 하지만 뷰의 입력/수정/삭제에는 제약이 있다. 애초에 가상의 테이블이니까~ 그래서 특정 칼럼만 조회시킬 수 있어 보안성을 향상시킨다. 원하는 칼럼만 조회할 수 있으니까 당연히 보안이 좋을 수 밖에! 뷰는 한 번 생성하면 변경할 수 없고, 변경해야 한다면 삭제 한 후에 다시 생성하는 수 밖에 없다! (alter문도 안 돼요.) 뷰를 생성할 때 create view문을 사용하고 참조할 테이블은 select문으로 지정한다. ex) create view v_emp as select * from emp; 이렇게 생성해두고 ..

    SQLD 8

    SQLD 8

    이번에는 트랜잭션에 대해 알아볼게요. 처음에 트랜잭션이라는 단어를 보고 이게 대체... 뭔가 작업을 처리하는 단위가 뭔데요... 했거든요. 결국은 풀어서 말하자면, 데이터베이스의 상태를 변화시키는 어떤 논리적 기능을 수행하는 작업 단위, 한번에 수행되어야 하는 연산들을 말하더라고요! 1. 트랜잭션 특성 1) 원자성: All or Nothing 2) 일관성: 트랜잭션 하나 실행했는데 데이터모델 자체가 바뀌거나 하는 일이 없어야 한다는 말 3) 고립성: 누군가가 어떤 모듈에 접근을 하는데 함께 작업하면 안 된다는 말, 한 사람이 작업을 하고 있기 때문에 다른 사람은 그게 끝나고서야 들어갈 수 있다는 것 4) 영속성(=지속성): 한 번 데이터 실행하고 나면 다른 사용자가 바꾸기 전까진 영구적으로 보장되어야 한..

    SQLD 7

    저번에 테이블 생성과 데이터 추가를 해보았으니 이번에는 테이블을 삭제해볼게요! 만든 테이블이 사실 원하는 게 아니었던 거죠! 그럼 삭제해야만 되겠죠? drop table EMP; => 테이블이 삭제됩니다! 이제 dept_code를 varchar(5) 타입으로 해서 다시 생성해볼게요! 첫번째 방법, create table EMP( empno int not null primary key, emp_name varchar(30) not null, age int not null, sal int not null, dept_code varchar(5) not null ); => 다시 EMP 테이블이 생성됩니다. commit; => 이러면 서버, HDD, SSD 등 물리적 저장장치에 보내지고 한 번 커밋한 것은 다시 ..

    SQLD 6

    create table EMP( empno int not null primary key, emp_name varchar(30) not null, age int not null, sal int not null, dept_code int not null ); => EMP 테이블 생성! select*from emp; => 아직은 데이터를 넣지 않았기 때문에 아직 표에 데이터가 나오지 않아요! create table DEPT( dept_code int not null primary key, dept_name varchar(30) ); => DEPT 테이블 생성! SQL은 관계형 데이터베이스를 사용하는 절차형 언어로, 데이터 구조 정의/조작/제어 등을 할 수 있어요. 이걸 무엇으로 할 수 있느냐!!에 대해 알아볼..

    SQLD 5

    SQLD 5

    Relation Database 1. Database Vs Database management system Database는 데이터를 어떤 형태의 Data Structure로 사용하느냐에 따라 나누어져요. *데이터베이스의 종류: 계층형, 네트워크형, 관계형 계층형: Node형태로 되어 있는, Tree형태의 자료구조에 데이터를 저장/관리, 1:N의 관계 네트워크형(망형): Owner와 Memeber 형태로 데이터 저장, 1:N, M:N의 관계 표현 가능 *둘의 문제점: 상위에 무엇이 있는지 파악해야 해서 유지/보수가 힘듦 > 관계형 데이터베이스 등장 관계형: 릴레이션에 데이터 저장/관리, 집합 연산, 관계 연산 O Database management system은 각 데이터베이스를 관리하기 위한 소프트웨어..