《MySQL数据库管理系统》由会员分享,可在线阅读,更多相关《MySQL数据库管理系统(10页珍藏版)》请在金锄头文库上搜索。
1、第七周 授课提纲主题:MySQL数据库查询操作(2)一、数据表中的记录查询:select select-option items from tablename where condition group by group_type having where_definition order by order_type limit limit_criteria特别注意:内存变量的使用:用开头二、多表查询:特别注意:“”字符的使用,例如:db_name.tbl_name.col_name三、MySQL 语言结构:1 字符串,特别注意:西文单引号 和西文双引号” 的使用、转义符的使用2 数字,特别注
2、意:小数点“ ”3数据库、表、索引、字段和别名,特别注意: (backtick,反引号)的使用4名字的大小写敏感性四、 MySQL 的小秘书: tee/notee一、数据表中的记录查询:没有任何子句的查询用where语句选择满足条件的特定的行 用 order by 子句将记录进行排序 用 limit 子句指定选出记录的最大条数 用 group by 子句对结果进行分组,每一组对应查询结果中的一条记录 用 having 子句过滤结果 在查询中使用变量二、多表查询:三、MySQL语言结构1. 字符串字符串是多个字符组成的一个字符序列,由单引号(“”) 或双引号 (“”) 字符包围。例如:a str
3、inganother string在一个字符串中,如果某个序列具有特殊的含义,则这个序列以反斜线符号 (“”)开头,称为转义字 符。 MySQL 识别下列转义字符:一个ASCII 39单引号(“”)字符一个ASCII 34双引号(“”)字符n一个ASCII 10换行符一个 ASCII 92反斜线(“”)字符%一个ASCII 37 (“”)字符。它用于在正文中搜索“” 的文字实例,否则这里“”将解释为一个通配符一个ASCII 95 (“ ”)字符。它用于在正文中搜索“” 的文字实例,否则这里“”将解释为一个通配符注意如果在某些正文环境内使用 “%” 或 “_”,将返回字符串 “%” 和 “_”
4、而不是 “%” 和字符串中包含引号的可以有下列几种写法:一个字符串用单引号“”来引用的,该字符串中的单引号“”字符可以用“”方式转义。 一个字符串用双引号“”来引用的,该字符串中的“”字符可以用“”方式转义。 你也可以继续使用在引号前加一个转义字符“”来转义的方式。一个字符串用双引号“”来引用的,该字符串中的单引号“”不需要特殊对待而且不必被重复或转义 同理,一个字符串用单引号“”来引用的,该字符串中的双引号“”不需要特殊对待而且不必被重复或转 义。下面显示的 SELECT 演示引号和转义是如何工作:(1)mysq SELECT hello, hello , hello , hello, he
5、llo;(说明:外面是单引号)| hello | hello | hello | hello | hello |(2)mysq SELECT hello, hello , hello , hel lo, hello;(说明:外面是双引号)| hello | hello | hello | hel lo | hello |2. 数字整数被表示为一个数字序列。浮点数使用 “.” 作为一个十进制的分隔符。这两种类型的数字可以前置 - 以表示一个负值。有效整数的例子: 1221 0 -32有效浮点数的例子:294.42 -32032.6809e+10 148.00 一个整数可以在浮点语境中使用,它被解
6、释为等值的浮点数。3数据库、表、索引、字段和别名数据库、表、索引、字段和别名都需遵守 MySQL 同样的规则。注意,从MySQL 3.23.6开始,规则发生改变了,此时引进了用“” (backtick,反勾号)引用标识符(数 据库、表和字段名)。标识符最大长度允许的字符数据库64一个目录名中允许的任何字符,除了“/”、 “” 或“.”。表64一个文件名中允许的任何字符,除了 “/” 或“.”。字段64所有的字符别名255所有的字符注意,如果标识符是一个系统保留词或包含特殊的字符,当使用它时,也必须以一个“”(backtick,反 引号) 来引用它,例如:mysql SELECT * FROM
7、select WHERE select.id 100;一个名字允许以在名字中合法的任何字符开始。特别地,一个名字可以用一个数字开始(这不同于许多其 它的数据库系统!)。但一个名字不能仅仅全部由数字组成。不能在名字中使用 “.” 字符,因为它是用于扩充格式的,你可以用它引用字段(见下表)。 在 MySQL 中,你可以使用下列表格中的任一种方式引用一个字段:字段引用含义col_name字段col name来自查询所用的任何一个表中对应字段tbl_name.col_name字段col name来自当前数据库中的表tbl namedb_name.tbl_name.col_name字段col_name来
8、自数据库db_name中的表tbl_name。这个 形式从MySQL 3.22或以后版本开始可用、column_name、该字段是一个关键词或包含特殊字符。在一条语句中的字段引用中,不需要明确指定一个 tbl_name 或 db_name.tbl_name 前缀,除非这个引用 存在二义性。例如,假设表t1和t2均包含一个字段c,当用一个使用了 t1和t2的SELECT检索c时, c 存在二义性,因为它在这个语句所使用的表中不是唯一的,因而必须通过写出 t1.c 或 t2.c 来指明你所需 的是哪个表。同样的,如果从数据库 db1 的表 t 和数据库 db2 的表 t 中检索,你必须用 db1.
9、t.col_name 和 db2.t.col_name 来指定引用哪个库表的字段。句法 .tbl_name 意味着表 tbl_name 在当前数据库中。这个句法是为了与 ODBC 兼容,因为一些 ODBC程序以一个字符作为表名的前缀。4名字的大小写敏感性在 MySQL 中,数据库和表分别对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库 和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的Unix 系统中是大小写敏感的。注意:尽管在 Windows 中数据库与表名是忽略大小写的,但你不应该在同一个查询中使用不同的大小 写来引用一个给定
10、的数据库和表。下面的查询将不能工作,因为它以 my_table 和 MY_TABLE 引用一个表:mysql SELECT * FROM my_table WHERE MY_TABLE.col=1;字段名与字段的别名在所有的情况下均是忽略大小写的。表的别名是区分大小写的。下面的查询将不能工作,因为它用 a 和 A 引用别名mysql SELECT col_name FROM tbl_name AS a-WHERE a.col_name = 1 OR A.col_name = 2;如果记忆数据库和表名的字母大小写有困难,建议采用一个一致的约定,例如总是以小写字母创建数据 库和表。四、MySQL的小秘书:tee将MySQL屏幕中的所有一切(包括:命令和结果;不管是否正确)都写入一个文本文件;用法举例: mysqltee d:outfile.txtnotee一终止tee功能;用法举例: mysqlnotee