데이터를 어떤방식으로 활용하는가?
SQL의 종류
DDL은 데이터를 정의할 때 사용하는 언어로 테이블이나 데이터베이스를 생성,수정,삭제와 같은 행위를 할 때 사용한다.
DB,table 등을 생성하는 문장이다.
데이터베이스에서 데이터를 조작하는 언어(저장,삭제,수정,조회)
데이터를 조회할 때 쓰는 문법이다.
테이블에 새로운 데이터를 삽입할 때 사용한다.
테이블에서 특정한 조건에 맞는 데이터들을 삭제한다.
where절이 없다면 모든 조건을 삭제하기에 주의 필요.
테이블에서 특정한 조건에 맞는 데이터들을 수정할 때 사용한다.
where절이 없다면 모든 조건을 수정하기에 주의 필요.
데이터베이스에 대한 권한과 관련된 문법으로 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용한다.
데이터베이스의 특정 유저에게 사용권한(Select,Insert,Update,Delete 등)을 부여할 떄 사용한다.
데이터베이스의 특정한 유저에게 사용 권한을 취소할 때 사용한다.
제약 조건의 종류
테이블에 소속된 특정 컬럼이 중복된 키를 가질 수 없는 조건(같은 값을 가질 수 없는 사용자의 아이디,이메일등 과 같은 고유한 정보의 저장에 사용)
--ex
--만약 userId int(11) not null unique primary key, 이고
--기존에 1의 값이 들어가 있다면
Insert into user(userId) value 1 은 unique 제약 조건에 의해서 에러가 발생하여 등록되지 않는다.
특정 컬럼이 아무런 값을 입력받지 않도록 설정하거나, 무조건 값을 입력 받을 수 있도록 설정한다.
데이터가 없다면 NULL을 저장하여, 데이터가 존재하지 않는다는 것을 표시
테이블 내에서 각 행(row)을 고유하게 식별할 수 있는 조건
여기서 auto_increment는 데이터가 입력될 때마다 숫자를 1씩 증가시켜서 기본 키의 고유한 값을 유지시켜 준다.
테이블의 관계를 설정하는 조건
한 테이블의 컬럼이 다른 테이블의 특정 행(Row)을 참조하도록 설정하는 조건
외래키는 각각 테이블간의 연관 관계(RelationShip)을 표현할 때 사용한다.
여기서 적혀있는 연계 참조 제약 조건에 대해서 이야기를 더 해보자면
좀 많아서 이런식으로 사용할 수 있고
중요한 데이터가 저장되어있는 DB일 경우라면 NO ACTION을 통해서 지우지 않는 것이 좋을 것이다.