프로그래밍/Mysql 18

MYSQL - MYSQL 한글 깨짐 현상 해결책 두번째

Mysql 을 설치하고, db 를 생성하고, table 을 만들고, 데이터를 insert 했는데!!!! 이런식으로 한글이 ??? 라고 떠버렸습니다. utf-8 로 인코딩해서 넣어야 하나 라고 생각을 했다가, 왠지 좀 덥수룩(?)한 방법 같아서 찾아봤어요. mysql 의 character set 이 기본적으로 설정되어 있는게 utf-8 이 아니라 이런 문제가 발생한다고 하네요. mysql 의 캐릭터셋 설정을 변경해 주어야 이런 한글 깨짐 현상을 수정할 수 있습니다. 간단하게 아래 3가지 정도의 순서만 거치면 되더라구요. 1. my.cnf 수정 2. mysql 재시작 3. 확인 or 테이블 캐릭터 셋 변경 1. my.cnf 수정 보통의 경우에 my.cnf 파일은 /etc 아래에 있나봅니다. 개발은 Mac O..

MYSQL - MYSQL 한글 깨짐 현상 해결책

APMSETUP7 ‘MYSQL’에서 한글깨짐을 처리하기 위한 캐릭터셋 설정 ALTER TABLE 테이블_이름 CHARACTER SET utf8 COLLATE utf8_general_ci; //TABLE (혹은 DB를 만들면서 지정) CREATE DATABASE 데이타베이스_이름 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 나의 SQL 캐릭터셋 리스트 보기 윈도우키 + R 을 누른뒤 >cmd 를 입력하여 도스 커맨드 창을 뛰운다. 기본 비번은 root / apmsetup 이니 알아두도록 하고 다음과 같이 mysql에 접속한다. C:\> mysql -uroot -papmsetup mysql> show variables like 'c%'; 를 입력하면 현재 적용..

Mysql - Text field 종류별 크기

게시물을 길게 써야 할 일이 생겼습니다. 표로된 HTML문서를 긁어서 그대로 에디터에 붙여넣고 입력했더니~ 짤리네요..음~ 길면 그럴수도 있지~ 하다가 갑자기 궁금해졌습니다. 왜 짤리지?그래서 테스트에 들어갔습니다. 테스트에 사용한 글은... 긴 텍스트... 긴 텍스트.....성경으로 하기로 했습니다. 시편 119편! 처음에는 POST 방식의 데이터 전송에 제한이 있나를 알아봤는데, 서버사이드 스크립트 쪽에서 받는 데이터가 정상적으로 뜨더군요~ 어? 그럼 DB의 문제인가? DB에 입력된 데이타가 정상적으로 저장되어 있지 않다면!! php에서 MySQL로 자료를 보내는 중에 짤리는 것일 거야... 란 가정을 세우고~ SELECT RIGHT(content, 400) FROM `table_name` WHERE..

MYSQL - SQL AS(Aliases) 구문 사용법

안녕하세요~!! 오늘 포스팅할 내용은 SQL AS 구문입니다. as 구문은 테이블 또는 테이블의 열에 대해서 임시로 이름을 변경할 수 있습니다. 약간 말이 어려운데 예제를 보면 금방 이해가 되지 않을까 싶습니다. 아래 member 테이블이라고 가정하고 예제를 살펴보겠습니다. id user_id user_pwd name age phone email 1 hhhh 1111 홍길동 25 010-1111-1111 test1@test.com 2 aaaa 2222 임꺽정 45 010-2222-2222 test2@test.com 3 bbbb 3333 이영수 34 010-3333-3333 test3@test.com 4 cccc 4444 김영희 28 010-4444-4444 test4@test.com 5 eeee 5555..

MYSQL - COLSPAN 옵션

