MySQL 创建数据表
创建MySQL数据表需要以下信息:
- 表名
- 表字段名
- 定义每个表字段
语法
以下为创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type);
以下例子中我们将在 mydb 数据库中创建数据表mydb_jianshu:
首先我们需要用 use mydb
选择要操作的数据库:
CREATE TABLE IF NOT EXISTS `mydb_jianshu`(
`jianshu_id` INT UNSIGNED AUTO_INCREMENT,
`jianshu_title` VARCHAR(100) NOT NULL,
`jianshu_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `jianshu_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
实例解析:
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
通过命令提示符创建表
通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。
实例
以下为创建数据表 mydb_jianshu 实例:
C:\Users\Administrator.USER-20171227ZP>mysql -u root -p
Enter password:******
mysql> use mydb;
Database changed
mysql> CREATE TABLE mydb_jianshu(
-> jianshu_id INT NOT NULL AUTO_INCREMENT,
-> jianshu_title VARCHAR(100) NOT NULL,
-> jianshu_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY (jianshu_id)
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.36 sec)
注意:MySQL命令终止符为分号 (;) 。
使用PHP脚本创建数据表
以下实例使用了PHP脚本来创建数据表:
实例
<?php
$dbname = 'mydb';
$servername = 'localhost';
$username = 'root';
$password = '';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE TABLE mydb_jianshu(" .
"jianshu_id INT NOT NULL AUTO_INCREMENT," .
"jianshu_title VARCHAR(100) NOT NULL," .
"jianshu_author VARCHAR(40) NOT NULL," .
"submission_date DATE," .
"PRIMARY KEY (jianshu_id)" .
")ENGINE=InnoDB DEFAULT CHARSET=utf8;";
//使用 exec() ,因为没有结果返回
$conn->exec($sql);
echo "数据表 mydb_jianshu 创建成功<br>";
} catch (PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
执行成功后,就可以通过命令行查看表结构:
mysql> use mydb;
Database changed
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| mydb_jianshu |
+----------------+
1 row in set (0.00 sec)
mysql> desc mydb_jianshu;
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| jianshu_id | int(11) | NO | PRI | NULL | auto_increment |
| jianshu_title | varchar(100) | NO | | NULL | |
| jianshu_author | varchar(40) | NO | | NULL | |
| submission_date | date | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
一起学习一起进步,写的不好见谅。