MySQL中create table语句的基本语法是


Posted in PHP onJanuary 15, 2007

MySQL中create table语句的基本语法是: 
Create [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] 
[table_options] [select_statement] 
TEMPORARY:该关键字表示用create table新建的表为临时表,此表在当前会话结束后将自动消失。临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用。 
IF NOT EXISTS:实际上是在建表前加上一个判断,只有该表目前尚不存在时才执行create table操作。用此选项可以避免出现表已经存在无法再新建的错误。 
tbl_name:你所要创建的表的表名。该表名必须符合标识符规则。通常的做法是在表名中仅使用字母、数字及下划线。例如titles、our_sales、my_user1等都应该算是比较规范的表名。 
create_definition:这是create table语句中关键部分所在。在该部分具体定义了表中各列的属性。 
create_definition的基本语句是: 
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] 
[PRIMARY KEY] [reference_definition] 
or PRIMARY KEY (index_col_name,...) 
or KEY [index_name] (index_col_name,...) 
or INDEX [index_name] (index_col_name,...) 
or UNIQUE [INDEX] [index_name] (index_col_name,...) 
or [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) 
[reference_definition] 
or CHECK (expr) 
col_name:表中列的名字。必须符合标识符规则,而且在表中要唯一。 
type:列的数据类型。有的数据类型需要指明长度n,并用括号括起。目前MySQL提供的数据类型详见MySQL进阶_列类型篇。 
NOT NULL | NULL:指定该列是否允许为空。如果既不指定NULL也不指定NOT NULL,列被认为指定了NULL。 
DEFAULT default_value:为列指定默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL作为值,缺省值是NULL。如果列被声明为NOT NULL,缺省值取决于列类型: 1、对于没有声明AUTO_INCREMENT属性的数字类型,缺省值是0。对于一个AUTO_INCREMENT列,缺省值是在顺序中的下一个值。 2、对于除TIMESTAMP的日期和时间类型,缺省值是该类型适当的“零”值。对于表中第一个TIMESTAMP列,缺省值是当前的日期和时间。3、对于除ENUM的字符串类型,缺省是空字符串。对于ENUM,缺省值是第一个枚举值。 
AUTO_INCREMENT:设置该列有自增属性,只有整型列才能设置此属性。当你插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,在这里value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。

PHP 相关文章推荐
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
深入PHP数据加密详解
Jun 18 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 PHP
PHP输入输出流学习笔记
May 12 PHP
PHP实现远程下载文件到本地
May 17 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
php 猴子摘桃的算法
Jun 20 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
php生成文件
Jan 15 #PHP
MYSQL环境变量设置方法
Jan 15 #PHP
PHP has encountered an Access Violation
Jan 15 #PHP
PHP5 安装方法
Jan 15 #PHP
安装APACHE
Jan 15 #PHP
php5.2时间相差8小时
Jan 15 #PHP
isset和empty的区别
Jan 15 #PHP
You might like
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
PHP生成plist数据的方法
2015/06/16 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
使用python实现接口的方法
2017/07/07 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
荷兰手表网站:Watch2Day
2018/07/02 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
你对IPv6了解程度
2016/02/09 面试题
护士自我介绍信
2014/01/13 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL