본문 바로가기

MySQL

MySQL 숫자 함수 ■ MySQL 숫자함수 함수명 함수사용법 설명 ABS() ABS(n) n의 절대값 CEILING CEILING(n) n다음의 가장 큰 정수 FLOOR() FLOOR(n) n의 정수 FORMAT() FORMAT(n1,n2) n2의 십진자리수로 n1형식화, 각 세자리마다 콤마 삽입 MOD() MOD(n1,n2) n2로 n1을 나눈 나머지 값 POW() POW(n1,n2) n1을 n2 제곱한 값 RAND() RAND(n) 0과 1.0사이의 난수 ROUND() ROUND(n1,n2) n1을 n2의 십진 자리수로 반올림 SQRT() SQRT(n) n의 제곱근 GREATEST() GREATEST(n1, n2) n1과 n2 중 가장 큰 수 LEAST() LEAST(n1, n2) n1과 n2 중 가장 작은수 더보기
MySQL 문자열 함수 MySQL 문자열 함수 ■ 문자열 함수 사용 방법 및 결과 함수 사용법 반환 값 ASCII() ASCII(t) t의 아스키 코드값 리턴 CONCAT() CONCAT(t1,t2,.....) t1t2 형식의 문자열 CONCAT_WS() CONCAT_WS(S,t1,t2,....) t1St2S.. 형식의 문자열 LENGTH() LENGTH(t) 문자열 t의 길이 CHAR_LENGTH() CHAR_LENGTH(t) 문자열 t의 길이 single-byte, multi-byte 미구별 CHARACTER_LENGTH() CHARACTER_LENGTH(t) RIGHT() RIGHT(t,x) 문자열 t의 오른쪽 x개 LEFT() LEFT(t,y) 문자열 t의 왼쪽 y개 MID() MID(t,x,y) 문자열 t의 x위치부터.. 더보기
MySQL 테이블명 대소문자 구분 MySQL 환경과 설정에 따라 대소문자를 구분하기도 하고 그렇지 않기도 한다. 데이타베이스 이름과 테이블 이름을 사용할 때 윈도우와 Mac OS X에서는 기본적으로 대소문자를 구분하지 않지만 유닉스계열(리눅스포함)에서는 기본적으로 대소문자를 구분한다. ( Default 설정인 경우 ) 컬럼이름은 모든 환경에서 대소문자를 구분하지 않는다. ▶ OS 별 MySQL 대소문자 구분 : lower_case_table_names 기본 값인 경우 윈도우 Mac OS X 리눅스 데이타베이스명 구분 안함 대소문자 구분 테이블명 컬럼명 구분 안함 - 리눅스 환경의 아래 예를 보면 테이블명이 UserInfo, 컬럼명은 UserID, UserName 으로 되어있다.- 컬럼명은 조회문에서 대소문자를 구분 않고 테이블명은 대소문.. 더보기
mysql 데이터 디렉터리의 위치 UNIX 환경에서는 MySQL을 소스로 부터 설치할 경우, /usr/local/mysql/var가 기본 위치이고, 바이너리 배포를 가지고 설치할 때는 /usr/local/mysql/data가 기본 위치가 되며, RPM 파일을 가지고 설치할 때는 /var/lib/mysql 가 기본 위치라고 한다. Windows 환경에서는 기본 데이터 디렉터리가 c:\mysql\data이다고 한다. 하지만 세상에 영원한 것이 어디 있던가 ? 설치하는 환경, 설치 방법에 따라 달라서 아래와 같이 mysql에 로그인해서 쿼리해 보면 정확히 알 수 있다. ▶ mysql 에 로그인 해서 데이터 디렉터리의 위치 알아 본다. - show variables like 'datadir' ; ※ 위의 화면은 우분투에 내가 설치한 데이타디렉토.. 더보기
mysql 테이블 이름 lower_case_table_names 대소문자 변경 mysql 테이블 이름 대소문자 관련 옵션 설정 lower_case_table_names = 0 // 테이블 생성 및 조회 시 대·소문자 구분한다.lower_case_table_names = 1 // 입력 값이 대·소문자든 소문자로 인식 소문자 인식 파일 생성lower_case_table_names = 2 // 윈도우에서 대·소문자를 구분해서 테이블생성 리눅스와 유닉스의 경우 0, 윈도우의 경우 1, 맥키토시의 경우 2 가 기본 값임. 하나의 플랫폼 OS상에서만 MySQL을 사용한다면 lower_case_table_names 변수를 변경시킬 필요나 관심이 없겠지만 대소문자를 구분하는 OS간 호환을 염두에 두는 경우라면 lower_case_table_names 또는 테이블 등의 이름생성 시 대소문자에 대한.. 더보기
mysql 매개 변수 없는 저장 프로시져 만들기 ▶ msql CREATE PROCEDURE GetCategoriesAS SELECT CategoryID,CategoryName, [Description] FROM Categories RETURN ▶ mysql CREATE PROCEDURE GetCategories()BEGIN SELECT CategoryID, CategoryName, Description FROM Categories ;END; ▶ oracle CREATE OR REPLACE PACKAGE TYPESAS TYPE CURSORTYPE IS REF CURSOR;END;CREATE or Replace PROCEDURE GetCategories( CAT_CUR OUT TYPES.CURSORTYPE )ISBEGIN OPEN cat_cur FOR S.. 더보기
MySql 외부 접속 가능하게 설정하기 MySql 외부 접속 가능하게 설정 하기 my.cnf와 mysql user 권한을 살펴 봐야 한다. ■ mysql 설정 변경 하기 1. vi 사용해서 my.cnf를 수정한다. ▶ 우분투에서 sudo vi /etc/mysql/my.cnf ▶ centos에서 vi /etc/my.cnf 2. bind-address = 127.0.0.1 을 주석처리한다. - 아래 부분을 찾아서, #을 맨 앞에 붙인다. bind-address = 127.0.0.1 ↓ - # 은 주석처리를 의미한다. #bind-address = 127.0.0.1 ※ bind-address 는 127.0.0.1 에서만 접속을 허용한다는 의미임. 방화벽 해제, 사용자 권한 설정의 접속 가능 IP를 수정 했는데도 외부에서 접속이 안된다면 my.cnf을.. 더보기
mysql like 그리고 regexp http://pgworld.tistory.com/71 http://blog.naver.com/PostView.nhn?blogId=jcy1980&logNo=157233760 더보기
Mysql strict mode와 데이타 타입이 틀려도 에러가 안나게 설정하는 방법 Mysql NOT NULL에 값을 넣지 않아도 에러가 안난다 내가 많이 써 본 MSSQL 같은 경우 컬럼에 대해 NOT NULL 로 설정 하면 반드시 값을 넣어 줘야 에러가 나지 않는다. 그런데 가만 보니 어떤 Mysql 에서는 NOT NULL 컬럼에 값을 넣지 않아도 문제가 안되고 있어서 자세히 살펴보니 sql-mode 라는 것이 있었다. 이름하여 strict mode 라고 합니다. -- 현재 설정 된 sql_mode 를 확인 해 봅니다. SELECT @@global.sql_mode; -- 아래와 같은 결과가 나왔다면 NOT NULL 로 설정하면 에러가 나고 멈춰 버립니다. STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 아마도 Mysql.. 더보기