《MySQL 必知必会》C1-C4

第一章 数据库和SQL

1 数据库基础

(1) 什么是数据库

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

数据库是一个以某种有组织的方式存储的数据集合,可以将其想象成一个文件柜,此文件柜是一个存放数据的物理位置,不管数据是什么及如何组织的

数据库软件 DBMS即数据库管理系统,数据库是通过DBMS创建和操纵的容器,数据库是什么东西并不重要,我们使用的是DBMS,通过它访问数据库

(2) 表

:某种特定类型数据的结构化清单,表是一种结构化的文件,可用来存储某种特定类型的数据

表可以保存顾客清单,产品目录等,存储在表中的数据是一种类型的数据或一个清单,绝不应该将顾客的清单和订单货物的清单存储在同一个数据库表中。数据库中每个表都有一个名字,用来标识自己,此名字是唯一的,这表示数据库中没有其它表具有相同的名字

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

模式:关于数据库和表的布局及特性的信息

(3) 列和数据类型

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

可以将数据库想象成一个网格,网格中每一列存储着一条特性的信息,如在顾客表中,一个列存储着顾客编号,另一个列存储着顾客名字

分解数据:正确地将数据分解成多个列极为重要,如城市,州,邮政编码等应该是独立的列,通过把它们分解,才有可能利用特定的列对数据进行排序和过滤,如果城市和州组合在一个列中,则按州进行排序或过滤会很困难

数据类型:所容许的数据的类型,每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。数据类型限制可存储在列中的数据种类(防止数值字段录入了字符值)

数据库中每列都有相同的数据类型,如果列中存储的为数字,那么相应的数据类型就该为数值类型,如果存储的是文本,日期等,则该用恰当的数据类型规定出来

(4) 行,主键

:表中的一个记录

将表想象成网格,网格中垂直的列为表列,水平行则为表行,如顾客表可以每行存储一个顾客,表中的行数为记录的总数

主键:一列(或一组列),其值能够唯一区分表中每个行

表中每一行都应有可以唯一标识自己的一列(或一组列)。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID

唯一标识表中每行的这个列(这组列)称为主键,主键用来表示一个特定的行,没有主键,更新或删除表中特定的行很困难,因为没有安全的方法保证只涉及相关的行

大多数数据库设计人员都应该保证他们创建的每个表具有一个主键,以便于以后的数据管理和操作

列作为主键的条件
1,任意两行都不具有相同的主键值
2,每个行都必须具有一个主键值(主键列不允许NULL值)

主键的良好习惯
1,不更新主键列中的值
2,不重用主键列的值
3,不在主键列中使用可能会更改的值

2 SQL

(1) 什么是SQL

SQL是结构化查询语言的缩写,SQL是一种专门与数据库通信的语言

设计SQL的目的是很好地完成一项任务,即提供一种从数据库中读写数据地简单有效地方法

SQL的优点:
1,SQL不是某个特定数据库供应商专用语言,几乎所有重要的DBMS都支持SQL,学习SQL几乎可以与所有的数据库打交道
2,SQL简单易学,它的语句全都是由描述性很强的英语单词组成
3,SQL是强有力的语言,灵活使用它,可以进行非常复杂和高级的数据库操作

SQL不是一种专利语言,但任意两个DBMS实现的SQL都不完全相同

第二章 MySQL简介

1 什么是MySQL

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

MySQL被广泛使用的原因:
1,MySQL是开源软件,一般可以免费使用
2,MySQL执行很快,且不断更新增加新功能
3,MySQL容易安装和使用

(1) 客户机-服务器软件

DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类为基于客户机-服务器的DBMS,前者(如Microsoft Access和FileMaker)常用于桌面用途,通常不用于高端或更关键的应用

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

与数据文件打交道的只有服务器软件,关于数据,数据增删查改的所有请求都是由服务器软件完成,这些请求来自运行客户软件的计算机,客户机是和用户打交道的软件

2 MySQL工具

MySQL是一个客户机-服务器DBMS,为了使用MySQL还需要有一个专门的客户机,给MySQL提供要执行的命令的一个应用

(1) mysql命令行实用程序

