본문 바로가기

Database

(9)
데이터베이스 -데이터베이스란 : 데이터를 보존하는 창고를 의미한다. : 데이터베이스란 특정한 주제로 데이터를 모아둔 것을 의미한다. -데이터베이스 관리시스템 ( DBMS) : 데이터를 관리하고 조작하는 application, : 데이터를 검색,추가,갱신,보안관리 ,동시접근, 크기를 관리한다. - NoSQL -SQL만을 사용하지 않는 DBMS를 의미한다. -관계형DB를 포함한 여러 DB를 사용한다. -Not only SQL이라는 뜻으로, SQL외에도 다양한 유형의 데이터베이스를 사용하는 것을 의미한다. ( 관계형 DB도 사용한다 ) 대부분 클러스터에서 실행할 목적으로 만들어졌기 떄문에 관계형 모델을 사용하지 않는다. 대부분 오픈소스이다. ODBMS는 NoSQL이 아니다. -스키마 없이 동작하고 구조에 대한 정의를 변경..
[Mysql] 랜덤 숫자 * ) RAND() select rand() --랜덤값 반환 RAND(1) 특정 값으로 고정된다 FLOOR( RAND() * 100 ) FLOOR( RAND() * {최대숫자} ) -- 소수점 이후의 숫자 없이 0~100사이의 수를 랜덤하게 가져온다. ROUND(RAND(), 3) -- 랜덤한 수를 소수점 3번째 자리에서 반올림한 결과로 반환한다. TRUNCATE(RAND() , 2 ) -- 소수점 2자리수 이하로 모두 버린 결과를 반환한다. * ) 3 ~ 10까지의 숫자 중 랜덤으로 검색 cast(rand() * {데이터 전체 범위} as signed ) + {최소숫자} select cast(rand() * 10 as signed ) + 1 -- 1에서 11 사이의 숫자를 랜덤하게 반환한다. selec..
[MySql] select한 결과를 값으로 CUD 하기 ( insert - select ) select - insert INSERT INTO 들어갈테이블명 (컬럼명1, 컬럼명2, 컬럼명3) SELECT 컬럼명1, 컬럼명2, 컬럼명3 FROM 조회할테이블명 insert into tb_post_hist ( post_no , hist_type , title , content ) select tp.post_no , #{postHist} , tp.title , tp.content from tb_post tp where tp.post_no = #{postNo}
[MySQL] Mysql Workbench로 ERD추출하기 ( mac ver ) Mysql Workbench란? SQL 개발과 관리, 데이터베이스 설계, 생성 그리고 유지를 위한 단일 개발 통합 환경을 제공하는 데이터베이스 설계 도구이다. 기존에 DB클라이언트 툴로 Dbeaver을 사용하고 있었지만 생성된 테이블정보로 관계도를 그려주는 기능은 유료모델이어서🥲 다른 툴을 추천받아 사용하게 되었다. 1. Mysql Workbench 를 설치 https://dev.mysql.com/downloads/workbench/ 으로 이동 후 화면 맨 아래의 [ No thanks , just start my download.] 를 눌러 다운로드 화면으로 이동한다. 2. 다운로드 후 설치 실행 다운로드 된 파일을 더블클릭하여 실행 > 나타나는 창에서 왼쪽의 돌고래 아이콘을 Applications 폴더..
[MySQL] 리눅스로 DB생성하기 & 계정 추가 & 권한추가 0. Mysql이 설치된 리눅스로 이동 1. mysql 에 로그인한다. # root로 로그인 $ sudo /usr/bin/mysql -u root -p 2. 데이터베이스 생성 mysql> create database {데이터베이스이름}; mysql> show databases; 3. sample_db를 사용할 계정 생성 및 확인 - localhost로 쓰여있으면 설치된 로컬 서버에서만 접근이 가능 - %로 설정 시 어디에서나 접근이 가능. mysql> create user '유저아이디'@'localhost' identified by '비밀번호'; mysql> create user '유저아이디'@'%' identified by '비밀번호'; mysql> flush privileges; mysql> sele..
[mongoTemplate] 리스트 조회 시 최근 등록한 100개 가져오기 [ 목적 ] - 리스트에서 등록한 날짜가 최근인 항목부터 나타나게 한다 - 100개의 데이터만 가져온다 [ 처리사항 ] - 정렬 기준 : Sort.by(Sort.Direction.DESC, "{기준컬럼}") - 갯수 제한 : PageRequest.of(0, 100) Query query = new Query(); query.with(Sort.by(Sort.Direction.DESC, "regDate")); query.with(PageRequest.of(0, 100)); List resultList = mongoTemplate.find(query, MongoLoggingModel.class);
[MySQL] on duplicate key update ( insert 할 때 키 값이 중복되면 update 하기 insert 시 이미 등록된 키값의 데이터여 중복 에러가 나는 경우 새 값으로 업데이트 한다 - 등록된 데이터가 없으면 insert 하고, 이미 등록된 데이터가 있으면 update를 한다. 🌈 on duplicate key update 활용 insert into {tableName} (column1, column2 ) values ( 1, 2 ) on duplicate key update column2 = column2+2 -- 결과 column2가 4로 등록된다. 🌈 select insert로 이미 등록된 값을 update하기 -- select insert 으로 중복 값 바꾸기 insert into {tableName1} ( column1, column2, column3 ) select v..
- NoSQL - NoSQL -SQL만을 사용하지 않는 DBMS를 의미한다. -관계형DB를 포함한 여러 DB를 사용한다. -Not only SQL이라는 뜻으로, SQL외에도 다양한 유형의 데이터베이스를 사용하는 것을 의미한다. ( 관계형 DB도 사용한다 ) 대부분 클러스터에서 실행할 목적으로 만들어졌기 떄문에 관계형 모델을 사용하지 않는다. 대부분 오픈소스이다. ODBMS는 NoSQL이 아니다. -스키마 없이 동작하고 구조에 대한 정의를 변경할 필요없이 DB 레코드에 자유롭게 필드를 추가할 수 있다. -데이터의 일관성이 보장되지 않는다. 특징 1) 일관성과 확장성 사이의 trade-off : 데이터베이스의 일관성이 절대적인 요소가 아님을 주장하는 사람들이 만들었다. : 다수가 동시에 읽고 쓰는 상황애서의 성능 향상을 ..