Synonym DB의 객체는 각자 고유한 이름이 할당되어 있다. ALIAS처럼 동의어를 만드는것이 바로 시노님이다. ALIAS는 1회성인 반면 시노님(Synonym)은 영구적이다. 보통 다른 유저의 객체를 참조할 때 많이 사용을 한다. 다른 유저의 객체를 사용할때 유저의 이름과 객체의 실제이름을 사용하는데(계정명.객체명) 그 두개를 감춤으로써 데이터베이스의 보안을 개선하기위해 사용되어진다. 시노님에는 PUBLIC과 PRIVATE타입이 있다. PUBLIC은 모든 사용자가 접근할 수 있고 PRIVATE는 특정사용자에게만 참조가 가능하다. Synonym 선언 CREATE [OR REPLACE] [PUBLIC] SYNONYM '[스키마명].[시노님명]' FOR '스키마명.대상오브젝트형' OR REPLACE : ..
DataBase
list.ejs 파일에 해당 코드 첨부 ajax로 서버에 delete요청을 할 때, 다음 형식으로 작성함 $.ajax({ method: 'DELETE', url : '요청할 경로', data : '요쳥과 함께 보낼 데이터' }) 끝에 .done(function(result){ }); 를 붙여서 요청이 완료되면 수행할 기능을 작성함. $.ajax({ method: 'DELETE', url : '/delete', data : {_id: 1} }).done(function(result){ }); server.js 에서도 삭제버튼을 누르면(/delete) 어떤 기능을 수행할 것인지 정의해 줘야 한다. app.delete('/delete', function(req,res){ console.log(req.body)..
MongoDB Atlas에 데이터를 저장하면 임의로 id가 부여된다. 임의로 부여된 id로 데이터를 관리하기에 불편하기 때문에 사용자가 임의로 id를 순차적으로 부여할 수 있다. database에 id갯수를 카운터 할 collection을 새로 생성한다. collection의 이름을 counter로 설정하고 다음 데이터를 추가하였다. /add 페이지에 접속하면(할일 submit수행) 서버로 데이터를 보내는 코드를 다음과 같이 변경하였다. app.post('/add', function(req, res){ db.collection('counter').findOne({name: '게시물갯수'}, function(error,result){ console.log(result.totalPost) var totalP..
EJS 템플릿 엔진 웹브라우저에 컨텐츠를 보여줄 목적으로 웹서버를 구축한다면 HTML에서 파일을 읽어들일 때 실시간으로 변경되어 전달하는 방법은 어렵다. 즉 데이터 베이스 같은 외부에서 실시간으로 변경되는 값을 받아올 때 EJS 템플릿 엔진을 사용하여 편하게 작업할 수 있다. ejs를 설치 후 npm install ejs 프로젝트 폴더 안에 views 폴더를 생성하고 확장자가 ejs인 파일을 생성한다. EJS파일은 HTML파일 구조와 같지만 사용하는 문법은 조금씩 다르다. HTML중간에 서버 데이터를 넣고 싶을 때 아래와 같이 사용한다. HTML에 if문을 적용하거나 반복문을 적용하고 싶을때 로 자바스크립트 문법을 담을 수 있다. MongoDB Atlas에서 HTML로 데이터를 가져오기 위해서 serve..
sever.js에 데이터베이스를 먼저 정의한다. var db; 이후 클라이언트문 안에 해당 문장을 작성하자 db = client.db('todoapp'); db.collection('post').insertOne( {이름 : 'John', _id : 100} , function(error, result){ console.log('저장완료'); }); todoapp은 database이름이고 post는 collection의 이름이다. insertOne 메서드를 통해 Object자료형을 첫번째 파라미터로, 콜백함수로 두번째 파라미터로 전달하고 있다. 전달이 완료되면 콘솔창에 저장완료 라는 문구가 뜨고 아틀라스에 접속하면 데이터가 기입된 것을 확인 할 수 있다. 코드에서는 분명 이름과 나이를 입력하였는데 자동으..
CREATE TABLE AS SELECT 똑같은 테이블을 생성하는 구문이다. world database안의 city테이블과 동일한 city2테이블을 생성해보자 CREATE TABLE city2 AS SELECT * FROM city; city2 테이블을 확인해보자 SELECT * FROM city2; city2 테이블이 복사된 것을 확인할 수 있음. CREATE DATABASE CREATE DATABASE문은 새로운 DB생성 USE문으로 새 데이터 베이스를 사용하거나, 스키마에서 선택하여 사용가능 CREATE DATABASE sample1; USE sample1; CREATE TABLE 스키마에서 테이블 탭 우클릭 후 Create Table 클릭 TABLE의 Column Name과 DataType 결정 ..
MySQL 내장함수 사용자의 편의를 위해 다양한 기능의 내장 함수를 미리 정의하여 제공 대표적인 내장 함수의 종류 문자열 함수 수학 함수 날짜와 시간 함수 LENGTH SELECT LENGTH('123456789'); CONCAT 전달받은 문자열을 모두 결합하여 하나의 문자열로 반환 전달받은 문자열 중 하나라도 NULL이 존재하면 NULL을 반환 SELECT CONCAT('My', 'SQL is', 'interesting'), CONCAT('My', 'NULL', 'interesting'); LOCATE 문자열 내에서 찾는 문자열이 처음으로 나타나는 위치를 찾아서 해당 위치를 반환 찾는 문자열이 문자열 내에 존재하지 않으면 0을 반환 MySQL에서는 문자열의 시작 인덱스를 1부터 계산 SELECT LOC..
해당 DataBase는 MySQL 공식사이트에서 제공하는 world.sql파일로 연습한 내용이다. 아래 사이트에서 world.sql 파일을 받고 db에 추가하면 된다. dev.mysql.com/doc/world-setup/en/ MySQL :: Setting Up the world Database Setting Up the world Database This document describes world sample database installation, structure, usage, and history. The sample data used in the world database is Copyright Statistics Finland, http://www.stat.fi/worldinfigures...
MySQL MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템이다. (RDBMS) MySQL은 오픈소스이며, 다중 사용자와 다중 스레드를 지원한다 C, Cpp, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공한다. MySQL은 윈도우, 리눅스 등 다양한 운영체제에서 사용가능하며 Apache, PHP 와 함께 웹 개발에 자주 사용된다. APM의 M MySQL or (MariaDB) 등 Apache, PHP와 호환성이 좋기에 사용한다 MySQL은 오픈 소스 라이선스를 따르지만, 상업적 이용시 상업라이센스를 필히 구매하여야 한다. DataBase(데이터베이스) 데이터베이스란? 데이터의 저장소 또는 통합하여 관리되는 데이터의 집합체를 의미한다. 중복 데이터 제거, 자료 ..
참고사항 본 블로그에서 게시하는 MySQL에 관한 내용은 아래 사이트에서 참고하였습니다. 1.생활코딩 opentutorials.org/course/195/1399 데이터베이스와 MYSQL - 생활코딩 데이터베이스와 MYSQL 2012-03-13 00:03:53 데이터베이스란 데이터베이스의 종류 opentutorials.org 2. 이수안 컴퓨터 연구소 (suanlab) www.youtube.com/watch?v=vgIc4ctNFbc&list=PLAsbL2NvnmK7HZ4wyxdFkvqMTtu6Mr9gY&index=5&ab_channel=%EC%9D%B4%EC%88%98%EC%95%88%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%B0%EA%B5%AC%EC%86%8C 3. TCP SCHOOL..