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

MySQL에서 모든 테이블과 열의 이름을 소문자로 바꾸시겠습니까?

<시간/>

INFORMATION_SCHEMA.COLUMNS의 도움으로 이를 달성할 수 있습니다. 구문은 다음과 같습니다 -

SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, '` `',
LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS anyAliasName
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ‘yourDatabaseName’;

이제 두 개의 테이블이 있는 데이터베이스를 사용하십시오. 데이터베이스 이름은 "bothinnodbandmyisam"과 같습니다. 이 데이터베이스에는 다음 테이블이 있습니다 -

  • 직원
  • 학생

직원 테이블에 대한 설명은 다음과 같습니다 -

mysql> desc employee;

다음은 출력입니다. 직원 테이블에 소문자가 아닌 다음 열이 있다고 가정해 보겠습니다. -

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| EmployeeId   | int(11)     |  YES |     | NULL    |       |
| EmployeeName | varchar(30) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

학생 테이블에 대한 설명은 다음과 같습니다. 쿼리는 다음과 같습니다 -

mysql> desc student;

다음은 출력입니다. 소문자가 아닌 학생 테이블에 다음 열이 있다고 가정해 보겠습니다. -

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | YES  |     | NULL    |       |
| StudentName | varchar(20) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

다음은 모든 테이블의 열 이름을 소문자로 변경하는 쿼리입니다. 쿼리는 다음과 같습니다 -

mysql> SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, '` `',
   -> LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS changeColumnNameToLower
   -> FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'bothinnodbandmyisam';

다음은 업데이트된 열 이름을 표시하는 ALTER TABLE 명령을 표시하는 출력입니다. -

+------------------------------------------------------------------------+
| changeColumnNameToLower                                                |
+------------------------------------------------------------------------+
| ALTER TABLE employee CHANGE `EmployeeId` `employeeid` int(11);         |
| ALTER TABLE employee CHANGE `EmployeeName` `employeename` varchar(30); |
| ALTER TABLE student CHANGE `StudentId` `studentid` int(11);            |
| ALTER TABLE student CHANGE `StudentName` `studentname` varchar(20);    |
+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

위의 샘플 출력을 보면 모든 열 이름이 소문자로 변경되었습니다.