这个补习显示基本语法和指令,并根据SQL语言。
首先,让我们来看看什么数据库已经存在,在MySQL服务器。 我们可以浏览此信息,利用显示指挥。 输入以下(除了MySQL的>部分)纳入MySQL的控制台客户端,然后返回:
MySQL的> "显示数据库;
有两个数据库已经创造了在MySQL服务器。 MySQL数据库包含了管理信息为MySQL服务器,不应该予以修改。 其他数据库,测试,而这正是它听起来像是:一场考验MySQL服务器。 测试数据库,不包含任何东西,它可以被安全地去除,如果需要。
因此,我们如何把我们自己的数据库,在MySQL服务器? 要做到这一点,我们使用了创建指挥部。 让我们说我们要建立一个数据库,名为mydata ,我们会使用以下的语法。
| 注 | 下表列出的长度和性质的限制,是强加的名字数据库,表,专栏,专版和别名。 |
| 标识符 | 最大长度 | 有效字符 |
|---|---|---|
| 数据库 | 64 | 所有有效的目录名字符除了" 。 " 和" / " 。 |
| 表 | 64 | 所有有效的目录名字符除了" 。 " 和" / " 。 |
| 专栏 | 64 | 一切都是正确的。 |
| 别名 | 15 | 一切都是正确的。 |
MySQL的> "创建数据库mydata ;
|
|
通知指出,分号,是补充后,每个指挥在SQL语言。 当我们的记者返回后,进入这个命令,控制台告诉我们,有人质疑其好。
现在我们已建立了数据库,我们能确保它是在服务器上,由再以查看指挥部,具体情况如下:
MySQL的> "显示数据库;
当我们的记者回到这个命令,我们可以看到,我们的资料库中已被添加到列表(注:名单是按字母顺序排列,而不是为了在该数据库中创建) 。
现在,我们会删除该数据库从服务器。 注意,当我们这样做的话,所有的数据(如果有的话)都将丢失。 删除一个数据库,我们"变坏" ,它从服务器用下拉指挥。 所以,以减少我们的新mydata数据库中,我们会用以下命令:
MySQL中>辍学数据库mydata ;
当我们执行这个命令所迫切回报,质疑将被报告为好。
现在,如果我们再次列出数据库使用查看命令:
MySQL的> "显示数据库;
… …我们可以看到,我们的mydata数据库已不再是有形于该名单。
之前,我们讨论如何创造表格数据库,现在是一个很好的时间,更何况不同的栏目类型,我们可以有在统计表。
每一列在表必须配型,它代表类型的信息这一领域十二月二十三日至二十六日举行。 这里是一个完整的清单,可用类型,您可以使用:
| 类型 | 描述 |
|---|---|
| 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的> "显示表;
表中不再存在,在数据库中。
Online: 585 users browsing the articles directory
|
|