문서의 이전 판입니다!
목차
Mysql
MySQL은 DBMS DataBase Management System 로서.. DB를 구성하고 이를 다루기 위해 구성된 시스템이죠.. 다수의 사용자들이 DB에 접속해서 자료의 생성, 삭제, 갱신, 조작등의 제어를 할 수 있도록 해주는 프로그램입니다 ^-^
팁
타입
숫자
TINYINT | A very small integer | The signed range is –128 to 127. The unsigned range is 0 to 255. |
SMALLINT | A small integer | The signed range is –32768 to 32767. The unsigned range is 0 to 65535 |
MEDIUMINT | A medium-size integer | The signed range is –8388608 to 8388607. The unsigned range is 0 to 16777215 |
INT or INTEGER | A normal-size integer | The signed range is –2147483648 to 2147483647. The unsigned range is 0 to 4294967295 |
BIGINT | A large integer | The signed range is –9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615 |
text와 varchar 타입
TEXT 텍스트형 63535개의 문자 CHAR 고정길이문자 1~255개의 문자 VARCHAR 가변길이문자 1~255개의 문자
varchar는 index를 탈수 있는데 text는 못탑니다. varchar와 char의 차이점은 varchar는 가변길이라서 속도가 느립니다.
Set과 Enum 타입
둘의 차이는 복수 선택이 가능하고 안하고의 여부로 보면 되겠네요.
enum을 쓰면 한번에 하나 값만 입력(또는 선택)이 가능하고 set을 쓰면 한번에 하나 이상의 값을 입력(또는 선택)이 가능하다는 말씀이지요?
내부적으로.. 예를 들어 위에 적으신 예같은 경우에… "짜장" —> 00000…0001 (2진수 64bit) "짬뽕" —> 00000…0010 "우동" —> 00000…0100 "짜장, 짬뽕" —> 00000…0011 "짜장, 우동" —→ 00000…0101 "짜장, 짬뽕, 우동" —> 00000..0111
접속 테스트
<?php // we connect to example.com and port 3307 $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>
문법
테이블의 내용을 특정 값을 치환.
update rg4_member set `mb_level`=REPLACE(`mb_level`,'0','1')
두테이블을 비교하여 더 있는 항목을 표시
outer join 사용
Outer Join 두 TABLE 을 JOIN 할 때 JOIN 조건식을 만족시키지 못하는 ROW 는 검색에서 빠지게 된다. 그런데 이러한 ROW 들이 검색되도록 하는 것이 OUTER JOIN 이다. (+) OUTER JOIN OPERATOR 를 데이타가 없는 어느 한쪽의 COLUMN 쪽에 붙인다. JOIN 결과, 데이타가 없는 쪽의 COLUMN 값은 NULL로 검색된다. 조건식을 만족시키지 못하는 데이타도 검색한다.
SELECT table명.column명, table명.column명 FROM table1명, table2명 WHERE table1명.column1명 = table2명.column2명(+)
[ 예제 ] S_EMP TABLE 과 S_CUSTOMER TABLE 을 사용하여 영업사원의 LAST_NAME, SALES_REP_ID, NAME 을 검색하시오. 단, 영업사원이 정해져 있지 않은 고객의 이름도 검색하시오.
SELECT E.LAST_NAME, C.SALES_REP_ID, C.NAME FROM S_EMP E, S_CUSTOMER C WHERE E.ID(+) = C.SALES_REP_ID ;
SELECT xe_point.member_srl, xe_point.point FROM xe_point LEFT OUTER JOIN xe_member ON xe_member.member_srl = xe_point.member_srl WHERE xe_member.member_srl IS NULL LIMIT 0 , 300
root 비번 잃었을때
DB에 접속 후
[비번변경]
mysql > set password=password("바꿀 비밀번호");
[분실시]
# cd /usr/local/mysql/bin //mysql이 설치된 디렉토리의 bin # killall mysqld # ./safe_mysqld --skip-grant & # mysql mysql > USE mysql; mysql > UPDATE user SET Password=PASSWORD('패스워드') WHERE user='root'; mysql > FLUSH PRIVILEGES; mysql > quit # mysqld restart
누구나 수정하실 수 있습니다. 문법은 Formatting Syntax참조하세요. |
---|