identifying, non-identifying 관계,
종속으로 생각하니깐 편했음,
identifying 의 경우 부모의 PK 가 자식의 PK 로도 사용되므로, 부모의 존재 없이는 자식이 존재할 수 없음,
non-identifying 의 경우 부모의 PK 가 자식의 FK 로 사용, 부모의 존재 없이도 독립적으로 존재할 수 있음
실제 두 entity 관계가 그러한 성질을 가지고 있는지와 무관하게 데이터 베이스 상에서 그렇게 존재하도록 임의로 지정하는 것이라고 생각하면 될 듯..
PK 가 2 개일 경우, 합쳐졌을 때 유일성이 보장되어야 한다.
DCL Data Control Language
데이터의 보안, 무결성, 회복 등을 제어하는 구문
user column 확인 가능, root 계정이 두 개 존재, Host 와 User 가 연결되어서 사용되는 것 실제로 중복되는 것이 아님,
desc 을 통해 스키마 확인 가능,
user 의 데이터 베이스 생성
SELECT * FROM user 를 통해 생성 확인
userid 의 User 가 생성된 것을 확인할 수 있다.
docker 를 통한 접속으로 인해 localhost 에 접속이 불가능,
전체 접근이 가능한 '%' 로 userid 데이터 베이스의 재생성
connection 객체 생성 확인
새로 만든 userid connection 의 데이터 베이스 조회, show databases 명령어 사용
계정 생성 후 권한을 부여해야 함 (초기값은 권한이 없음)
사용자 비밀번호 변경,
일반 사용자의 정보를 바꾸기 위해 connection 변경, root 계정으로
use mysql; // 비밀번호 정보가 저장되어있는 mysql
먼저 root 계정의 show databases
userid 의 show databases
권한의 차이로 출력의 차이
MySQL - database - table - data 의 관계
데이터 베이스, 테이블에 관한 권한 부여
DDL Data Definition Language
데이터베이스와 테이블을 정의, 수정, 삭제하는 구문
데이터 베이스의 생성, 사용
학생의 table 생성
각 컬럼의 데이터 형식, null, default 값, comment 의 작성
데이터가 추가, 변경 될 때의 날짜,
PK 의 지정
테이블 생성의 확인
실제 프로그램에서는 commit 명령어를 꼭 명시해줘야 한다.
테이블 확인, desc student(테이블 명);
CASCADE ( 종속, 폭포)
ON UPDATE CASCADE : 자동으로 삭제되거나 변경되도록,,,
컬럼의 추가, 수정, 이름 변경
UPDATE 가 가장 느린 이유 : 내부에서 del 과 ins 를 같이 진행한다.
change 도 바꾸는 것이 아닌, 새로 생성
테이블은 변경, 컬럼은 삭제
DML Data Manipulation Language
테이블의 데이터를 삽입, 조회, 수정, 삭제하는 구문
select 시 limit 를 해야 한다!!
where 1=1 을 사용하는 이유, 바뀌는 조건에 대해 유연하게 대처
쿼리 작성 팁,
, 위치에 대해서도 고려 ( 필요 없는 column 에 대해 주석처리를 할 경우 )
SELECT 응용 1
'ReactFileStructure > 부트캠프 과정' 카테고리의 다른 글
07/26 git (0) | 2024.07.26 |
---|---|
07/22 크롤링 (4) | 2024.07.22 |
소수 판별 문제, How do computers calculate square root : Goldschmidt's algorithm, 소수 정리 (0) | 2024.07.11 |
Python_1_dataStruct 0709 (0) | 2024.07.09 |
Python 개요 및 개발 환경 조성 (07/08) (0) | 2024.07.08 |