如何创建MySQL 数据表
创建MySQL数据表需要以下信息:
●表名
●表字段名
●定义每个表字段
语法
以下为创建MySQL数据表的SQL通用语法:
CREATETABLEtable_name(column_namecolumn_type);
以下例子中我们将在 GTXYZZ 数据库中创建数据表gtxyzz_tbl:
)ENGINE=InnoDBDEFAULTCHARSET=utf8; CREATETABLEIFNOTEXISTS`gtxyzz_tbl( `gtxyzz_idINTNOTNULLAUTO_INCREMENT, `gtxyzz_titleVARCHAR(100)NOTNULL, `gtxyzz_authorVARCHAR(40)NOTNULL, `submission_dateDATE, PRIMARYKEY(gtxyzz_id) )ENGINE=InnoDBDEFAULTCHARSET=utf8;
实例解析:
●如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
●AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
●PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
●ENGINE 设置存储引擎,CHARSET 设置编码。
通过命令提示符创建表
通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。
实例
以下为创建数据表 gtxyzz_tbl 实例:
root@host#mysql-uroot-p Enterpassword:******* mysql>useGTXYZZ; Databasechanged mysql>CREATETABLEgtxyzz_tbl( ->gtxyzz_idINTNOTNULLAUTO_INCREMENT, ->gtxyzz_titleVARCHAR(100)NOTNULL, ->gtxyzz_authorVARCHAR(40)NOTNULL, ->submission_dateDATE, ->PRIMARYKEY(gtxyzz_id) ->)ENGINE=InnoDBDEFAULTCHARSET=utf8; QueryOK,0rowsaffected(0.16sec) mysql>
注意:MySQL命令终止符为分号 ; 。
注意: -> 是换行符标识,不要复制。
使用PHP脚本创建数据表
你可以使用 PHP 的 mysqli_query() 函数来创建已存在数据库的数据表。
该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。
语法
mysqli_query(connection,query,resultmode);
参数 | 描述 | connection | 必需。规定要使用的 MySQL 连接。 | query | 必需,规定查询字符串。 | resultmode | 可选。一个常量。可以是下列值中的任意一个: ●MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个) ●MYSQLI_STORE_RESULT(默认) |
实例
以下实例使用了PHP脚本来创建数据表:
创建数据表
<?php $dbhost='localhost';//mysql服务器主机地址 $dbuser='root';//mysql用户名 $dbpass='123456';//mysql用户名密码 $conn=mysqli_connect($dbhost,$dbuser,$dbpass); if(!$conn) { die('连接失败:'.mysqli_error($conn)); } echo'连接成功<br/>'; $sql="CREATETABLEgtxyzz_tbl(". "gtxyzz_idINTNOTNULLAUTO_INCREMENT,". "gtxyzz_titleVARCHAR(100)NOTNULL,". "gtxyzz_authorVARCHAR(40)NOTNULL,". "submission_dateDATE,". "PRIMARYKEY(gtxyzz_id))ENGINE=InnoDBDEFAULTCHARSET=utf8;"; mysqli_select_db($conn,'GTXYZZ'); $retval=mysqli_query($conn,$sql); if(!$retval) { die('数据表创建失败:'.mysqli_error($conn)); } echo"数据表创建成功n"; mysqli_close($conn); ?>
执行成功后,就可以通过命令行查看表结构:
mysql>useGTXYZZ; Databasechanged mysql>showtables; +------------------+ |Tables_in_GTXYZZ| +------------------+ |gtxyzz_tbl| +------------------+ 1rowinset(0.00sec) mysql>descgtxyzz_tbl ->; +-----------------+--------------+------+-----+---------+----------------+ |Field|Type|Null|Key|Default|Extra| +-----------------+--------------+------+-----+---------+----------------+ |gtxyzz_id|int|NO|PRI|NULL|auto_increment| |gtxyzz_title|varchar(100)|NO||NULL|| |gtxyzz_author|varchar(40)|NO||NULL|| |submission_date|date|YES||NULL|| +-----------------+--------------+------+-----+---------+----------------+ 4rowsinset(0.00sec)