본문 바로가기

Database5

PostgreSQL 설치하기 (MacOS 기준) MacOS에서 PostgreSQL을 설치하고 설정하는 방법을 정리해본다. terminal에서 Homebrew를 통해 진행한다. brew update brew install postgresDatabase를 생성하기 위해 아래의 명령어를 입력한다. initdb /usr/local/var/postgres아마도 아래와 같은 에러가 발생할 것이다. initdb: error: directory "/usr/local/var/postgres" exists but is not empty If you want to create a new database system, either remove or empty the directory "/usr/local/var/postgres" or run initdb with an ar.. 2019. 12. 17.
트랜잭션(Transaction)이란? "하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합""한 단위를 이루는 일련의 연관된 데이터베이스 연산(조작)" 트랜잭션은 왜 중요할까? 만약 트랜잭션을 하나씩 순차적으로, 한 트랜잭션 끝나고 다음 트랜잭션, ... 과 같이 수행한다면, 프로그램의 속도가 매우 느려질 것이다. DBMS는 CPU보다 I/O 작업을 더 빈번하게 수행하기 때문이다. 따라서 트랜잭션을 순차적으로, 직렬로 수행할수록 CPU가 노는 시간(idle time)이 길어지는 것이고 이는 비효율적이다. 그러니 여러 트랜잭션들을 동시에 수행해야 하는데, 이 때 동시에 수행되는 트랜잭션들이 데이터베이스에 미치는 영향은 순차적으로 수행했을 때 데이터베이스에 미치는 영향과 차이점이 없어야만 한다. 즉 데이터베이스에 저장된 데이터의 무결성은 .. 2019. 3. 3.
[MySQL] DDL(Data Definition Language) 다음은 MySQL의 데이터 타입들이다. 테이블 생성 create table 테이블명( 필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], ........... PRIMARY KEY(필드명) ); 데이터형 외에도 속성값의 빈 값 허용 여부는 NULL 또는 NOT NULL로 설정DEFAULT 키워드와 함께 입력하지 않았을 때의 초기값을 지정입력하지 않고 자동으로 1씩 증가하는 번호를 위한 AUTO_INCREMENT 예제) EMPLOYEE와 같은 구조를 가진 EMPLOYEE2 테이.. 2018. 7. 3.
[MySQL] DML(Data Manipulation Language) 데이터 조작어(DML)에는 다음의 4가지가 있다. SELECT – 검색INSERT - 등록UPDATE - 수정DELETE - 삭제 SELECT 예제) departments 테이블의 모든 데이터를 출력하시오.select * from departments; 어떤 column이 있는지는 "desc"로 확인!desc departments; 예제) employee 테이블에서 직원의 사번(empno), 이름(name), 직업(job)을 출력하시오.select empno, name, job from employee; 예제) employee 테이블에서 직원의 사번(empno), 이름(name), 직업(job)을 alias를 부여하여 출력하시오.select empno 사번, name 이름, job 직업 from empl.. 2018. 7. 3.
MySQL 기초 정리 root 계정으로 DBMS에 접속:mysql -uroot -p Database 생성:mysql> create database DB이름;예) create database connectdb; Database 사용자 생성 및 권한 부여:(MySQL 5.x)mysql> grant all privileges on db이름.* to 계정이름@'%' identified by '암호’;mysql> grant all privileges on db이름.* to 계정이름@'localhost' identified by '암호’;mysql> flush privileges; (MySQL 8.x)mysql> create user '계정이름'@'%' identified by '암호';예) mysql> create user 'conn.. 2018. 7. 3.