资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
目录目录1.1. 连接与断开服务器1.2. 输入查询1.3. 创建并使用数据库1.3.1. 创建并选择数据库1.3.2. 创建表1.3.3. 将数据装入表中1.3.4. 从表检索信息1.4. 获得数据库和表的信息1.5. 在批处理模式下使用 mysql1.6. 常用查询的例子1.6.1. 列的最大值1.6.2. 拥有某个列的最大值的行1.6.3. 列的最大值:按组1.6.4. 拥有某个字段的组间最大值的行1.6.5. 使用用户变量1.6.6. 使用外键1.6.7. 根据两个键搜索1.6.8. 根据天计算访问量1.6.9. 使用 AUTO_INCREMENT1.7. 孪生项目的查询1.7.1. 查找所有未分发的孪生项1.7.2. 显示孪生对状态的表1.8. 与 Apache 一起使用 MySQL本文通过演示如何使用 mysql 客户程序创造和使用一个简单的数据库,提供一个 MySQL 的入门教程。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序, 允许你连接一个 MySQL 服务器,运行查询并察看结果。mysql 可以用于批模式:你预先 把查询放在一个文件中,然后告诉 mysql 执行文件的内容。本文将介绍使用 mysql 的两 个方法。要想查看由 mysql 提供的选择项目表,可以用-help 选项来调用:shell mysql -help本文假定 mysql 已经被安装在你的机器上,并且有一个 MySQL 服务器可以连接。否则, 请联络 MySQL 管理员。本文描述建立和使用一个数据库的全过程。如果你仅仅对访问一 个已经存在的数据库感兴趣,可以跳过描述怎样创建数据库及它所包含的表的章节。由于本文是一个教程,省略了许多细节。关于这里所涉及的主题的详细信息,请查阅本手 册的相关章节。1.1. 连接与断开服务器连接与断开服务器为了连接服务器,当调用 mysqlmysql 时,通常需要提供一个 MySQL 用户名并且很可 能需要一个 密码。如果服务器运行在登录服务器之外的其它机器上,还需要指 定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机、用户 名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接: shell mysql -h host -u user -p Enter password: *host 和 user 分别代表 MySQL 服务器运行的主机名和 MySQL 账户用户名。设置时替换为 正确的值。* 代表你的密码;当 mysql 显示 Enter password:提示时输入它。如果有效,你应该看见 mysql提示符后的一些介绍信息:shell mysql -h host -u user -p Enter password: * Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 25338 to server version: 5.1.2- alpha-standardType help; or h for help. Type c to clear the buffer.mysqlmysql 提示符告诉你 mysql 准备为你输入命令。一些 MySQLMySQL 安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。如果你 的机器是这种情况,你应该能不带任何选项地调用 mysql 与该服务器连接:shell mysql成功地连接后,可以在 mysql提示下输入 QUIT (或q)随时退出:mysql QUIT Bye在 Unix 中,也可以按 control-D 键断开服务器。在下列章节的大多数例子都假设你连接到了服务器。由 mysql提示指明。1.2. 输入查询输入查询确保你连接上了服务器,如在先前的章节讨论的。连接上服务器并布代表选择了任何数据 库,但这样就可以了。知道关于如何查询的基本知识,比马上跳至创建表、给他们装载数 据并且从他们检索数据更重要。本节描述输入命令的基本原则,使用几个查询,你能尝试 了解 mysql 是如何工作的。这是一个简单的命令,要求服务器告诉它的版本号和当前日期。在 mysql提示输入如下命 令并按回车键:mysql SELECT VERSION(), CURRENT_DATE; +-+-+ | VERSION() | CURRENT_DATE | +-+-+ | 5.1.2-alpha-log | 2005-10-11 | +-+-+ 1 row in set (0.01 sec) mysql这询问说明 mysql 的几个方面: 一个命令通常由 SQL 语句组成,随后跟着一个分号。(有一些例外不需要分号。 早先提到的 QUIT 是一个例子。后面我们将看到其它的例子。) 当发出一个命令时,mysql 将它发送给服务器并显示执行结果,然后显示另一个 mysql显示它准备好接受其它命令。 mysql 用表格(行和列)方式显示查询输出。第一行包含列的标签,随后的行是查询 结果。通常,列标签是你取自数据库表的列的名字。如果你正在检索一个表达式而非表列 的值(如刚才的例子),mysql 用表达式本身标记列。 mysql 显示返回了多少行,以及查询花了多长时间,它给你提供服务器性能的一个 大致概念。因为他们表示时钟时间(不是 CPU 或机器时间),并且因为他们受到诸如服务 器负载和网络延时的影响,因此这些值是不精确的。(为了简洁,在本文其它例子中不再 显示“集合中的行”。)能够以大小写输入关键词。下列查询是等价的:mysql SELECT VERSION(), CURRENT_DATE; mysql select version(), current_date; mysql SeLeCt vErSiOn(), current_DATE;这是另外一个查询,它说明你能将 mysql 用作一个简单的计算器:mysql SELECT SIN(PI()/4), (4+1)*5; +-+-+ | SIN(PI()/4) | (4+1)*5 | +-+-+ | 0.70710678118655 | 25 | +-+-+ 1 row in set (0.02 sec)至此显示的命令是相当短的单行语句。你可以在一行上输入多条语句,只需要以一个分号 间隔开各语句:mysql SELECT VERSION(); SELECT NOW(); +-+ | VERSION() | +-+ | 5.1.2-alpha-log | +-+ 1 row in set (0.00 sec)+-+ | NOW() | +-+ | 2005-10-11 15:15:00 | +-+ 1 row in set (0.00 sec)不必全在一个行内给出一个命令,较长命令可以输入到多个行中。mysql 通过寻找终止分 号而不是输入行的结束来决定语句在哪儿结束。(换句话说,mysql 接受自由格式的输入: 它收集输入行但直到看见分号才执行。)这里是一个简单的多行语句的例子:mysql SELECT- USER()- ,- CURRENT_DATE; +-+-+ | USER() | CURRENT_DATE | +-+-+ | jonlocalhost | 2005-10-11 | +-+-+在这个例子中,在输入多行查询的第一行后,要注意提示符如何从 mysql变为-,这正是 mysql 如何指出它没见到完整的语句并且正在等待剩余的部分。提示符是你的朋友,因为 它提供有价值的反馈,如果使用该反馈,将总是知道 mysql 正在等待什么。如果你决定不想执行正在输入过程中的一个命令,输入c 取消它:mysql SELECT- USER()- c mysql这里也要注意提示符,在你输入c 以后,它切换回到 mysql,提供反馈以表明 mysql 准 备接受一个新命令。下表显示出可以看见的各个提示符并简述它们所表示的 mysql 的状态:提示符提示符含义含义mysql准备好接受新命令。-等待多行命令的下一行。等待下一行,等待以单引号(“”)开始的字符串的结束。“等待下一行,等待以双引号(“”)开始的字符串的结束。等待下一行,等待以反斜点()开始的识别符的结束。/*等待下一行,等待以/*开始的注释的结束。当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。 在这种情况中,mysql 等待进一步输入:mysql SELECT USER()-如果出现这种情况(你认为输完了语句,但是只有一个-提示符响应),很可能 mysql 正在 等待分号。如果你没有注意到提示符的提示,在意识到你需要做什么之前,你可能会呆坐 一会儿。输入一个分号完成语句,mysql 将执行:mysql SELECT USER()- ; +-+ | USER() | +-+ | jonlocalhost | +-+在字符串收集期间将出现 和 “ 提示符(提示 MySQL 正等待字符串的结束)。在 MySQL 中,可以写由或“字符括起来的字符串 (例如,hello或“goodbye“),并且 mysql 允许输入跨越多行的字符串。当看到一个 或 “ 提示符时,这意味着已经输入了包含 以或“括号字符开始的字符串的一行,但是还没有输入终止字符串的匹配引号。这显示你 粗心地省掉了一个引号字符。例如:mysql SELECT * FROM my_table WHERE name = Smith AND age 如果你输入 SELECT 语句,然后按 Enter(回车)(回车)键并等待结果,什么都没有出现。不要 惊讶,“为什么该查询这么长呢?”,注意“提示符提供的线索。它告诉你 mysql 期望见到 一个未终止字符串的余下部分。(你看见语句中的错误吗?字符串“Smith 丢掉了第二个引 号。)走到这一步,你该做什么?最简单的是取消命令。然而,在这种情况下,你不能只是输入 c,因为 mysql 作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字 符(这样 mysql 知道你完成了字符串),然后输入c:mysql SELECT * FROM my_table WHERE name = Smith AND age c mysql提示符回到 mysql,显示 mysql 准备好接受一个新命令了。 提示符类似于 和“ 提示符,但表示你已经开始但没有结束以 开始的识别符。知道和“提示符的含义很
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号