테이블은 기본적으로 각 열마다 동일한 행으로 이루어져야 합니다. 1*1 셀 2*1 셀 2*2 셀 위와 같이 첫번째 열(row)은 1개의 행(column)을 가지고, 두번째 열(row)은 2개의 행(column)을 가지게 만들면 아래처럼 제대로 모양을 갖추어 지지 않습니다. 1*1 셀 2*1 셀 2*2 셀 첫번째 열을 오른쪽으로 확장시켜 주어야 합니다. 이때 사용하는 속성이 colspan 입니다. 1*1 셀 2*1 셀 2*2 셀 위와 같이 colspan="2"로 지정하면 아래와 같이 의도한 대로 모양이 나옵니다. 1*1 셀 2*1 셀 2*2 셀 즉 첫번째 row의 column수가 1개이고, 두번째 row의 column 수가 2개이므로 이를 동일하게 맞추어 주기 위해서 첫번째 row의 셀에서 colspan ..

Mysql - MySQL 접근 권한 설정 (Grant, Revoke 명령)

grant all privileges on 디비명.테이블명 to 사용자@'접속지 주소' identified by '암호' (with grant option); grant all privileges on *.* to root@'%' identified by '암호' with grant option; grant all privileges on *.* to root@'localhost' identified by '암호' with grant option; revoke all on 디비명.테이블명 from 사용자; # 모든 명령 후에 항상 아래 명령을 실행해야 실제로 적용된다. flush privileges; # '사용자'가 '암호'으로 localhost 에서 db1 디비의 table1에 접속하도록 허용 gran..

MYSQL - flush privileges

INSERT나 UPDATE, DELETE문을 이용해서 MySQL의 사용자를 추가,삭제하거나, 사용자 권한 등을 변경하였을 때, MySQL에 변경사항을 적용하기 위해서 사용하는 명령어가 flush privileges 입니다. 예제 아래와같이 데이터베이스를 만들고 table을 추가하고 마지막에 grant로 webauth라는 유저한테 권한을 주면 flush privileges를 해야 적용이 된다. create database auth; use auth; create table authorized_users ( name varchar(20), password varchar(40), primary key (name) ); insert into authorized_users values ( 'username', '..

MYSQL - ENUM SET TYPE

ENUM 최대 65535 개의 엘리먼트를 가질 수 있음. 인덱스를 사용. 인덱스는 1부터 시작. 테이블을 작성하여 예를 들어가면서 설명. 1. 테이블 작성 mysql> create table enum_test ( numbers ENUM('0' , '1' , '2' )); mysql> desc enum_test; +---------+-------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------------+------+-----+---------+-------+ | numbers | enum('0','1','2') | YES | | NULL | | ..

MySQL ENUM 사용

MySQL 서브쿼리는 버전 4.1.x 대부터 지원하고 있다. ENUM(value1, value2, value3...) value는 최대 65535 개까지 가능. CREATE TABLE TEST ( id varchar(10), name varchar(20), auth_code ENUM('AA01', 'AB01', 'AC01', 'AD01', 'AD99') ) INSERT INTO TEST VALUES ('test1', '테스트1','AA01') INSERT INTO TEST VALUES ('test2', '테스트2', 2) select * from TEST; 결과는 ------------------------------------ id name auth_code ------------------------..

MySql 오늘 날짜만 쉽게 좀 뽑아보자~

가끔 MySql 에서 날짜 관련 블로그나 기술 문서를 보면 저같은 초심자들은 종종 무아지경에 빠지는 경우가 있지요~~ ^^; MySql에서 지원하는 날짜관련 함수도 너무 많구요~ 그저 가장 일반적이고 가장 손쉬운 오늘 날짜에 기록된 레코드만을 뽑아보고 싶을 뿐인데 타임 스템프니 유닉스 타임이니 형변환이니 ~~ 아~~ 어렵더군요!!! ㅠ.ㅠ 그래서 좀 쉽게 오늘 날짜에 기록된 데이터만을 뽑아보고 싶었습니다. 만약 컬럼형태가 DateTime 형이라면 select * from 테이블 where 컬럼명 > date_format(curdate( ), '%Y-%m-%d %H:%i:%s' ) ; 이렇게만 하셔도 오늘 기록된 레코드만을 뽑아 올 수 있구요~ 좀더 간결하게 하고 싶다면 select * from 테이블 w..

반응형