SQL/MySQL

Tip

domsam 2025. 2. 7. 16:05
반응형

 

테이블명 대소문자 구분

윈도우에 설치된 MySQL 서버는 테이블명의 대소문자를 구분하지 않지만 유닉스 계열에 설치된 MySQL 서버는 테이블명의 대소문자를 구분한다.

MySQL 서버가 운영체제와 관계없이 대소문자 영향을 받지 않게 하려면 MySQl 서버의 설정 파일(my.cnf)에 "lower_case_table_names=1" 내용을 추가한다. 그러면 모든 테이블명을 소문자로 저장한다. 

(유닉스 계열) 파일 my.cnf
(윈도우) C:\Program Files\MySQL\MySQL Server ${version}\my.ini

------------------------------------------------------
...

lower_case_table_names=1

...
-------------------------------------------------------

 

역따옴표 사용 금지

테이블을 생성할 때는 항상 역따옴표(BackTick)로 테이블명이나 컬럼명을 감싸지 않는 것을 권장한다. 예약어인지 아닌지 에러를 통해 알 수 있고 예약어는 사용하지 않는 것이 좋다. 

 

 

표준 쿼리 사용

SQL의 가독성을 높이기 위해 ANSI 표준 형태의 연산자를 사용하길 권장. sql_mode 시스템 변숫값에 "ANSI"를 추가하면 SQL 표준 표기법만 사용할 수 있게 강제할 수 있다. 다만, 운영중인 서버에 sql_mode 설정을 변경하면 상당히 위험할 수 있기 때문에 프로젝트 초기에 적용하는 것이 좋다. 

-- sql_mode 확인
show variables like 'sql_mode';

 

파일 my.cnf 

sql_model=ANSI,IGNORE_SPACE, ....