仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 473|回复: 7
打印 上一主题 下一主题

[学习教程] 公布MySQL进阶_create table篇

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用DBaaS能让收入损失从其他业务上得到弥补,如软件更新和硬件管理。也许决定走DBaaS之路的客户可能会跳过解决方案提供商,尽管这个决策看起来有点短视。MySQL中createtable语句的基础语法是:
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name[(create_definition,...)]
[table_options][select_statement]
TEMPORARY:该关头字暗示用createtable新建的表为一时表,此表在以后会话停止后将主动消散。一时表次要被使用于存储过程当中,关于今朝尚不撑持存储历程的MySQL,该关头字一样平常不必。
IFNOTEXISTS:实践上是在建表前加上一个判别,只要该表今朝尚不存在时才实行createtable操纵。用此选项能够制止呈现表已存在没法再新建的毛病。
tbl_name:你所要创立的表的表名。该表名必需切合标识符划定规矩。一般的做法是在表名中仅利用字母、数字及下划线。比方titles、our_sales、my_user1等都应当算是对照标准的表名。
create_definition:这是createtable语句中关头部分地点。在该部分详细界说了表中各列的属性。
create_definition的基础语句是:
col_nametype[NOTNULL|NULL][DEFAULTdefault_value][AUTO_INCREMENT]
[PRIMARYKEY][reference_definition]
orPRIMARYKEY(index_col_name,...)
orKEY[index_name](index_col_name,...)
orINDEX[index_name](index_col_name,...)
orUNIQUE[INDEX][index_name](index_col_name,...)
or[CONSTRAINTsymbol]FOREIGNKEYindex_name(index_col_name,...)
[reference_definition]
orCHECK(expr)
col_name:表中列的名字。必需切合标识符划定规矩,并且在表中要独一。
type:列的数据范例。有的数据范例必要指明长度n,并用括号括起。今朝MySQL供应的数据范例详见MySQL进阶_列范例篇。
NOTNULL|NULL:指定该列是不是同意为空。假如既不指定NULL也不指定NOTNULL,列被以为指定了NULL。
DEFAULTdefault_value:为列指定默许值。假如没无为列指定默许值,MySQL主动地分派一个。假如列能够取NULL作为值,缺省值是NULL。假如列被声明为NOTNULL,缺省值取决于列范例: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列,而且它必需被索引。
对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-25 23:13:42 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
爱飞 该用户已被删除
板凳
发表于 2015-2-4 13:20:52 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
因胸联盟 该用户已被删除
地板
发表于 2015-2-9 23:35:52 | 只看该作者
无法深入到数据库系统层面去了解和探究
活着的死人 该用户已被删除
5#
发表于 2015-2-28 08:51:39 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
逍遥一派 该用户已被删除
6#
 楼主| 发表于 2015-3-9 21:56:07 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
分手快乐 该用户已被删除
7#
发表于 2015-3-17 02:09:21 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
8#
发表于 2015-3-23 17:11:11 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-20 02:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表