Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL8에서 "순위"를 열 이름으로 사용할 수 있습니까?

<시간/>

순위는 MySQL 버전 8.0.2에서 정의된 MySQL 예약어입니다. 따라서 rank를 열 이름으로 사용할 수 없습니다. 순위 주위에 백틱을 사용해야 합니다.

먼저 작업 중인 MySQL 버전을 확인하겠습니다. 여기서는 MySQL 버전 8.0.12를 사용하고 있습니다. -

mysql> 버전 선택();+-----------+| 버전() |+-----------+| 8.0.12 |+-----------+1 행 세트(0.00초)

컬럼명으로 "rank"를 사용한 문제는 다음과 같습니다. -

mysql> create table DemoTable1596 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> rank int -> );ERROR 1064 (42000):SQL에 오류가 있습니다. 통사론; 5행에서 'rank int)' 근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 설명서를 확인하십시오.

위와 같이 컬럼명으로 예약어를 사용하였기 때문에 오류가 보입니다.

먼저 테이블을 만들고 오류를 피하기 위해 "순위" 주위에 백틱을 사용합시다 -

mysql> create table DemoTable1596 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> `rank` int -> );Query OK, 영향을 받는 행 0개(0.51초) 

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1596(StudentName,`rank`) values('Bob',4567);Query OK, 1행 영향(0.18초)mysql> insert into DemoTable1596(StudentName,`rank`) values('David ',1);쿼리 OK, 영향을 받는 행 1개(0.17초)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable1596에서 * 선택;

이것은 다음과 같은 출력을 생성합니다 -

+----+-------------+------+| 아이디 | 학생 이름 | 순위 |+----+-------------+------+| 1 | 밥 | 4567 || 2 | 데이비드 | 1 |+----+-------------+------+2행 세트(0.00초)