每个MySQL都有一个名为mysql的简单命令行程序:
在这里插入图片描述
mysql命令行几个要点:
1,命令在mysql>之后
2,命令用 ; 结束
3,输入help获得帮助
4,输入quit或exit退出

mysql命令行实用程序对于快速测试和执行脚本非常有价值

(2) Navicat for MySQL

Navicat for MySQL是一套管理和开发MySQL的理想解决方案,支持单一程序,这个功能齐备的前端软件为数据库管理,开发和维护提供了强大的图形界面
在这里插入图片描述

第三章 使用MySQL

1 简单使用MySQL

(1) 连接

MySQL与所有的客户机-服务器DBMS一样,要求在执行命令前登陆到DBMS,MySQL在内部保存自己的用户列表并赋予不同的权限

连接MySQL需要以下信息:
1,主机名,如是本地MySQL服务器,则为 localhost
2,端口,默认端口3306
3,一个合法的用户名
4,用户口令

(2) 选择数据库

连接到MySQL后,没有任何数据库打开供你使用,需要用 use 选择一个数据库
在这里插入图片描述
use语句并不返回任何结果,这里显示的 Database changed提示数据库选择成功,必须先使用use打开数据库,才能读取其中的数据

(3) 了解数据库和表

1,show databases; 返回数据库的一个列表
在这里插入图片描述
2,show tables; 返回当前选择数据库内的可用的列表
在这里插入图片描述

3,show columns from xxxx (xxxx代表选定数据库中的一个表名); / describe xxxx,它对每个字段返回一行,行中包括字段名,数据类型,是否允许null,键信息,默认值以及其它信息
在这里插入图片描述

4,其它常用show语句:

show status; //显示广泛的服务器状态信息
show create database; //显示创建特定数据库
show create table; //显示创建特定表
show grants; //显示用户的安全权限
show errors; //显示服务器错误
show warnings; //显示服务器警告信息

第四章 检索数据

1 SELECT 语句

SQL语句都是由简单的英语单词构成,这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的,最常使用的SQL语句就是 select 语句,它的用途是从一个或多个表中检索信息

使用select检索数据,至少必须给出两条信息:
1,想选择什么2,从什么地方选择

(1) 检索单个列

在这里插入图片描述
上述语句利用select语句从products表中检索了一个名为prod_name的列,所需的列名在select之后给出,from关键字指出从其中检索数据的表名

这样的一条select语句返回表中单列的所有行,数据没有过滤也没有排序

注意:
1,多条SQL语句必须以 ,分隔,使用mysql命令行,必须加上 ; 来结束
2,SQL语句不区分大小写,许多专业开发者对所有的SQL关键字使用大写,对所有的列和表名使用小写,这样更容易阅读和调试
3,在处理SQL语句时,空格会被忽略,一条语句可以写在多行

(2) 检索多个列

想从一个表中检索多个列,使用相同的select语句,在select语句后给出多个列名,列名间以 , 分隔,select语句以 ; 结束
在这里插入图片描述

(3) 检索所有列

select语句还可以检索所有的列而不必逐个列出它们,通过 * 通配符完成
在这里插入图片描述
select语句使用通配符,则返回表中的所有列,列的顺序一般是列在表定义中出现的顺序,但有时表的模式的变化(添加,删除列)可能导致顺序变化

(4) 检索不同的行

select每次返回所有匹配的行,如果不想让每个值每次都出现,可以使用 distinct(译:截然不同的),使用此关键字可以指示MySQL只返回不同的值
在这里插入图片描述
在这里插入图片描述
select distinct vend_id告诉MySQL只返回不同(唯一的vend_id行),因此只返回4行,distinct应该用于所有列而不仅是前置它的列

(5) 限制结果

select语句返回所有匹配的行,为了返回第一行或前几行,可以使用 limit 子句来限制检索结果
在这里插入图片描述
为了得到下一个5行,可指定要检索的开始行和行数,limit子句后第一个数为开始位置,第二个数为要检索的行数
在这里插入图片描述
使用limit子句的注意点:
1,带一个值得limit总是从第一行开始,检索出来得第一行为行0而不是行1
2,检索时超出表中指定行,行数不够时MySQL只返回它能返回得那么多行

(6) 使用完全限制的表名

