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

MySQL의 다른 테이블에서 테이블에 열을 추가할 수 있습니까?

<시간/>

예, 다른 테이블의 테이블에 열을 추가할 수 있습니다. 먼저 두 개의 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table FirstTable
   -> ( 
   -> UserId int,
   -> UserName varchar(20)
   -> );
Query OK, 0 rows affected (1.48 sec)

이제 두 번째 테이블을 만듭니다. 두 번째 테이블을 생성하는 쿼리는 다음과 같습니다. -

mysql> create table SecondTable
   -> (
   -> UserId int,
   -> UserAge int
   -> );
Query OK, 0 rows affected (1.57 sec)

이제 첫 번째 테이블에 Age 열을 추가합니다. 먼저 Age 열을 추가한 다음 UPDATE 명령을 사용하여 이 Age 열을 SecondTable의 UserAge 열로 설정합니다. 쿼리는 다음과 같습니다 -

mysql> ALTER TABLE FirstTable ADD COLUMN Age TINYINT UNSIGNED DEFAULT 0;
Query OK, 0 rows affected (1.53 sec)
Records: 0 Duplicates: 0 Warnings: 0

이제 Age 열을 SecondTable의 UserAge 열로 설정하기 위해 첫 번째 테이블을 업데이트하는 쿼리가 있습니다. 쿼리는 다음과 같습니다 -

mysql> UPDATE FirstTable tbl1
   -> INNER JOIN SecondTable tbl2 ON tbl1.UserId = tbl2.UserId
   -> SET tbl1.Age = tbl2.UserAge;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

이제 DESC 명령을 사용하여 첫 번째 테이블의 설명을 확인하십시오. 쿼리는 다음과 같습니다 -

mysql> desc FirstTable;

다음은 다른 테이블의 열을 성공적으로 추가했음을 표시하는 출력입니다 -

+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| UserId   | int(11)             | YES  |     | NULL    |       |
| UserName | varchar(20)         | YES  |     | NULL    |       |
| Age      | tinyint(3) unsigned | YES  |     | 0       |       |
+----------+---------------------+------+-----+---------+-------+
3 rows in set (0.53 sec)