DataBase

DataBase/Oracle

[oracle] SQL 쿼리 실행 순서 / 처리과정

쿼리문을 실행 할땐 각 절마다 우선순위에 따라 처리가 된다 그러므로 쿼리문을 어떻게 작성했는지에 따라 퍼포먼스 차이가 발생하기도 한다 보통의 실행순서는 아래와 같다 FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 1. FROM에서 전체스캔 2. WHERE 조건으로 데이터 추려내고 3. GROUP BY로 그룹핑 4. HAVING은 그룹핑 이후에 데이터 추려내고 5. SELECT에 선택된 컬럼만 추려내고 6. ORDER BY로 데이터 순서 정렬 순서에 따라 쿼리가 실행되기 때문에 SELECT절에 alias를 사용 할 때, 실행순서가 SELECT절 보다 후 순위인 ORDER BY절에 alias를 사용하면 문제가 없지만 실행순서가 SELECT절 보다 빠른 WHERE..

DataBase/Mysql

MySQL/MariaDB utf8에서 utf8mb4의 차이? collection은?

#해당 문제는 MYSQL, MariaDB에서만 발생한다 Emoji같은 글자를 표현하기 위해서는 글자당 최대 4bytes가 필요한데 MYSQL에서 utf8필드는 최대 3bytes를 지원하기 때문에 Emoji표현에 한계가 있다 (문자가 깨져서 저장 된다) 최근 들어 Emoji사용이 증가하고 보편화 되었기 때문에 DB서버의 환경변수, 테이블 스킴을 utf8mb4로 변경하는게 좋다. 😂😊🤣❤😍😒👌😘👍👍👍🙏🤞👏 DB character set 확인하기 show variables like 'character%'; 두 설정 값은 utf8mb4로 변경 할 필요가 없다 character_set_filesystem = binary character_set_system = utf8 character set이 설정이 안되어 있..

DataBase/Mysql

MySQL 기본구조

MySQL의 기본적인 구조을 알아보기로 했다 처음 설치했을 때 table을 검색해보면 생성하지 않은 테이블들이 생성되어 있다 MySQL 시스템에서 설정 관련해서 사용되는 DB라서 지금까지는 크게 신경을 안쓰고 lock이 걸렸을 때 문제가 있을 때 잠깐 확인 했었던게 전부였다 1.information_schema DB의 메타데이터를 보관하는 스키마다 데이터베이스, 테이블, 칼럼타입, 접근권한 등 데이터베이스의 정의를 확인 할 수 있다 data dictionary, system catalog 정보를 확인 할 수 있다 dev.mysql.com/doc/refman/8.0/en/information-schema-introduction.html 2.mysql 시스템 데이터베이스로 mysql 서버가 운영될 때 필요한..

DataBase/Mysql

[MySQL] auto_increment 삭제, 초기화 (how to remove auto_increment in mysql)

작업중에 PK, auto_increment 속성을가진 컬럼을 제거 해달라고 한다 .. oracle에서는 SEQUENCE를 삭제하면 되지만 속성만 지우는 방법을 몰라서 mysql에서 삭제를 하려고하니 pk는 지울 수 없고 auto_increment를 제거해달라고 경고창이 뜬다 구글링 결과 alter table [테이블명] drop primary key, change [필드명] [필드명] [데이터타입(길이)] not null; 결과적으로 alter문으로 속성을 변경 해주면 되는것... #Auto_increment 초기화방법 alter table [테이블명] auto_increment=1; set @count =0; update [테이블명] set [필드명] = @count:=@count+1; 첫번째 라인은 ..

DataBase/Mysql

[MySQL] foreign key(외래키) 추가, 삭제, 확인 방법

1.foreign key 추가 alter table [추가할테이블명] add constraint [제약조건명] foreign key(컬럼명) references [부모테이블명] (PK컬럼명) [ON DELETE CASCADE / ON UPDATE CASECADE]; ON DELETE CASCADE 외래 키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래 키가 포함되어 있는 모든 행도 삭제 ON UPDATE CASCADE 외래 키에서 참조하는 키 값이 포함된 행에서 키 값을 업데이트 하면 해당 외래 키를 구성하는 모든 값도 키에 지정된 새 값으로 업데이트되도록 지정 2. foreign key 삭제 alter table [테이블명] drop foreign key [제약조건명]; 3. foreign ..

GuNu_K
'DataBase' 카테고리의 글 목록