以上的所有SQL语句只通过列名引用,也可以使用完全的名字来引用列
在这里插入图片描述
有一些情况下需要完全限定表名,表名和列名都可以是完全限定的
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《MySQL必知必会》是一本经典的MySQL数据库入门教材,该书由Ben Forta撰写,适合初学者和有一定数据库基础的读者阅读。这本书着重介绍了MySQL数据库的基本原理、数据类型、查询语句、数据操作、事务控制以及安全性等方面的知识。 本书以简单易懂的方式讲解了MySQL数据库的基本概念和操作技巧,适合初学者进行自学。无论是想学习数据库编程的开发人员,还是想了解数据库管理的系统管理员,都可以通过阅读本书掌握必要的MySQL数据库知识。 《MySQL必知必会》的内容丰富全面,并且配有大量的示例和练习题,读者可以通过实践加深对知识的理解和掌握。此外,该书还介绍了一些高级主题,如存储过程、触发器和视图等,帮助读者进一步提升数据库应用能力。 总的来说,《MySQL必知必会》是一本对于学习MySQL数据库的人来说非常有价值的参考书。无论是初学者还是有一定数据库基础的人,都可以通过阅读本书快速学习和掌握MySQL数据库的相关知识。读者可以根据自己的需求和兴趣,选择适合自己的章节进行阅读和学习。 ### 回答2: MySQL必知必会是一本非常有价值的参考书籍,对于想要学习和掌握MySQL数据库的人来说非常有用。这本书详细介绍了MySQL数据库的基本概念、基础语法和高级功能,以及如何优化和管理数据库。 首先,MySQL必知必会通过简洁清晰的语言和丰富的实例,介绍了数据库的概念和原理,帮助读者建立起正确的数据库思维模式。它从关系型数据库的基本概念开始讲解,包括表、行、列、主键等,然后逐步介绍了SQL语言的基本语法和常用命令,如SELECT、INSERT、UPDATE、DELETE等。 其次,MySQL必知必会还深入讲解了MySQL数据库的高级功能,如多表查询、子查询、连接和视图等。这些功能对于处理复杂的数据查询和分析非常重要,通过学习这些知识,读者可以更加灵活地操作数据库,提高工作效率。 此外,MySQL必知必会还涵盖了数据库优化和管理的内容。它介绍了如何正确设计和规划数据库结构,以及如何使用索引和分区来提高查询效率。此外,它还讲解了如何备份和恢复数据库,以及如何监控和优化数据库性能。 总之,MySQL必知必会是一本详细介绍MySQL数据库基础知识和高级功能的优秀书籍。无论是初学者还是有一定经验的开发者,都可以从中学习到很多宝贵的知识和技巧。它不仅可以帮助读者快速入门MySQL,还可以帮助他们提高数据库操作的能力和效率。无论是学习、工作还是项目开发,都值得推荐阅读。 ### 回答3: MySQL必知必会是一本非常受欢迎的MySQL入门书籍,适合初学者和有一定基础的用户阅读。这本书的作者是Ben Forta,他详细介绍了MySQL数据库的基本概念、语法以及如何进行数据库设计和管理。 MySQL必知必会的特点之一是其简洁明了的语言和结构。它从最基本的概念开始讲解,逐步引导读者了解如何创建和管理数据库、表和索引。书中还包含大量的示例和练习题,帮助读者加深理解,并提供了一些常见错误和解决方法。 此外,这本书还涵盖了MySQL数据库的高级主题,如安全性、性能调优和复制。通过深入研究这些主题,读者可以进一步提升他们在MySQL数据库管理方面的技能。 MySQL必知必会还强调了SQL语言的重要性,它是用于与数据库进行交互的主要语言。读者将学习如何使用SQL语句查询、插入、更新和删除数据。此外,书中还介绍了一些高级的SQL技巧,如JOIN和子查询。 总的来说,MySQL必知必会是一本非常实用的MySQL入门书籍,不仅适合初学者,也适合那些希望巩固和提升MySQL数据库管理技能的用户。无论是在学术领域还是实际工作中,掌握MySQL数据库是一个非常有用的技能,而这本书可以帮助读者快速入门和精通这一技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值