Database 8

[Database/mysql] on delete cascade 에 대한 이해

Database를 공부하는 도중 on delete cascade 라는 문법을 만나게 되었다. 찾아보니 설명상으로는 어떤 tuple이 삭제될 때 foreign key로 연결된 tuple 또한 같이 삭제된다는 내용이었다. 의미를 보면 그런가보다 하고 넘어갈 수 있는 내용이었지만 명확히 이해가 가지 않는 부분이 있었다. 위와 같을 경우 relation A의 tuple을 지우면 relation B의 tuple도 연달아 지워진다는 것인가? 아니면 relation B의 tuple을 지우면 relation A의 tuple들이 지워진다는 것인가?애매한 부분이 있어서 직접 mysql 상에서 확인해 보았다. 확인하면서 겪은 시행착오까지 모두 기술하였다. 1. 확인을 위한 TEST database 생성. mysql> cre..

Database 2016.12.23

[Mysql] database 백업(backup) / 복구(restore)

데이터베이스를 이용해서 sub PC 에서 작업을 하다보니 실제 server와 작업 server간에 mysql database의 sync를 맞추어야 할 일이 종종 있다. schedule 을 걸어 자동으로 하면 좋겠지만 접근 제한을 localhost 로 만한 상황이라 dump file을 직접 추출하여 복사하여 다시 복구하는 방식으로 진행하였다. [Mysql backup to file] $ mysqldump -u "Mysql사용자ID" -p "MysqlDatabaseName" > dump.sqlEnter password:$ ls -al dump.sql-rw-rw-r-- 1 ubuntu ubuntu 22280615 Dec 3 02:23 dump.sql [Mysql restore from file] $ mysql..

Database 2016.12.03

Database 생성 및 권한 주기

그 유명하다는 wordpress를 설치하다보니 신규 database가 필요하게 되었다. 사실 어려운 명령어는 아니지만 할 때 마다 잊곤한다. 다시 한 번 정리하면 다음과 같다. $> mysql -u root -pmysql> create database wordpress;mysql> use wordpress;mysql> grant all on wordpress.* to myid@localhost; 모든 권한을 주는게 보안상 문제가 있을 수 있지만 우선은..... 위와같이 하면 wordpress를 설치하는데에는 문제가 없다.;;

Database 2016.01.11

CRUD on mysql (select, update, insert, delete)

Software 의 기본적인 데이터 처리 기능을 통틀어 CRUD (Create, Read, Update, Delete) 라고 부른다.(Kilov, H[1990]의 논문에서 해당 용어를 최초로 사용하였다고 한다.) 기본적인 기능인 CRUD의 경우 mysql에서는 어떤 명령어에 mapping 할 수 있을까. 간단하게 표를 만들어보면 다음과 같다. SQL Create (생성) INSERT Read (읽기) SELECT Update (갱신) UPDATE Delete (삭제) DELETE mysql 기본 CRUD 명령어 사용예 (select, update, insert, delete)아주 기본적인 것이지만 sql을 직접 날릴일이 별로 없어서 할 때 마다 검색하게 되어 간략하게나마 사용예를 정리해 보았다. inse..

Database 2015.12.12

Mysql 사용자 조회/추가/생성/삭제

Mysql 사용자 조회 mysql 에 오랜만에 접속해 보면 내가 어떤 사용자를 생성했었는지 간혹 기억이 나지 않을 때가 있다.아래와 같이 확인하면 된다. mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select user, host from user; +------------------+-----------+ | user | host | +------------------+-----------+ | analyzer | % | | root | 127..

Database 2015.10.29

텍스트 파일을 database에 저장하는 방법

mysql> select version();+-------------------------+| version() |+-------------------------+| 5.5.44-0ubuntu0.14.04.1 |+-------------------------+1 row in set (0.00 sec)mysql 5.5.44 기준으로 다음과 같다. 입력할 Data 파일의 양식은 다음과 같이 TAB으로 구분자를 주면 된다. ITEMITEMITEMITEMITEMITEMITEMITEMITEM... 그리고 기본 명령어는 다음과 같다.mysql> load data local infile "data.txt" into table TABLENAME; mysql> load data local infile "data.txt"..

Database 2015.10.27

mysql 기본 encoding 변경 (latin1 to utf8)

[mysql 에 저장된 한글이 깨질 경우에 대한 결론] -. 아래 3가지 항목을 확인하자 1. mysql의 기본 character set을 utf8로 변경한다. 2. table의 기본 character set을 utf8로 변경한다. 3. column의 character set을 utf8로 변경한다. 이렇게 3가지를 다하니 한글이 잘 보인다...... [mysql의 기본 character set 을 utf8로 변경] mysql 초기값을 보면 latin1 으로 character set이 설정되어 있다. 이로 인해 한글이 제대로 표시가 되지 않는데 django에서 보면 표시가 되지 않거나 깨져서 보인다. 검색을 좀 해보니 mysql의 기본 encoding을 utf8로 변경해야 한다고 한다. [/etc/mysq..

Database 2015.10.23