💡 SQL 명령어 기초 모음
DDL, DML, DCL, TCL 명령어 기초에 대해 공부해보자~!
데이터베이스는 데이터 정의 언어(DDL)로부터 시작하고, SQL문을 효율적으로 사용하기 위해서 데이터 조작 언어(DML)를 깊이 공부해야 하고, 데이터베이스를 효과적으로 관리하기 위해서는 데이터 제어 언어(DCL)를 사용할 수 있어야함
개념 스키마 (Conceptual Schema)
외부 스키마 (External Schema) = 서브 스키마
내부 스키마 (Internal Schema)
즉, 데이터베이스에서 스키마란!! 데이터베이스가 데이터를 저장하기 위한 저장 틀이라고 볼 수 있을 것 같다.
❗️ 데이터베이스이름, 테이블이름, 같은 테이블 안에 필드명은 중복 되면 ❌❌
❗️ charset은 utf-8을 권장
❗️ 테이블 컬럼을 삭제하면 기존에 해당 필드에 입력된 모든 자료도 같이 삭제됨
❗️ 데이터 값이 문자열이면 반드시 작은따옴표(')로 감싸기
❗️ where 절이 없는 delete문을 사용하여 테이블에 저장된 모든 데이터가 삭제되더라도 테이블의 구조와 AUTO_INCREMENT의 자동증가 값은 여전히 남아 있음 -> 해당 테이블까지 삭제하고 싶은 경우에는 DROP TABLE문을 사용해야함
❗️ where 절에는 여러개의 다른 컬럼을 조건으로 사용할 수 있음
❗️ 테이블의 레코드를 모두 삭제할 경우에는 DELETE문 보다 TRUNCATE문 사용하기 -> 자동 증가 값이 설정된 컬럼이 존재 시 DELETE문과 다르게 테이블 생성시의 초기 값 부터 생성됨
📌 데이터베이스의 사용자 3가지 분류
1. 일반 사용자 : 비절차적 DML(질의어)를 통한 데이터베이스 접근이 가능함.
2. 응용 프로그래머 : 프로그래밍 언어에 DML을 삽입하여 데이터베이스에 접근.
3. 데이터베이스 관리자(DBA) : DDL과 DCL을 통해 데이터베이스를 정의하고 제어하는 사람
🖍 사용자 계정 생성, 삭제
use mysql;
-> select host, user from user;
❗️ 사용자 계정 생성할 때, '' 꼭 넣어주기
❗️ create user 'my'@% identified by '1234';
-> %는 외부에서 접근을 허용한다는 뜻, 그 외 특정 IP나 DNS에 등록된 명칭으로 지정하면, 그곳에서만 접근이 가능
❗️ 사용자 계정을 만들 때 생성한 호스트와 동일한 호스트를 사용해야만함