PHP는 MySQL 테이블을 생성합니다
데이터 테이블은 고유한 이름을 가지며 행과 열로 구성됩니다.
MySQLi와 PDO를 사용하여 MySQL 테이블 생성
CREATE TABLE 문은 MySQL 테이블을 생성하는 데 사용됩니다.
"id", "firstname", "lastname", "email" 및 "reg_date"의 5개 열이 있는 "MyGuests"라는 테이블을 생성합니다:
CREATE TABLE MyGuests(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
이름 VARCHAR(30) NOT NULL,
성 VARCHAR(30) NOT NULL,
이메일 VARCHAR(50),
reg_date TIMESTAMP
)ENGINE=InnoDB DEFAULT CHARSET=utf8
위 표의 참고 사항:
데이터 유형은 열에 저장할 수 있는 데이터 유형을 지정합니다. 전체 데이터 유형에 대해서는 데이터 유형 참조 매뉴얼을 참조하세요.
데이터 유형을 설정한 후 각 열에 대해 다른 옵션의 속성을 지정할 수 있습니다.
1. NOT NULL - 각 행에는 값이 포함되어야 하며(비워둘 수 없음) null 값은 허용되지 않습니다.
2. DEFAULT 값 - 기본값을 설정합니다.
3. UNSIGNED - 부호 없는 숫자 유형, 0 및 양수를 사용합니다.
4. AUTO INCREMENT - 값을 설정합니다. MySQL 필드 새 레코드가 추가될 때마다 자동으로 1씩 증가합니다.
5. PRIMARY KEY - 데이터 테이블의 각 레코드에 대한 고유 식별자를 설정합니다. 일반적으로 열의 PRIMARY KEY는 AUTO_INCREMENT와 함께 사용되는 ID 값으로 설정됩니다.
6. ENGINE=InnoDB - MySQL 5.6부터 기본적으로 사용되는 InnoDB로 데이터베이스 엔진을 설정합니다. 각 MySQL 데이터 테이블은 서로 다른 스토리지 엔진(스토리지 엔진)으로 설정될 수 있습니다. 사용되는 주요 엔진은 MyISAM과 InnoDB(기본값)입니다.
7. DEFAULT CHARSET=utf8 - 데이터베이스의 기본 문자 집합을 utf8로 설정합니다
각 테이블에는 기본 키(이 열은 "id" 열임)가 있어야 하며 기본 키에는 고유한 값이 포함되어야 합니다.
다음 예는 PHP에서 테이블을 생성하는 방법을 보여줍니다.
예(MySQLi - 객체 지향)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn =new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 使用 sql 创建数据表 $sql= "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; if ($conn->query($sql) === TRUE) { echo "Table MyGuests created successfully"; } else { echo "创建数据表错误: " . $conn->error; } $conn->close(); ?>
예(MySQLi - 프로시저 중심)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 使用 sql 创建数据表 $sql= "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP)"; if (mysqli_query($conn, $sql)) { echo "数据表 MyGuests 创建成功"; } else { echo "创建数据表错误: " . mysqli_error($conn); } mysqli_close($conn); ?>
인스턴스(PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername; dbname=$dbname", $username, $password); // 设置 PDO 错误模式,用于抛出异常 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); // 使用 sql 创建数据表 $sql = "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; // 使用 exec() ,没有结果返回 $conn->exec($sql); echo "数据表 MyGuests 创建成功"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
테이블 생성 원칙
일반적으로 데이터베이스 테이블 생성 시에는 다음과 같은 주의사항이 있습니다.
1. 원본 레코드 데이터와 테이블의 대응
2. 테이블 이름과 필드 이름은 명명 구문을 따라야 하며 명확한 의미를 가져야 합니다
3. 필드의 데이터 유형을 지정합니다
4. 비어 있지 않고 기본값이 있는지 여부
5. 기본 키와 외래 키, 제약 조건, 인덱스 등 테이블의 속성을 정의합니다.
6. 🎜>
공간의 제약과 튜토리얼의 난이도 조절을 위해 여기에 포함되지 않았습니다. 너무 많은 토론을 시작하세요.phpMyAdmin을 사용하여 조작
이전 장에서는 phpMyAdmin을 직접 열고 명령을 입력하여 새 데이터베이스를 생성하고 쿼리를 수행한다고 언급했습니다. 데이터베이스, 여기서는 명령을 사용하여 데이터베이스 테이블에 대한 다른 기본 작업을 수행할 수도 있습니다.
데이터베이스 테이블 삭제 - DROP TABLE db_name
테이블 이름 수정 - ALTER TABLE db_name RENAME new_db_name