SQL 첫걸음- 12강(1/2)

12강. 수치 연산

2. SELECT구로 연산하기

1
SELECT 식1, 식2... FROM 테이블명;

3. 열의 별명

별명이 중복되지 않게 지정한다.

  • 별명은 예약어 AS를 사용해서 지정한다.

  • SELECT구에서는 콤마(,)로 구분해서 복수의 식을 지정할 수 있고,
    각각의 식에 별명을 붙일 수 있다.

  • MySQL에서는 별명을 중복해서 지정해도 에러는 발생하지 않는다.

    But, 프로그래밍 언어에서 결과값의 처리 방식에 따라 문제가 발생할 수 있다.

    기본적으로 별명이 중복되지 않게 지정하자.


  • 키워드 AS생략 가능하다.
  • 단, 별명을 한글로 지정하는 경우에는 여러 가지로 오작동하는 경우가 많다.

  • 더블쿼트("")로 감싸서 지정한다. (MySQL에서는 백쿼트(``)로 감싸준다!)
    • 더블쿼트("")로 감싸주면, 데이터베이스 객체의 이름이라고 간주한다.
    • 싱글쿼트('')로 감싸는 것은 문자열 상수이다.

      이름에 ASCII 문자 이외의 것이 포함된다면,
      더블쿼트(“”)(MySQL에서는 백쿼트(``))로 감싸서 지정한다!

1) 데이터베이스 객체명

1-a) MySQL 이외의 데이터베이스

더블쿼트("")로 둘러싼다.

1
"sample1" "sample26"
1-b) MySQL

백쿼트(``)로 둘러싼다.

1
`sample1` `sample26`

2) 문자열 상수

싱글쿼트('')로 둘러싼다.

1
'APPLE' '홍길동'
  • 예약어와 같은 이름은 지정할 수 없지만,
    더블쿼트("") (MySQL에서는 백쿼트 (``) )로 감싸주면 문제없이 지정할 수 있다.
1
SELECT price * quantity AS SELECT FROM sample34; # 예약어 그대로 별명으로 사용 불가
  • ex) SELECT 는 예약어이므로 그대로 별명을 지정해서 사용할 수 없다.
    아래와 같이 예약어인 SELECT를 더블쿼트("") (MySQL에서는 백쿼트(``))로 감싸주면 사용 가능하다.
2-a) MySQL 이외의 데이터베이스

예약어인 SELECT를 더블쿼트("")로 둘러준다.

1
SELECT price * quantity AS "SELECT" FROM sample34;
2-b) MySQL

예약어인 SELECT를 백쿼트(``)로 둘러준다.

1
SELECT price * qunatity AS `SELECT` FROM sample34;

숫자로 시작하는 이름

  • 이름을 붙일 때숫자로 시작할 수 없다.
  • 이유: 이름이 숫자로 시작할 경우, 그것이 수치형 상수를 의미하는 것인지
    데이터베이스 객체명을 의미하는 것인지 구별할 수 없기 때문이다.
  • cf) 이름이 예약어와 겹칠 때와 마찬가지로, 더블쿼트로 묶으면 에러를 피할 수 있다.
데이터베이스 제품별 허용 여부
  • MYSQL에서는 숫자로 시작하는 객체명허용된다.
  • Oracle에서는 숫자로 시작하는 이름이 허용되지 않는다.
  • cf) 더블쿼트로 감싸면 객체명으로 간주하는 룰은 표준 SQL에 규정되어 있다.