仓酷云

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

[学习教程] MYSQL网站制作之周全打仗SQL语法(6)

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。sql语法SQL与数据库的保护
  表格的创建

  将SQL中的基础语法作了一番先容今后,但年夜多是倾向于数据库数据的查询与过滤,但实践上,我们经由过程SQL命令所能够做的事另有良多,接上去要先容的即是怎样使用SQL的语法命令来创建一个数据库中的表格。

   CREATETABLE语句

  我们能够使用这个命令,来创建一个全新的表格,但条件则是:数据库必需已存在。

CREATETABLEtable(field1type[(size)][index1][,field2type[(size)][index2][,...]][,nultifieldindex[,...]])
table
欲创建的新的表格称号。
field1,field2
在新表格中的新的字段称号,到少要一个字段以上。
type
字段的数据范例。
size
字段的巨细。
index1,index2
使用CONSTRAINT前提子句界说一个单一字段的索引称号。
multifieldindex
使用CONSTRAINT前提子句界说一个多重字段的索引称号。


  比方:

  创建一个具有人员姓名与部门字段的表格。

CREATETABLE人员表格(姓名TEST,部门TEST,人员编号INTEGERCONSTRAINT人员字段索引PRIMARYKEY)
在这一个典范中,我们创建了一个表格称号为“人员表格”的表格,而且界说了该表格的主键值,以限定数据不克不及反复输出。

  表格索引的创建

   CREATEINDEX语句

  这个命令次要是对一个已存在的表格创建索引,其用法以下:

CREATE[UNIQUE]INDEXindexONtable(field[ASC|DESC][,field[ASC|DESC],...])
[WITH{PRIMARY|DISALLOWNULL|IGNORENULL}]
index



  欲被创建的索引称号。

  table

  欲创建索引的表格称号。

  field

  欲被创建的索引的字段称号。并可经由过程DESC保存字,来决意索引的按次。

  比方:

退职员表格中创建一个索引。
CREATEINDEX新索引称号
ON人员表格(姓名部门);
 
表格的字段更新
CONSTRAINT前提子句
CONSTRAINT的功效是相似索引(INDEX)的,固然CONSTRAINT也能够创建表格之间的联系关系性。
单一字段索引:
CONSTRAINTname{PRIMARYKEY|UNIQUE|REFERENCESforeigntable[(foreignfield1,foreignfield2)]}
多字段索引:
CONSTRAINTname
{PRIMARYKEY(primary1[,primary2[,...]])
|UNIQUE(unique1[,unique2[,...]])
|FOREIGNKEY(ref1[,ref2[,...]])
|REFERENCESforeigntable[(foreignfield1[,foreignfield2[,...]])]}
name
要被创建的CONSTRAINT称号。
primary1,primary2
被用来计划成主键值的字段称号(可一个以上)。
unique1,unique2
被用来计划成独一键值的字段称号(可一个以上)。
foreignkey
字段称号,或是参考到其余表格中字段的字段称号。
foreigntable
如前所述,被参考到的表格。
foreignfield1,foreignfield2
在参考到的表格傍边,被ref1,ref2字段所指定的字段。假如被参考的字段是参考表格中的主键值,你也能够省略这个前提子句。
比方:
当我们要创建一个新的人员数据表格,表格包括姓名、部门称号与诞辰三个字段,且由这三个字段创建一个独一的索引时,可使用上面这段SQL的语句。
CREATETABLE人员数据表格
(姓名TEST,部门称号TEST,诞辰DATETIME,CONSTRAINT人员数据表格限定UNIQUE(姓名,部门称号,诞辰));
以上是SQL中,与数据库表格创建相干的命令,你能够使用这些命令,经由过程SQL的语句,将数据库表格完全的创建出来,接上去的章节,将针对数据库创建以后的保护与增删所要利用的SQL语句作一先容。
MySQL的支持者们却认为,MySQL所保留的功能都是精华,并且是你部署、MySQL学习教程配置和维护这个数据库所必不可少的一些功能。
变相怪杰 该用户已被删除
沙发
 楼主| 发表于 2015-1-19 17:46:51 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
小女巫 该用户已被删除
板凳
发表于 2015-1-24 15:41:18 来自手机 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
简单生活 该用户已被删除
地板
发表于 2015-2-2 05:00:12 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
因胸联盟 该用户已被删除
5#
发表于 2015-2-7 16:16:25 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
若天明 该用户已被删除
6#
发表于 2015-2-22 15:49:26 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-7 00:48:14 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
再现理想 该用户已被删除
8#
发表于 2015-3-13 23:45:44 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
海妖 该用户已被删除
9#
发表于 2015-3-20 23:30:07 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 03:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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