본문 바로가기

Dev/MySQL

Data update, join으로 하기 gogecsa_etc 테이블의 reg_date 컬럼값을 auth_users 테이블의 reg_date 값에 넣어야 할 때. (ip가 공통 요소이다) update auth_users as a, gogecsa_etc as b set a.reg_date = b.reg_date where a.ip = b.ip; 더보기
DB 설계시 다:다 형태의 구성을 하면 안된다. A 테이블에는 ip와 a, b 항목이 있고B 테이블에는 ip와 a, c 항목이 있다면둘 중 한 테이블에는 a 항목을 제거해야한다. 지금의 경우 조인되는게 두개가 있기 때문에 다:다 형태가 되는데둘중 하나만 제거하여도 다른 테이블에서 정보를 가져오기 어렵지 않고다:다에서 다:1 형태로 바뀌기 때문에 여러모로 효율적이다. 더보기
인덱스 추가 1. 테이블의 인덱스 확인하기SHOW INDEX FROM tablename; 2-1. 테이블의 인덱스 추가하기 : 컬럼은 1개도 가능, 2개 이상도 가능ALTER TABLE tablename ADD INDEX indexname (column1, column2); 2-2. 테이블의 유니크 인덱스 추가하기 : 컬럼은 1개도 가능, 2개 이상도 가능ALTER TABLE tablename ADD UNIQUE INDEX indexname (column1, column2); 3. 테이블의 인덱스 삭제하기ALTER TABLE tablename DROP INDEX indexname; alter table auth_users add index auth_ip (ip); alter table gogecsa add index.. 더보기
테이블 생성 및 데이터 관련 쿼리 관리자 로그인 DB를 예로 들자면 create table admin( id varchar(10) not null, pw varchar(20) not null, primary key(id) ); insert into admin values("admin", "1234"); update admin set pw = "0000" where id = "admin"; //admin 테이블의 admin을 가진 id의 pw를 0000으로 바꾼다. alter table admin modify column pw varchar(20); //admin 테이블의 pw 컬럼의 데이터 타입을 varchar(20)으로 바꾼다. 더보기
엑셀 데이터 DB에 넣기 1. MySQL으로 넣기.txt 파일로 구분자 를 준뒤에 저장하시고 LOAD DATA INFILE '경로명/파일명' REPLACE INTO TABLE 테이블명 FIELDS TERMINATED BY '\\t'; (탭의경우) 1. 엑셀에서 다른 이름으로 저장 누른후 파일형식을 텍스트(탭으로 분리)파일로 저장합니다. 2. 서버로 텍스트 파일 저장 3. Load Data Infile '텍스트 파일 위치' Into Table 테이블명 Lines Terminated By '\\r\\n'; 2. SQL Gate for MySQL참조, http://dynamide.tistory.com/1663 더보기
MySQL 덤프뜨기. 백업/복구 Databases 전체 덤프 mysqldump -u[아이디] -p[패스워드] --all-databases > 저장될 경로,파일명 ex) mysqldump -u root -p --all-databases > C:/test.txt (\가 아닌 /으로 해야 한다.) Database만 덤프 mysqldump -u[아이디] -p[패스워드] [디비명] > 저장될 경로,파일명 ex) mysqldump -u root -p test > C:/test.txt (\가 아닌 /으로 해야 한다.) 테이블만 덤프 mysqldump -u[아이디] -p[패스워드] [디비명] [테이블명] > 저장될 경로,파일명 ex) mysqldump -u root -p test student > C:/test.txt (\가 아닌 /으로 해야 한다... 더보기