이 글은 mac에서 mysql 설치가 되어있지 않고, brew가 설치되어 있다는 가정하에 작성하는 글이다. MySQL 설치 1. brew로 mysql 설치하기아래 명령어를 입력후 mysql 설치를 시작한다. 내 mac에선 설치되기까지 10~15분 정도 걸린것 같다.brew install mysql 2. mysql 실행설치가 다 되었다면 아래 명령어로 mysql을 실행해보자.brew services start mysql==> Successfully started `mysql` (label: homebrew.mxcl.mysql) 3. mysql password 설정아래 명령어로 mysql 비밀번호 설정을 해보자.mysql_secure_installationmysql_secure_installation을..
어디서 본 에런데? 깃헙에서 템플릿 프로젝트를 클론해서 실행시키려니 DB connection 에러가 발생했다. java.sql.SQLSyntaxErrorException: (conn=29) Unknown database ‘데이터베이스 이름’ ERROR 1049 (42000): (conn=29) Unknown database ‘데이터베이스 이름’ 위와 같은 에러가 뜨는데, 에러 내용 그대로 데이터베이스(스키마)를 찾지 못했다는 것이다. 원인 조회 우선 mysql DB 가 실행 중인지 확인한다. > netstat -an | grep 3306 LISTEN 상태가 아니라면 mysql 을 실행한다. > mysql.server start mysql 서버에 접속한다. 패스워드를 입력해주자. mysql -u root ..
MySQL 버전확인 mysql 버전을 확인하는 방법으로 서버 버전 조회와 클라이언트 버전 조회 2가지 방법이 있다. 보통 일반적인 mysql 데이터베이스라 함은 mysql 서버를 뜻하는 것이다. mysql 서버는 데이터베이스 서버 프로그램으로 실제 메모리에 있는 데이터베이스를 뜻하고, mysql 클라이언트는 mysql 서버에 접근 및 통신하여 명령을 보내는 등 해당 DB의 쿼리를 사용할 수 있도록 인터페이스를 제공하는 시스템이다. mysql 버전을 확인하는데는 다양한 방법이 있다. 우선 cmd 를 켜고 mysql에 접속하자 mysql -u root -p mysql 서버로 버전확인 SELECT VERSION(); SHOW VARIABLES LIKE '%VERSION%'; mysql 클라이언트로 버전확인 아..
* 홈페이지에서 회원가입과 로그인을 해보자 1. 첫 로그인 폼 화면 2. 홈페이지에 회원가입을 합니다. 3. 회원가입한 정보가 db에 저장됩니다. 이때 세션에 id가 등록됩니다 4. 회원가입 후 로그인을 합니다. 5. 로그인 정보가 올바르면 main 화면으로 이동하고, 정보가 틀리면 정보를 다시 입력하라고 경고창이 뜹니다. 6. main 창에서 내 정보를 보러 페이지 이동을 한 뒤 내 정보만 받아와서 볼 수 있습니다. 7. 관리자 id는 admin 입니다. admin 계정으로 접속 했을때 회원가입한 모든 사람들의 정보를 볼 수 있습니다. 8. 관리자 모드 일때 회원들을 삭제가 가능합니다. 삭제 했을때 DB에 있는 데이터도 삭제 됩니다. 9. 개인 사용자 모드 일때 각 개인의 정보를 수정할 수 있습니다. ..
* Oracle DB와 Eclipse 연동을 해보자 - 필자의 Oracle version은 11g 버전입니. 다른 버전은 이 포스팅과 조금 다를수도 있으므로 참고하길 바랍니다. - 이 포스팅을 따라하기 위해선 Oracle 11g version과 SQLDeveloper, Eclipse, tomcat을 설치해야합니다. - 데이터베이스는 업무 상황에 따라 데이터를 내부에서 넣고 뽑아낼수도 있고, 외부에서 넣고 뽑아낼 수도 있습니다. - 상황에 따라서 데이터를 관리하는 법이 다르기 때문에 모든 상황에 맞출수 있도록 다양하게 연동방법을 해줘야합니다. - 연동 방법은 3가지가 있는데 3가지 모두 다 할 것을 추천합니다. - 3가지 굳이 다 하고싶지 않을 경우, 최소한 아래 포스팅의 첫번째와 두번째 방법을 해야 DB..
* 서브쿼리(Sub-Query) - SQL 문장 안에서 보조로 사용되는 또 다른 SELECT문을 의미한다. - 최종 결과를 출력하는 쿼리를 메인 쿼리라고 한다면, 이를 위한 중간 단계 혹은 보조 역할을 하는 SELECT문을 서브 쿼리라 한다. - 하나의 SQL문을 기준으로 메인 쿼리를 제외한 나머지 모든 SELECT문을 서브쿼리로 보면 된다. - 서브쿼리는 메인쿼리가 실행되기 이전에 한 번만 실행된다. - 서브쿼리는 여러 개를 사용할 수 있다. - 서브쿼리가 가지는 장점은 한 번 디스크에서 읽어온 데이터를 메모리 안에서 가공해서 사용할 수 있도록 도와주는 것이다. 즉, 동일한 데이터를 다시 한번 이용하여 복잡한 가공에도 물리적인 I/O를 줄여준다. - 서브 쿼리는 SELECT, FROM, WHERE 절 ..
* 조인(JOIN) - 두개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것이다. 한개 이상의 테이블에서 데이터를 조회하기 위해 사용한다. - 두 테이블을 묶어서 추출된 결과를 새로운 테이블을 만들어 집어 넣어 보여주는 형식이다. 새로운 테이블은 데이터베이스 딕셔너리에 저장된다. - 조인은 왜 필요할까? - 두개의 테이블이 서로 릴레이션 관계를 맺고 있을때, 반드시 두개의 테이블을 조합해서만 원하는 정보를 얻을 수 있는 상황이 발생했다 치자. - 이때, 두 테이블 모두 각각 검색해서 정보를 도출해야한다. 조회를 2번이나 해야한다는 뜻이다. - 하지만 JOIN을 사용하면 2번 조회를 거칠 필요없이 한번만 검색을 해도 된다. - 두 테이블을 한번에 묶어 보여주기 때문이다. - JOIN은 두..
* 제약조건(CONSTRAINT) - 제약조건은 결점 없이 정확하고 유효한 데이터가 데이터베이스에 저장될 수 있도록 하기 위하여 데이터를 조작하는데 한계를 규정한 것이다. - 즉, 사용자가 원하는 데이터만 걸러내도록 조건을 만드는 것을, 제약조건을 건다라고 말한다. - 제약조건을 걸때 CONSTRAINT를 사용한다. - CONSTRATINT 뒤에 제약조건의 ID를 부여할 수 있다. - CONSTRATINT를 생략할 시 제약 ID를 자동으로 오라클 시스템에서 생성해준다. - 기본형태 CONSTRAINT 기본형태 CONSTRAINT 제약id 제약내용(칼럼명); - 예시 * 제약 변경 - 제약조건을 주지 않아 추가하거나, 제약조건을 변경, 삭제 하는 경우 ALTER 명령문을 이요하여 변경이 가능하다. - 기본..
* 관계형 데이터베이스 - 관계형 데이터베이스란 임의의 데이터베이스 내에 존재하는 여러 테이블들이 서로 관계를 가지며 운영되는 것을 의미한다. - 관계형 데이터베이스는 테이블 간의 관계를 분명하게 설정하고, 제약조건들을 사용하여 정확한 데이터들을 설정하는 것이 중요하다. - 정확한 데이터란 메모리 공간을 차지하고 있는 안 쓰이는 데이터를 제외한 개체와 속성간에 밀접한 관련이 있는 데이터를 의미한다. - 즉, 관계형 데이터베이스는 불필요한 데이터를 제약조건으로 걸러내고 테이블간에 밀접한 관련이 있는 필요한 데이터들만 남아있는 데이터베이스를 의미한다. * 제약조건(CONSTRAINT) - 제약조건은 결점이 없이 정확하고 유효한 데이터가 데이터베이스에 저장될 수 있도록 하기 위하여 데이터를 조작하는데 한계를 ..
* 키(Key) - 열쇠는 무언가를 열거나 잠글 때 사용하는 것으로, 같은 것이 하나도 없다. 우리집 열쇠가 옆집의 열쇠랑 다르듯이 말이다. - 이와 같이 키라는 것은 무언가를 식별하는 고유한 식별자(identifier) 기능을 한다. - 즉, 키는 데이터베이스에서 조건에 만족하는 관계의 행을 찾거나 순서대로 정렬할 때 다른 행과 구별할 수 있는 유리한 기준이 되는 속성의 집합이다. - 키의 종류로는 기본키, 슈퍼키, 후보키, 대체키, 외래키 등이 있다. 1. 슈퍼키(Super Key) - 테이블에서 각 행을 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합이다. 슈퍼키는 유일성만 만족하면 슈퍼키가 될 수 있다. - 유일성이란 하나의 키로 특정 행을 바로 찾아낼수 있는 고유한 데이터 속성을 말..