用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 数据库开发教程 > MySQL教程 > Mysql使用实例 > 文章正文
MySQL数据库技术(04)
iTbulo.COM 2005-4-10 佚名()

    1.4.7 增加新记录
    至此,我们的数据库及其表都已经创建了,在下一节“检索信息”中,我们将看到怎样从数据库中取出数据。现在我们先将一些数据放入表中。在数据库中加入数据有几种方法。可通过发布I N S E RT 语句手工将记录插入某个表中。还可以通过从某个文件读取它们来增加记录,在这个文件中,记录既可以是利用L O A DD ATA 语句或mysqlimport 实用程序装入的原始数据值,也可以是预先写成可馈入mysql 的I N S E RT 语句的形式。本节介绍将记录插入表的每种方法。您所应做的是演习各种方法以明了它们是如何起作用的。然后到本节结束处运行那儿给出的命令来清除表并重装它们。这样做,能够保证表中含有作者撰写下一节时所处理的相同记录,您也能得到相同的结果。让我们开始利用I N S E RT 语句来增加记录,这是一个SQL 语句,需要为它指定希望插入数据行的表或将值按行放入的表。I N S E RT 语句具有几种形式:
    ■ 可指定所有列的值

    例如:

    “I N TO”一词自MySQL 3.22.5 以来是可选的。(这一点对其他形式的I N S E RT 语句也成立。)VALUES 表必须包含表中每列的值,并且按表中列的存放次序给出。(一般,这就是创建表时列的定义次序。如果不能肯定的话,可使用DESCRIBE tbl_name 来查看这个次序。)在MySQL 中,可用单引号或双引号将串和日期值括起来。上面例子中的N U L L值是用于student 和event 表中的A U TO_INCREMENT 列的。(插入“错误”的值将导致下一个student_id 或event_id 号的自动生成。)自3.22.5 以来的MySQL 版本允许通过指定多个值的列表,利用单个的I N S E RT语句将几行插入一个表中,如下所示:

    例如:

    这比多个I N S E RT 语句的键入工作要少,而且服务器执行的效率也更高。
    ■ 可以给出要赋值的那个列,然后再列出值。这对于希望建立只有几个列需要初始设置的记录是很有用的。

    例如:

   自MySQL 3.22.5 以来,这种形式的I N S E RT 也允许多个值表:

    在列的列表中未给出名称的列都将赋予缺省值。
    ■ 自MySQL 3.22 .10 以来,可以col_name = value 的形式给出列和值。

    例如:

    在SET 子句中未命名的行都赋予一个缺省值。使用这种形式的I N S E RT 语句不能插入多行。将记录装到表中的另一种方法是直接从文件读取数据值。可以用LOAD DATA 语句或用mysqlimport 实用程序来装入记录。LOAD DATA 语句起批量装载程序的作用,它从一个文件中读取数据。可在mysql 内使用它,如下所示:

    该语句读取位于客户机上当前目录中数据文件m e m b e r.txt 的内容,并将其发送到服务器装入member 表。如果您的MySQL 版本低于3 . 2 2 . 1 5,则LOAD DATA LOCAL 不起作用,因为那时从客户机读取数据的能力是在LOAD DATA 上的。(没有LOCAL 关键字,被读取的文件必须位于服务器主机上,并且需要大多数MySQL 用户都不具备的服务器访问权限。)缺省时,LOAD DATA 语句假定列值由tab 键分隔,而行则以换行符结束。还假定各个值是按列在表中的存放次序给出的。也有可能需要读取其他格式的文件,或者指定不同的列次
序。更详细的内容请参阅附录D的LOAD DATA 的条款。mysqlimport 实用程序起LOAD DATA 的命令行接口的作用。从外壳程序调用mysqlimport ,它生成一个LOAD DATA 语句:

    mysqlimport 生成一个LOAD DATA 语句,此语句使m e m b e r.txt 文件被装入member 表。如果您的MySQL 版本低于3 . 2 2 . 1 5,这个实用程序不起作用,因为--local 选项需要L O A DD ATA LOCAL。正如使用mysql 一样,如果您需要指定连接参数,可在命令行上数据库名前指定它们。mysqlimport 从数据文件名中导出表名(它将文件名第一个圆点前的所有字符作为表名)。例如,m e m b e r.txt 将被装入member 表,而president.txt 将被装入president 表。如果您有多个需要装入单个表的文件,应仔细地选择文件名,否则mysqlimport 将不能使用正确的表名。对于如像member1.txt 与member2.txt 这样的文件名, mysqlimport 将会认为相应的表名为
