> 데이터 베이스 > MySQL 튜토리얼 > MySQL 데이터 테이블 작업에 대한 자세한 설명

MySQL 데이터 테이블 작업에 대한 자세한 설명

迷茫
풀어 주다: 2017-03-26 14:03:58
원래의
1341명이 탐색했습니다.

데이터 테이블 생성

데이터베이스 열기

USE 데이터베이스 이름

mysql> USE D1;
Database changed
로그인 후 복사

USE D1 사용은 데이터베이스 D1 열기를 의미합니다. , SELECT DATABASE();:

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| d1         |
+------------+1 row in set (0.00 sec)
로그인 후 복사

Create data table

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 및 NOT NULL

테이블을 생성할 때 필드가 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

DEFAULT를 통해 기본값을 설정합니다. 데이터 삽입 시 해당 값이 지정되지 않으면 다음 예를 사용합니다. 즉, number의 기본값을 3으로 설정하는 것입니다. 데이터 삽입 시 number가 주어지지 않으므로 기본값은 3입니다.

아아아아

위 내용은 MySQL 데이터 테이블 작업에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