MySQL 터미널 PATH 설정 ▼ macOS에서 MySQL 을 설치한 뒤에 mysql 설치 경로를 확인해보면 다음과 같습니다. 그래서 mysql 명령을 실행할 수 없습니다. 따로 PATH를 설정해줘야 합니다. 최근에는 맥북에서 zsh를 기본적으로 사용되도록 변경되었기 때문에 .zshrc 파일을 수정해서 적용해야 합니다. /usr/local/mysql/bin/mysql ▼ 시스템 환경설정으로 이동해서 MySQL 설정을 선택합니다. 만약 프로그램이 설치되어 있지 않다면 다음 글을 확인해서 설치부터 해야 합니다. https://code-algo.tistory.com/29?category=950577 [MySQL] 실리콘 M1 맥에 MySQL 커뮤니티 버전 설치 및 비밀번호 설정 MySQL 커뮤니티 버전 My..
테이블 추가 DATA DEFINITION LANGUAGE (DDL)은 데이터베이스 테이블을 정의하기 위한 언어입니다. 데이터베이스는 여러 개의 테이블로 이루어져 있는 만큼 테이블 추가와 변경 삭제는 중요합니다. DDL은 테이블 구조를 변경하거나 새로 만들고 또 삭제할 수 있는 언어를 말합니다. MySQL에서 실제 테이블을 삭제하고 수정 삭제를 해보겠습니다. ▼ 테이블 생성 (Create)을 하려면 다음과 같이 컬럼들을 나열하고 기본키 설정 및 기본값 설정을 해줘야 합니다. 다양한 데이터 타입이 있는데 다른 글에서 따로 정리해보도록 하겠습니다. 또한 NOT NULL은 컬럼에 NULL 값 즉 빈 값을 넣을 수 없다는 의미가 됩니다. ▼ 다음은 예문입니다. 새로운 employees 데이터베이스를 생성하고 프라..
인덱스 개념 인덱스란 SELECT 구문을 사용할 때 조회되는 속도를 높이기 위해서 특정 컬럼의 데이터를 말 그대로 인덱싱 하는 기술을 의미합니다. 책을 읽을 때 맨 뒤쪽에 색인(Index) 부분을 떠올리시면 좋을 것 같습니다. 만약 어떤 책에서 특정 단어를 포함한 내용을 눈으로만 찾으려면 정말 오래 걸릴 겁니다. 하지만 색인 부분에서 특정 페이지를 찾고 해당 부분을 찾는 다면 훨씬 빨리 찾을 수 있습니다. 물론 컴퓨터는 색인이 되어 있지 않아도 빨리 찾을 수 있지만 특정 자원을 활용하기 위해서는 반드시 인덱스를 사용하고 효율적으로 데이터를 찾아서 반환하는 게 중요합니다. 인덱스 키의 종류 프라이머리 키 : 보통 테이블 생성 시 기본 적으로 만들게 되는 기본키입니다. 키 이름이 없는 것이 특징이고 가장 빠..
JPA를 사용하면서 JQPL 로 쿼리를 작성했는데 다음과 같은 에러 문제를 겪었습니다. GROUP BY 명령을 실행할 때 MySQL 5.7 이상 버전 부터는 sql_mode 옵션을 변경해줘야 합니다. GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 오래된 데이터베이스에서는 문제없이 동작하는 코드 였는데 새로운 MySQL 을 도커로 설치하고 실행하니 문제가 되어서 찾아보았습니다. only_full_group_by 옵션을 비활성화 하는 방법은 다음과 같습니다. 관리자 권한으로 로그인 한뒤에 mysql 에서 다음과 같이 입력해서 only_full_group_by 옵션을 꺼주면 됩니다. 참고로 MySQL 뿐만아니라 MariaDB에서도..
DDL (데이터 조작어, Data Manipulation Language) CREATE : 데이터베이스 생성 ALTER : 데이터베이스 변경 DROP : 데이터베이스 삭제 RENAME : 데이터베이스 이름 변경 COMMENT : 데이터베이스 주석 추가 TRUNCATE : 데이터베이스 데이터 전체 삭제 DML (데이터 정의어, Data Definition Language) INSERT : 데이터 추가 UPDATE : 데이터 수정 DELETE : 데이터 삭제 SELECT : 데이터 검색 MERGE : 데이터 추가 + 데이터 수정 CALL : PL/SQL 또는 JAVA 서브 프로그램 호출 EXPLAIN PLAN : 데이터 접근 경로 해석 LOCK TABLE : 동시성 제어 DCL (데이터 제어어, Data C..
데이터베이스 시스템은 DBMS와 데이터베이스가 핵심이 됩니다. 데이터베이스의 장단점을 잘 알고 장점을 잘 활용해서 시스템을 구성하고 설계를 할 필요가 있습니다. 또한 단점을 잘 이해하고 그로 인한 대비책을 마련하는게 좋습니다. 장점 데이터 종속성이 최소화된다. 데이터 중복성이 감소한다. 데이터 동시 공유가 가능하다. (동시성 제어 concurrency control) 데이터 일관성 유지가 쉽다. 데이터 무결성 유지가 쉽다. 데이터 보안이 향상된다. 표준화된 데이터 접근이 가능하다. 데이터 가용성이 향상된다. 응용 프로그램의 개발 비용이 감소한다. 단점 시스템 운영비용이 증가한다. 시스템 관리 부담이 높아진다. 시스템 취약성이 증가한다. 파일 정보 시스템에 비해서 여러가지 장점을 갖게됩니다. 단지 파일 시..
MySQL 커뮤니티 버전 MySQL은 세계에서 가장 많이 사용하는 오픈소스 RDBMS입니다. 1995년에 최초 개발되었으며 코드가 공개되어 있어 누구나 다운로드하여 사용할 수 있는 데이터베이스 관리 툴입니다. 무료에도 불구하고 처리 속도가 빠르고 설치가 쉽습니다. 대용랑 데이터 처리까지 가능하며 보통 소규모 조직에서 저비용으로 시스템을 구축할 때 적합한 DBMS입니다. 전세계적으로 1천만대 이상의 서버가 운영되고 있으며 오라클과 함께 가장 많이 사용되는 DB 중에 하나입니다. 다만 2010년에 오라클에 인수되었지만 현재도 오픈소스 정책은 유지되고 있으며 리눅스나 맥, 윈도우에서 모두 사용할 수 있고 다양한 프로그래밍 언어에서도 적용이 가능한 범용 데이터베이스입니다. MySQL 제품 분류 구분 제품명 특징..
MariaDB 관리 MariadDB 의 기초적인 사용자 관리와 간단한 SQL 구문을 이용해 데이터베이스 스키마와 테이블을 만들고 데이터를 삽입하는 법을 알아보겠습니다. ROOT 사용자 접속 MariadDB를 관리와 사용자를 만들고 제거하기 위해 root로 접근해야 합니다. 사용자 관리 루트 사용자로 접속하게되면 모든 설정을 수정하거나 사용자를 관리할 수 있지만 이는 보안적으로 결함이 되기도 합니다. 그래서 일반 사용자를 만들어 특정데이터에 접근을 사용자마다 제한을 두는 편이 좋습니다. 1) 사용자 생성과 권한 부여 (*는 전체를 나타냅니다.) sql > grant 권한종류 on 스키마이름.테이블이름 to 사용자이름@호스트 identified by '비밀번호'; 2) 사용자 삭제 sql > drop use..