基本的SQL语法:创建和修改表和数据库

这个补习显示基本语法和指令,并根据SQL语言。

创造并投下数据库

首先,让我们来看看什么数据库已经存在,在MySQL服务器。 我们可以浏览此信息,利用显示指挥。 输入以下(除了MySQL的>部分)纳入MySQL的控制台客户端,然后返回:

  MySQL的> "显示数据库; 

有两个数据库已经创造了在MySQL服务器。 MySQL数据库包含了管理信息为MySQL服务器,不应该予以修改。 其他数据库,测试,而这正是它听起来像是:一场考验MySQL服务器。 测试数据库,不包含任何东西,它可以被安全地去除,如果需要。

创建一个数据库

因此,我们如何把我们自己的数据库,在MySQL服务器? 要做到这一点,我们使用了创建指挥部。 让我们说我们要建立一个数据库,名为mydata ,我们会使用以下的语法。

下表列出的长度和性质的限制,是强加的名字数据库,表,专栏,专版和别名。
标识符 最大长度 有效字符
数据库 64 所有有效的目录名字符除了" 。 " 和" / " 。
64 所有有效的目录名字符除了" 。 " 和" / " 。
专栏 64 一切都是正确的。
别名 15 一切都是正确的。
  MySQL的> "创建数据库mydata ; 
  

通知指出,分号,是补充后,每个指挥在SQL语言。 当我们的记者返回后,进入这个命令,控制台告诉我们,有人质疑其好。

现在我们已建立了数据库,我们能确保它是在服务器上,由再以查看指挥部,具体情况如下:

  MySQL的> "显示数据库; 

当我们的记者回到这个命令,我们可以看到,我们的资料库中已被添加到列表(注:名单是按字母顺序排列,而不是为了在该数据库中创建) 。

弃掉一个数据库

现在,我们会删除该数据库从服务器。 注意,当我们这样做的话,所有的数据(如果有的话)都将丢失。 删除一个数据库,我们"变坏" ,它从服务器用下拉指挥。 所以,以减少我们的新mydata数据库中,我们会用以下命令:

  MySQL中>辍学数据库mydata ; 

当我们执行这个命令所迫切回报,质疑将被报告为好。

现在,如果我们再次列出数据库使用查看命令:

  MySQL的> "显示数据库; 

… …我们可以看到,我们的mydata数据库已不再是有形于该名单。

柱(场)的类型在MySQL

之前,我们讨论如何创造表格数据库,现在是一个很好的时间,更何况不同的栏目类型,我们可以有在统计表。

每一列在表必须配型,它代表类型的信息这一领域十二月二十三日至二十六日举行。 这里是一个完整的清单,可用类型,您可以使用:

类型 描述
tinyint 一个很小的整数。 签名范围是-128到127 。 无符号的范围是0到255 。
smallint 一个小整数。 签名范围是-32768到32767 。 无符号的范围是0到65535 。
mediumint 一个中等大小的整数。 签名范围是-8388608到8388607 。 无符号的范围是0到16777215 。
诠释 一个正常大小的整数。 签名范围是-2147483648到2147483647 。 无符号的范围是0到4294967295 。
bigint 大尺寸的整数。 签名范围是-9223372036854775808到9223372036854775807 。 无符号的范围是0到18446744073709551615 。
浮法 建立一个规模较小,单精度浮点型,数量不足,不能无符号。 签名射程- 3.402823466e +38至1.755494351e - 38 , 0 ,并1.755494351e - 38至3.402823466e +38 。
双精度浮点型,数量不足,不能无符号。 签名射程- 1.7976931348632157e 308至2.2250738585072014e - 308 , 0 ,并2.2250738585072014e - 308至1.7976931348632157e 308 。
小数点 一个散装浮点型,数量不足,不能无符号。 工程犹如一个"炭"一栏,有关数目是存放为字符串(即每个数字用一个字在弦) 。
日期 一个日期。 范围是1000年1月1日至9999年12月31日,并在格式yyyy毫米-副署长。
时间 过一段时间。 射程-838:59:59以838:59:59 ,并在格式小时:分钟:秒钟。
日期时间 组合的日期和时间。 范围是1000年1月1日00:00:00至9999年12月31日21时59分59秒,并在格式yyyy毫米-副署长小时:分钟:秒钟。
今年[ ( 2 | 4 ) ] 每年2 -或4位格式(默认是4 ) 。 范围是1901年至2155年,也是0000 。
时间戳 戳。 范围是1970年1月1日00:00:00到某个时候,在2037年,在格式yyyymmddhhmmss 。
煤焦(长) 一个固定长度的字符串,就是始终右加垫与空间,在指定的长度时,储存的。 范围是1至255个字符,视乎有关"长度"指明。
varchar 可变长度字符串。
tinyblob / tinytext 弹丸之地二进制对象。 最大长度255个字符。 *见说明如下表。
为Blob /文 二进制对象。 最大长度65535字。 *见说明如下表。
mediumblob / mediumtext 一个中等二进制对象。 最大长度16777215字。 *见说明如下表。
longblob / longtext 大二进制对象。 最大长度4294967295字符。 *见说明如下表。
的ENUM ( ' val1 ' , ' val2 '...) 枚举。 名单字符串值,其中只有一个可以被选中。 最多65535截然不同的价值观。
设( ' val1 ' , ' val2 '...) 一盘比赛。 一个字符串对象,可以是零或以上的价值观,每一个必须选择从名单(即' val1 ' , ' val2 ' ,等等) 。 最多64个字符。
唯一的区别BLOB和TEXT类型,是为整理和比较,为Blob是区分大小写的,而文本类型是不区分大小写。

