집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터 테이블 작업에 대한 자세한 설명
USE 데이터베이스 이름
mysql> USE D1; Database changed
USE D1 사용은 데이터베이스 D1 열기를 의미합니다. , SELECT DATABASE();:
mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | d1 | +------------+1 row in set (0.00 sec)
CREATE TABLE [IF을 통해 현재 열려 있는 데이터베이스를 볼 수 있습니다. NOT EXISTS] table_name (
column_name 데이터 유형,
...
)
이 구조는 첫 번째 기사 "MySQL Basic에서 [IF NOT EXISTS]에 대해 매우 간단합니다. Operations'에 대해서는 이미 설명하였으므로 여기서는 반복하지 않겠습니다.
데이터 테이블을 생성해 보겠습니다table1:
mysql> CREATE TABLE table1( -> username VARCHAR(20), -> age TINYINT UNSIGNED, -> salary FLOAT(8,2) UNSIGNED -> ); Query OK, 0 rows affected (0.74 sec)
여기서 UNSIGNED는 부호 없는 값, 즉 양수를 의미합니다. "MySQL 기본 데이터 유형"을 검토할 수 있습니다. 보기 위해 TINYINT UNSIGNED는 0 ~ 255 사이의 값을 나타냅니다.
다음 명령문을 통해 이를 확인할 수 있습니다.
SHOW TABLES [FROM db_name][LIKE 'pattern' | WHERE expr]
mysql> SHOW TABLES FROM D1; +--------------+ | Tables_in_d1 | +--------------+ | table1 | +--------------+1 row in set (0.00 sec)
여기서 table1이 생성된 것을 볼 수 있습니다.
SHOW COLUMNS FROM tbl_name
mysql> SHOW COLUMNS FROM table1; +----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------------+------+-----+---------+-------+ | username | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | salary | float(8,2) unsigned | YES | | NULL | | +----------+---------------------+------+-----+---------+-------+3 rows in set (0.10 sec)
테이블을 생성한 후 데이터는 다음과 같아야 합니다. 이제 다음 문을 통해 레코드를 삽입합니다.
INSERT [INTO] tbl_name [(col_name,...)] VALUE(val,...)
여기서[(col_name,...)]은 선택 사항입니다. 추가하지 않으면 VALUE의 값이 데이터 테이블의 필드와 하나씩 일치해야 하며, 그렇지 않으면 삽입할 수 없습니다. 살펴보기:
mysql> INSERT table1 VALUE("LI",20,6500.50); Query OK, 1 row affected (0.14 sec)
여기에서 VALUE 괄호 안의 필드는 table1의 필드(username="LI", age=20, 급여=6500.50
)와 일대일로 대응합니다. 다른 데이터를 삽입했지만 일치하는 내용이 없습니다.
mysql> INSERT table1 Value("Wang",25); ERROR 1136 (21S01): Column count doesn't match value count at row 1
는 급여 값이 제공되지 않아 삽입할 수 없습니다.
[(col_name,...)]을 추가하면 유연하게 데이터를 삽입할 수 있습니다.
mysql> INSERT table1(username,age) VALUE("Wang",25); Query OK, 1 row affected (0.11 sec)
table1은 일대일 VALUE에 해당합니다.
이전에 두 개의 데이터가 삽입되었습니다. 다음 명령문을 통해 테이블 데이터를 조회할 수 있습니다.
SELECT expr,.. . FROM tbl_name
데이터베이스 검색 문 SELECT에는 많은 내용이 있는데, 이에 대해서는 다음 기사에서 간단한 문을 사용하여 테이블 내용을 찾습니다.
mysql> SELECT * FROM table1 -> ; +----------+------+---------+ | username | age | salary | +----------+------+---------+ | LI | 20 | 6500.50 | | Wang | 25 | NULL | +----------+------+---------+2 rows in set (0.00 sec)
MySQL 문은 "; "로 시작합니다. 마지막에 작성하는 것을 잊어버리면 문을 실행할 수 없습니다. 여기서 화살표 뒤에 세미콜론을 추가하면 두 부분이 있다는 것을 알 수 있습니다. 방금 테이블에 작성된 데이터입니다.
테이블을 생성할 때 필드가 null이 될 수 있는지 여부와 null이 될 수 없는 경우를 설정할 수 있습니다. 이면 데이터를 삽입할 때 비어 있을 수 없습니다.
데이터 테이블을 생성해 보겠습니다. table2:
mysql> CREATE TABLE table2( -> username VARCHAR(20) NOT NULL, -> age TINYINT UNSIGNED NULL, -> salary FLOAT(8,2) -> );
여기서 사용자 이름은 비어 있지 않고 나이는 NULL이며 급여는 기록되지 않습니다.
mysql> SHOW COLUMNS FROM table2; +----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------------+------+-----+---------+-------+ | username | varchar(20) | NO | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | salary | float(8,2) | YES | | NULL | | +----------+---------------------+------+-----+---------+-------+3 rows in set (0.01 sec)
여기에서 사용자 이름의 NULL은 NO이고 다른 두 필드는 YES라는 것을 알 수 있습니다. 비어 있을 수 있는 필드의 경우 NULL 또는 not이라고 쓰면 비어 있을 수 있음을 의미합니다.
AUTO_INCREMENT
auto_increment, auto 자동, increment 는 합쳐지면 자동 증가를 뜻하는데, 즉 자동으로 가능해진다. 어린 시절에 따라 가장 높은 일련 번호로 증가합니다.
은 기본 키로만 사용할 수 있습니다(기본 키는 테이블에 있는 데이터의 고유한 표현을 나타내며, 테이블에 있는 데이터는 기본 키로 구분 가능)
기본값 이 경우는 1이고 증가량은 1입니다
다음과 같이 합시다:
mysql> CREATE TABLE table3( -> id SMALLINT UNSIGNED AUTO_INCREMENT, -> username VARCHAR(20) -> ); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
오류 해당 ID가 기본 키로 설정되지 않았기 때문에 보고되었습니다.
PRIMARY KEY
기본 키 제약 조건
각 테이블에는 하나의 기본 키만 있을 수 있습니다
기본 키는 레코드의 고유성을 보장합니다
기본 키는 자동으로 NULL이 아닙니다
그런 다음 기본 키를 추가하고 다시 해보겠습니다.
mysql> CREATE TABLE table3( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) -> ); Query OK, 0 rows affected (0.42 sec)
순서에 주의하세요. PRIMARY KEY는 맨 마지막에 와야 합니다.
이렇게 해서 데이터를 하나씩 삽입하고 결과를 확인해 보겠습니다.
mysql> INSERT table3(username) VALUES("Zhang"); Query OK, 1 row affected (0.09 sec) mysql> INSERT table3(username) VALUES("Weng"); Query OK, 1 row affected (0.07 sec) mysql> INSERT table3(username) VALUES("Chen"); Query OK, 1 row affected (0.09 sec) mysql> SELECT * FROM table3; +----+----------+ | id | username | +----+----------+ | 1 | Zhang | | 2 | Weng | | 3 | Chen | +----+----------+3 rows in set (0.00 sec)
ID가 작은 것부터 큰 것까지 자동으로 번호가 매겨지는 것을 볼 수 있습니다.
UNIQUE KEY
고유 제약 조건
고유 제약 조건 레코드가 반복 불가능(고유)하다는 보장
고유 제약 조건은 null(NULL)일 수 있습니다.
여러 고유 제약 조건이 있을 수 있습니다
mysql> CREATE TABLE table4( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) UNIQUE KEY, -> age TINYINT UNSIGNED -> ); Query OK, 0 rows affected (0.43 sec) mysql> INSERT table4(username) VALUE("Li"); Query OK, 1 row affected (0.11 sec) mysql> INSERT table4(username) VALUE("Li"); ERROR 1062 (23000): Duplicate entry 'Li' for key 'username' mysql> INSERT table4(username) VALUE("Chen"); Query OK, 1 row affected (0.10 sec)
사용자 이름을 고유 제약 조건으로 설정했기 때문에 Li를 반복적으로 생성할 수 없으므로 "Chen"으로 변경하면 됩니다. 이는 단지 실험일 뿐이며, 실제 운영에서는 여전히 동일한 이름이 일반적이므로 실제 상황에 따라 데이터 테이블을 구성해야 합니다.
DEFAULT를 통해 기본값을 설정합니다. 데이터 삽입 시 해당 값이 지정되지 않으면 다음 예를 사용합니다. 즉, number의 기본값을 3으로 설정하는 것입니다. 데이터 삽입 시 number가 주어지지 않으므로 기본값은 3입니다.
아아아아위 내용은 MySQL 데이터 테이블 작업에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!