member1 和m e m b e r 2。不过,可以使用如m e m b e r.1.txt 和m e m b e r.2.txt 或m e m b e r.txt1 和m e m b e r.txt2 这样的文件名。在试用过这些记录追加的方法后,应该清除各个表并重新装载它们,以便它们的内容与下一节假定的内容相同。从外壳程序执行下列命令:

    每个文件都含有一个删除可能曾经插入到表中的记录的DELETE 语句,后跟一组INSERT 语句以初始化表的内容。如果不希望分别键入这些命令,可试一下下列语句:

    1.4.8 检索信息
    现在各个表已经创建并装有数据了,因此让我们来看看可以对这些数据做点什么。SELECT 语句允许以一般的或特殊的方式检索和显示表中的信息。它可以显示表的整个内容:

    或者只显示单个行中单个列的内容:

    SELECT 语句有几个子句(部件),可以根据需要用来检索感兴趣的信息。每个子句都可简单、可复杂,从而SELECT 作为一个总的语句也繁简皆宜。但是,可以放心,本书中不会有花一个钟头来编写的长达数页的查询。(我在书中看到有很长的查询时,一般会立即跳过它们,因此我猜您也会这样。)SELECT 语句的一般形式为:SELECT 要选择的东西FROM 一个或多个表WHERE 数据必须满足的条件记住,SQL 为一个自由格式的语言,因此在您编写SELECT 查询时,语句的断行不必严格依照本书。
    为了编写SELECT 语句,只需指定需要检索什么,然后再选择某些子句即可。刚才给出的子句“ F R O M”、“W H E R E”是最常用的,还有一些其他的子句,如GROUP BY、O R D E RBY 和LIMIT 等。FROM 子句一般都要给出,但是如果不从表中选择数据,也可不给出。例如,下列查询只显示某些可以直接计算而不必引用任何表的表达式的值,因此不需要用FROM 子句:

    在确实使用一个FROM 子句指定了要从其中检索数据的表时, SELECT 语句的最“普通”的格式是检索所有内容。用“ *”来表示“所有列”。下面的查询将从student 表中检索所有行并显示:

    各列按它们MySQL 在表中存放的次序出现。该次序与发布DESCRIBE student 语句时显示的列次序相同。(例子末尾的“. . .”表示此查询返回的输出行比这里显示的还要多。)可明确地命名希望得到的一列或多列。如果只选择学生名,发布下列语句:

   如果名字不止一列,可用逗号分隔它们。下列的语句与SELECT * FROM student 等价,只是明确地指出了每一列:

    可按任意次序给出列:

   如果有必要,同一列甚至也可以给出多次,虽然这样做一般是没有意义的。列名在MySQL 中不区分大小写的。下面的查询是等同的:

   数据库和表名有可能区分大小写的;这有取决服务器主机上使用的文件系统。在U N I X上运行的服务器对数据库名和表名是区分大小写的,因为UNIX 的文件名是区分大小写的。Windows 的文件名不区分大小写,因此运行在Windows 上的服务器对数据库名和表名不区分
大小写。MySQL 允许您一次从多个表中选择列。我们将这个内容留到“从多个表中检索信息”小节去介绍。
   1. 指定检索条件
   为了限制SELECT 语句检索出来的记录集,可使用WHERE 子句,它给出选择行的条件。可通过查找满足各种条件的列值来选择行。
   可查找数字值:

    也可以查找串值。(注意,一般串的比较是不区分大小写的。)

    可以查找日期值:

    可搜索组合值:

    WHERE 子句中的表达式可使用表1-1 中的算术运算符、表1-2 的比较运算符和表1-3 的逻辑运算符。还可以使用圆括号将一个表达式分成几个部分。可使用常量、表列和函数来完成运算。在本教程的查询中,我们有时使用几个MySQL 函数,但是MySQL 的函数远不止这里
给出的这些。请参阅附录C,那里给出了所有MySQL 函数的清单。


   在用表达式表示一个需要逻辑运算的查询时,要注意别混淆逻辑与运算符与我们平常使用的“与”的含义。假如希望查找“出生在Vi rginia 的总统与出生在Maryland 的总统”。应该注意怎样表示“与”的关系,能写成如下的查询吗?

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

文章搜索
相关资讯
相关文章 相关下载
MySQL数据库技术(01)
MySQL数据库技术(02)
MySQL数据库技术(03)
MySQL数据库技术(05)
MySQL数据库技术(06)
焦点信息