《MySQL必知必会》--第1-5章

本文介绍了SQL数据库的基本概念,包括数据库、表、模式、列等,并详细解释了DBMS的作用及其与数据库的区别。此外,还介绍了MySQL的特点及使用方法,包括如何选择数据库、执行基本的SQL查询操作、使用通配符以及如何排序检索出的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1章--了解sql

数据库database保存有组织的数据的容器(通常是一个文件或一组文件)。

误用导致混淆 人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。

table 某种特定类型数据的结构化清单。
模式 schema 关于数据库和表的布局及特性的信息。

表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)。

column表中的一个字段。所有表都是由一个或多个列组成的。

是记录还是行? 你可能听到用户在提到行(row)时称其为数据库记录(record)。在很大程度上,这两个术语是可以互相替代的,但从技术上说,行才是正确的术语。 

应该总是定义主键 虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。

主键的最好习惯 MySQL 强制实施的规则外,应该坚持的
几个普遍认可的最好习惯为:
  • 不更新主键列中的值;
  • 不重用主键列的值;
  • 不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)

DBMS专用的SQL SQL不是一种专利语言,而且存在一个标准委员会,他们试图定义可供所有DBMS使用的SQL语法,但事实上任意两个DBMS实现的SQL都不完全相同。本书讲授的SQL是专门针对MySQL的,虽然书中所讲授的多数语法也适用于其他DBMS,但不要认为这些SQL语法是完全可移植的。 

第2章--MySQL简介

正如所述,数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS数据库管理系统)完成的。 MySQL是一种DBMS,即它是一种数据库软件。

DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户机—服务器的DBMS

MySQL、 Oracle以及Microsoft SQL Server等数据库是基于客户机—服务器的数据库。客户机—服务器应用分为两个不同的部分。 服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。

与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。 客户机是与用户打交道的软件。例如,如果你请求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给服务器软件。服务器软件处理这个请求,根据需要过滤、丢弃和排序数据;然后把结果送回到你的客户机软件。 

有多少计算机? 客户机和服务器软件可能安装在两台计算机或一台计算机上。不管它们在不在相同的计算机上,为进行所有数据库交互,客户机软件都要与服务器软件进行通信。

所有这些活动对用户都是透明的。数据存储在别的地方,或者数据库服务器为你完成这个处理这一事实是隐藏的。你不需要直接访问数据文件。事实上,多数网络的建立使用户不具有对数据的访问权,甚至不具有对存储数据的驱动器的访问权。

这样的意义何在?因为为了使用 MySQL ,你需要访问运行 MySQL 服务器软件的计算机和发布命令到 MySQL 的客户机软件的计算机。
  • 服务器软件为MySQL DBMS。你可以在本地安装的副本上运行,也可以连接到运行在你具有访问权的远程服务器上的一个副本。
  • 客户机可以是MySQL提供的工具、脚本语言(如Perl)、 Web应用开发语言(如ASP、 ColdFusion、 JSPPHP)、程序设计语言(如C、 C++、 Java)等。

第3章--使用MySQL

选择数据库

user books;

记住,必须先使用USE打开数据库,才能读取其中的数据 。

SHOW DATABASES;返回可用数据库的一个列表。

为了获得一个数据库内的表的列表,使用 SHOW TABLES;  

SHOW也可以用来显示表列:

show columns from customers;

DESCRIBE语句 MySQL支持用DESCRIBE作为SHOW COLUMNS FROM的一种快捷方式。换句话说, DESCRIBE customers; SHOW COLUMNS FROM customers;的一种快捷方式。 

所支持的其他SHOW语句还有:

  • SHOW STATUS,用于显示广泛的服务器状态信息;
  • SHOW CREATE DATABASESHOW CREATE TABLE,分别用来显示创建特定数据库或表的MySQL语句;
  • SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
  • SHOW ERRORSSHOW WARNINGS, 用来显示服务器错误或警告消息。
进一步了解SHOW 请在mysql命令行实用程序中,执行命令HELP SHOW;显示允许的SHOW语句。 

第4章--检索数据

SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。

为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

SQL语句和大小写 请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。

数据表示 从上述输出可以看到,SQL语句一般返回原始的、无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。因此,表示(对齐和显示上面的价格值,用货币符号和逗号表示其金额)一般在显示该数据的应用程序中规定。一般很少使用实际检索出的原始数据(没有应用程序提供的格式)。

使用通配符 一般,除非你确实需要表中的每个列,否则最好别使用*通配符。虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

LIMIT 5指示MySQL返回不多于5行。

LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。
所以,带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。带两个值的LIMIT可以指定从行号为第一个值的位置开始。

行0 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。

MySQL 5支持LIMIT的另一种替代语法。LIMIT4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

第5章--排序检索数据

子句(clause) SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子有SELECT语句的FROM子句,我们在前一章看到过这个子句。

为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。请看下面的例子:

通过非选择列进行排序 通常,ORDER BY子句中使用的列将是为显示所选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。

在多个列上降序排序 如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。

使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。

下面的例子演示如何找出最昂贵物品的值:
SELECT prod_price 
FORM products 
ORDER BY prod_price 

DESC LIMIT 1;

ORDER BY子句的位置 在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值