创建,修改,投下表

创建表

现在我们已经知道了可能的类型为栏目,在我们的桌子,让我们看看我们实际上如何去创造一个就座。

让我们说,我们希望创建一个表,举办一些用户细节一个数据库。

我们要存储用户的名称,首先是姓名,年龄,电子邮件地址,以及日期,用户被添加到数据库中。 因此,我们将要求下列栏目,在我们的表:

 标题firstname姓年龄emailaddress dateadded 

以前我们进入如何,其实它加入,让我们首先想到怎样去储存信息或更确切地说,是什么类型,我们需要为每一个栏目。

为标题,首先名字,姓氏,我们可以用文本类型,因为它包含了大量的汉字,让所有出现的可能性。

varchar可以工作更快,也许是一个更好的选择,如果字串长度可以限制少于255个字符。

为年龄,是一个无符号tinyint将是一个明显的选择,因为年龄的数值,并从来没有人被称为生活在过去255 。 为电子邮件地址,我们可以再次使用文本型,因为这将给予我们大量的存储空间,施政报告的内容。 最后,为迄今该用户被添加到表,我们可以使用一戳。

与Java ,有可能使用一种诠释数据类型和存储system.currenttimemillis ( ) / 1000为价值。 这个值可以稍后被牵强,从数据库中。 然后乘以1000 ,并转换成以日期型(即日期=新的日期(值) ; ) 。 这是非常有用的时候,做本地化和/或转换之间不同的数据库

时间戳也有一个伟大的财产在这方面的时间和日期,可予以追缴自动输入数据库。

现在我们已经知道了哪些类型,我们要为我们的栏目,我们需要建立一个数据库,以添加表到。 让我们建立一个数据库,所谓myinfo符合以下命令:

  MySQL的> "创建数据库myinfo ; 

当我们执行这个命令,控制台应报告说,有人质疑其好。 现在,我们可以退房,我们的资料库已经建立,并作以下命令:

  MySQL的> "显示数据库; 

现在我们需要告诉MySQL中,我们希望演出行动对myinfo数据库。 这是通过使用使用命令:

  MySQL的>使用myinfo ; 
如果没有使用,所有表格中, myinfo数据库应称为myinfo.mytable ,这当然是相当不便。

后执行此命令,任何ddl (数据定义语言)和dml (数据操作语言)的陈述是被处决,会影响数据库的使用,而在这种情况下,是我们myinfo数据库。

现在,我们有我们的资料库成立,并随时准备接受命令,我们可以创造我们的表(我们将名称userinfo ) ,特声明如下:

  MySQL的> "创建表userinfo ( -> "身份证诠释a uto_increment, - >"的标题文字,- > "f i r stname文本中,- > "姓文, - > "年龄t i n yi nt,->"电子邮件文本->"d at ea d d ed戳,->"主键(身份证) ) ; 
