질의작성

CUBRID에서 대소문자 관리

by 남재우 posted Jan 30, 2010
CUBRID 사용시 대소문자 사용에 대한 이해를 돕고자 스키마 및 질의 사용시에 대소문자 구분 방법에 대하여 정리하였습니다.

  1. 데이터베이스 이름 : 대소문자 구분
  2.  SQL 문장 : 대소문자 구분없슴.
  3. 데이터베이스 계정 : 대소문자 구분 없슴. 계정 암호는 대소문자 구분
  4. 스키마(테이블, 필드 명) : 대소문자 구분없슴.
  5. 카다로그: 카다로그 검색시 데이터베이스 계정, 테이블, 필드에 대한 정보가 저장되는 방식에 대하여 정리한 것이며, 카다로그 등 시스템 테이블에서 해당 정보를 검색하고자 할때 대소문자 구분 방법입니다. 일반 질의에서는 앞서 정리한 방식을 따릅니다.
    1. 데이터베이스 계정 정보는 대문자로 저장됨
      예) create user MyUser; <LOGIN as MyUSER> create table my_table; -- MyUser 라는 데이터베이스 계정 생성후, MyUser로 로그인하여 my_table 이라는 테이블 생성시.
      select * from db_class where owner_name = 'MYUSER' -- 테이블 정보에서 테이블 소유자가 'MYUSER' 인 테이블 정보 검색
    2. 스키마정보는 소문자로 저장됨
      예) create table COMPANY( id int); create table client( ID int);
           와 같이 테이블 생성시 테이블명, 필드명은 모두 시스템 카다로그에 소문자로 저장됩니다.
           따라서 시스템 카다로그에서 검색시 소문자로 검색하여야 합니다.
           select * from db_class where class_name = 'company' -- 테이블 정보에서 테이블이름이 company 인 것에 대한 검색
  6. 데이터: 대소문자 구분.

정리하면 다음과 같습니다.
  • demoDB 라는 데이터베이스 생성 : cubrid createdb demoDB
  • demoDB 서버 구동 : cubrid server start demodb --> 에러, cubrid server start demoDB
  • demoDB 로그인 후 사용자계정 생성: csql -u dba demoDB; create user MyUser password 'myPW';
  • demoDB 재 로그인: csql -u myuser -p myPW demoDB
  • 테이블 생성: create table MY_company (compID int);
  • 테이블 검색: select compid from my_company where compid = 1;
  • 테이블 정보 검색: select * from db_class where class_name = 'my_company' and owner_name = 'MYUSER';

Articles

2 3 4 5 6 7 8 9 10 11