美文网首页
【SQL必知必会】学习笔记day1

【SQL必知必会】学习笔记day1

作者: 阿拉辉 | 来源:发表于2020-05-03 16:18 被阅读0次

第一章-第四章

第一章了解SQL

1.了解数据库

1.1数据库基础

1.1.1什么是数据库

数据库是一个以某种有组织的方式存储的数据集合,保存有组织的数据的容器(通常是一个文件或一组文件)。

1.1.2 表

表(table) 某种特定类型数据的结构化清单。
表名的唯一性取决于多个因素,如数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名,但在不同的数据库中却可以使用相同的表名。

1.1.5 主键

表中每一行都应该有可以唯一标识自己的一列(或一组列)。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。
主键(primary key) 一列(或一组列),其值能够唯一区分表中每个行。
唯一标识表中每行的这个列(或这组别)称为主键。主键用来表示一个特定的行。没有主键,更新或者删除表中的特定行很困难,因为没有安全的方法保证只涉及相关的行。

主键的最好习惯:
 不更新主键列中的值;
 不重用主键列的值;
 不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)

1.2什么是SQL?

SQL是结构化查询语言(Structured Query Language))的缩写。
SQL是一种专门用来与数据库通信的语言。
设计SQL的目的是很好地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。

第二章MySQL简介

2.1什么是MySQL?

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

2.1.1客户机—服务器软件

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

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

2.2MySQL工具

在操作系统命令提示符下输入mysql将出现一个如下的简单提示:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

请注意:
 命令输入在mysql>之后;
 命令用;或\g结束,换句话说,仅按Enter不执行命令;
 输入help或\h获得帮助,也可以输入更多的文本获得特定命令的帮助(如,输入help select获
得使用SELECT语句的帮助);
 输入quit或exit退出命令行实用程序。

2.2.2MySQL Administrator

MySQL Administrator(MySQL管理器)是一个图形交互客户机,用来简化MySQL服务器的管理。
MySQL Administrator提示输入服务器和登录信息(并且允许你保存服务器定义供以后选择),然后显示允许选择不同视图的图标。其中:

 Server Information(服务器信息)显示客户机和被连接的服务器的状态和版本信息;
 Service Control(服务控制)允许停止和启动MySQL以及指定服务器特性;
 User Administration(用户管理)用来定义MySQL用户、登录和权限;
 Catalogs(目录)列出可用的数据库并允许创建数据库和表。

第三章 使用MySQL

连接

在最初安装MySQL时,需要输入一个管理登录(通常为root)和一个口令。如果使用自己的本地服务器,只是为了简单实验一个MySQL,使用上述登录就可以。

但现实中,管理登录受到密切保护(因为对它的访问授予了创建表、删除整个数据库、更改登录和口令等完全的权限)。
需要的信息如下:
 主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;
 端口(如果使用默认端口3306之外的端口);
 一个合法的用户名;
 用户口令(如果需要)。

3.2选择数据库

选择数据库,使用USE关键字。
输入

 use mysql

输出

Database changed

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

3.3了解数据库和表

数据库、表、列、用户、权限等的信息被存储在数据库和表中(MySQL使用MySQL来存储这些信息)。不过,内部的表一般不直接访问。可用MySQL的SHOW命令来显示这些信息(MySQL从内部表中提取这些信息)。
请看下面的例子

输入

show tables;

输出

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

为了获得一个数据库内的表的列表,使用SHOW TABLES;,如下所示:
输入

show tables;

输出

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

分析:SHOW TABLES;返回当前选择的数据库内可用表的列表。

SHOW也可以用来显示表列:
输入

show columns from mytable;

输出

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | char(10)    | NO   | PRI | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
| age   | char(10)    | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

其他show语句:
 SHOW STATUS,用于显示广泛的服务器状态信息;
 SHOW CREATE DATABASE和SHOW CREATE TABLE,分别用来显示创建特定数据库或表的MySQL语句;
 SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
 SHOW ERRORS和SHOW WARNINGS,用来显示服务器错误或警告消息。

第四章 检索数据

检索单个列

SELECT prod_name 
FROM products;
查询结果.png

检索多个列

SELECT prod_id,prod_name,prod_price
FROM products;
多列查询结果.png

检索所有列

SELECT*
FROM products;

检索不同的行

SELECT vend_id
FROM products;
检索结果.png

SELECT语句返回14行(即使表中只有4个供应商),因为products表中列出了14个产品。

如何检索出不同值得列表?
解决办法是使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同的值。

SELECT DISTINCT vend_id
FROM products;
DISTINCT关键字检索结果.png

分析:SELECT DISTINCT vend_id 告诉MySQL返回不同(唯一)的vend_id行,因此只返回4行,如上面输出结果。如果使用DISTINCT关键字,它必须放在列名前面。

限制结果
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。

SELECT prod_name
FROM products
LIMIT 5;
限制条件下的结果.png
SELECT prod_name
FROM products
LIMIT 5,5;
限行输出结果.png

分析:LIMIT 5,5指示MySQL返回从行5开始的5行。第一个数为开始的位置,第二个数为要检索的行数。

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

本章小结:

本章学习了如何使用SQL的SELECT语句来检索单个表列、多个表列以及所有表列。下一章将讲授如何排序检索出来的数据。

相关文章

  • mysql必知必会

    title: mysql必知必会date: 2019-11-21tags: 笔记categories: sql ...

  • 【SQL必知必会】学习笔记day1

    第一章-第四章 第一章了解SQL 1.了解数据库 1.1数据库基础 1.1.1什么是数据库 数据库是一个以某种有组...

  • 《SQL必知必会》学习笔记

    基本常识 去掉返回结果空格 两边都去掉:TRIM 去掉左边:LTRIM 去掉右边:RTRIM Union 默认,U...

  • SQL必知必会学习笔记

    一、检索数据1.1检索单个列SELECT row_name FROM TableName; 1.2检索多个列SEL...

  • SQL学习:《SQL必知必会》学习笔记

    表 存储在表中的数据是同一种类型的数据或清单。 数据库中的表有为一个名字来标识自己。 表具有一些特性,这些特性定义...

  • SQL必知必会

    《SQL必知必会》SQL是使用 广泛的数据库语言,几乎所有重要的DBMS都支持SQL。《SQL必知必会(第4版)》...

  • SQL 基础笔记

    本文为 SQL必知必会 的读后笔记 SELECT 语句 多条SQL语句必须以分号(;)分隔,建议加上 ...

  • 初学数据分析

    本周学习SQL。 SQL必知必会第一课第二课部分

  • SQL必知必会学习笔记1

    SQL必知必会学习笔记 一、了解SQL 基本术语 数据库(database) 保存有组织的数据的容器(通常是一个文...

  • SQL必知必会学习笔记3

    SQL必知必会学习笔记3 十三、创建高级联结 1.使用表别名 警告: Oracle中没有AS,直接指定Custom...

网友评论

      本文标题:【SQL必知必会】学习笔记day1

      本文链接:https://www.haomeiwen.com/subject/kshdghtx.html