auto_increment不是一个标准的SQL选项。 mssql (微软SQL ) ,也有类似的选项,那么postgre ,但甲骨文公司没有办法做到这一点,作为创建表的选择。 这是一定要做的,与序列和触发器。

让我们打破了这一点,所以我们可以看到正在发生的事情。 首先,我们宣布我们想创建一个目录,进入创建表。 其次,我们具体的名字,我们想请表,在这种情况下,名字是userinfo 。 然后,我们使用括号可以包含所有的栏目,我们要求在我们的表,并简单地列出所有的列名和类型,我们所需要的。 说明我们如何有一个大场名为名。 最后,请注意添加的主键作为最后一个参数。 这是用来决定如何表是优化内部的数据库。

现在,我们可以检查我们的餐桌创造成功执行以下命令:

  MySQL的> "显示表; 

注意您还可以查看该栏目在一张桌子用以下命令:

  MySQL中>描述userinfo ; 

当你执行这个命令,控制台,将显示所有的细节,每一个栏目,在userinfo表。

这一信息可用于两个确保该表是作为你的设想,并回顾一下栏目表包含在稍后的日期。

修改表

所以现在我们已经知道了如何创建一个表,让我们看看我们如何去修改。 修改一个表可以从根本改变的类型之一,该栏目中加入了一个全新的栏目(或删除现有栏) 。

让我们先看看如何变更名称,一个现有的专栏。 在我们userinfo表,我们有一个栏目名为firstname ,但是让我们现在改变这种阅读forename ,别名为一个人的名字。

作出这种改变,我们需要使用下列语法:

  MySQL的>改变表userinfo改变firstname forename文本; 
秘诀 它始终是高度推荐设计数据库之前创造,是因为有可能出现问题修改/变造数据库表或结构后,有数据插入在桌子上。

说明我们还必须提供的数据类型为柱以及其旧的和新的名字。

如果我们描述userinfo表与下列命令:

  MySQL中>描述userinfo ; 

… …我们可以看到,该栏firstname已更名为forename 。

我们也可以改变数据类型的栏目,在统计表。 让我们说,我们要改变年龄栏,从tinyint一个诠释。 我们会用以下命令:

  MySQL的>改变表userinfo修改年龄的诠释; 

后执行此命令,如果我们描述表,我们可以看到,该型发生了变化,以诠释。

最后,它是好的,要知道如何删除领域,从一个表(例如,如果他们不再需要) 。 我们现在说,我们不再需要电子邮件领域,在我们的userinfo表。 我们要做的工作就是"一滴"领域,从我们就座。 这里是语法去除电子邮件领域。

  MySQL的>改变表userinfo下降的电子邮件; 

一旦这个命令执行时,我们描述表与下列命令:

  MySQL中>描述userinfo ; 

下降(去除)表

去除表从一个数据库,是很简单,但是如果没有小心使用,它可以有灾难性的后果。 主要需要注意的一点是,当弃掉一个表中,你也失去所有的数据包含在桌上。 因此,它始终是一个明智的备份一个数据库,然后执行任何下降的命令。

我们现在来看看我们如何放下userinfo表,从我们myinfo数据库。 要做到这一点,我们必须执行下列命令在MySQL控制台客户端。

你不能删除表中,如果有实际关系到其他表,可打破完整的数据库。 如果关系不是"真实的, "对照表也被切除,无差错, 完整,是当时的妥协。 如果管理员是不小心的话,这个数据库可永久损坏。

  MySQL中>下拉表userinfo ; 

一旦这个命令执行时,我们可以再次检查该表已被移除,列出哪些表,目前在我国myinfo数据库执行以下命令:

  MySQL的> "显示表; 

表中不再存在,在数据库中。

这是一篇文章补充说,由乔治系
免责声明:我们的网站是不负责所载的资料,由本条规定。 这篇文章根本没有反映看法,意见,想法或信仰的文章目录中的工作人员。

翻译预告:文章的"基本的SQL语法:创建和修改表和数据库" ,被翻译使用的自动翻译服务。 我们真诚地道歉,对任何翻译错误发生。 谢谢你的谅解。

Online: 585 users browsing the articles directory