Mysql笔记 1-5章

MYSQL 笔记1-5

了解SQL

什么是数据库

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

(table)某种特定类型数据的结构化清单

数据库中的每个表都有一个名字,用来标识自己,此名字唯一的,这表示数据库中没有其他表具有相同的名字

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

列和数据类型

(column)表中的一个字段,所有表都是由一个或多个列组成的;理解列的最好办法是将数据库想象成为一个网格,网格中的每一列存储着一个特定的信息。数据库中每个列都有相应的数据类型,数据类型定义列可以存储的数据种类

数据类型(datatype)所容许的数据的类型,每个表列都有相应的数据类型,它限制该列存储的数据

表中的数据是按行存储的,所保存的每个记录存储在自己的行内,行(row)表中的一个记录

主键

主键(primary key)一列,其值能够唯一区分表中的每个行;

表中的每一行都应该由可以唯一标识自己的一行(或一组列),唯一标识表中的每行的这个列称为主键,主键用来标识一个特定的行,没有主键,更新或删除表中特定行会很困难;虽然不是总需要主键,但是大多数情况下,保证创建每个表都具有一个主键,以便于数据操作和管理;

表中的任何列都可以作为主键,只要它满足以下的条件:

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

MYSQL简介

什么是MYSQL

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

客户机–服务器软件

DBMS可分为两类

  1. 一类为基于共享文件系统的DBMS
  2. 另一类为基于客户机—服务器的DBMS

MySQL命令行实用程序

每个MySQL安装都有一个名为MySQL的简单命令行实用程序。这个程序只是一个控制中断;

在MySQL下有几个点需要注意下

  • 命令输入在MySQL>之后
  • 命令用;或\g 结束,也就是Enter不执行命令
  • 输入help 或 \hj 获得帮助,
  • 输入quit或 exit 退出命令行实用程序

使用MySQL

连接

在最初安装MySQL的时候,要求输入一个管理登录(root)和一个口令,之后为了连接MySQL需要以下信息

  • 主机名(计算机名)—-如果连接到本地MySQL服务器,为localhost;
  • 端口(如果使用默认端口3306之外的端口);
  • 一个合法的用户名;
  • 用户口令

选择数据库

在连接到MySQL后,没有任何数据库打开供你使用,在执行任意数据库操作之前。需要选择一个数据库,这个时候就使用USE关键字;

在这里插入图片描述

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

了解数据和表

如果不知道可以使用的数据库名时,我们可以先显示这些信息;
在这里插入图片描述

SHOW DATABASES;返回可用数据库的一个列表,(包含在这个列表中的可能是MySQL内部使用的数据库)

获得一个数据库内的表的列表;

在这里插入图片描述

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

SHOW也可用来显示表列:
在这里插入图片描述SHOW COLUMNS FROM customers;

SHOW COLUMNS 要求给出一个表名,它对每个字段返回一行,行中包含字段名,数据类型,是否允许NULL,键信息,默认值以及其他信息;

检索信息

SELECT语句

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

检索单个列

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

检索多个列

从一个表中检索多个列,使用相同的SELECT语句,唯一不同的是必须在SELECT关键字后给出多个列名。列名以逗号分隔
在这里插入图片描述SELECT prod_id,prod_name,prod_price FROM products;

这条语句使用SLECT语句从表products中选择数据,这个例子指出了3个列名,列名之间逗号分隔;

检索所有列

SELECT语句还可以也检索所有列并且逐个列出他们,可以通过实际列名的位置使用*通配符达成;
在这里插入图片描述SELECT *FROM products;

给定通配符*,返回表中的所有列,列的顺序一般是列在表定义中出现的顺序;

检索不同的行

只显示该列的内容:
在这里插入图片描述
SELECT vend_id FROM products;

但是这个语句会显示有重复的内容,如果我们想要检索出不同值的呢?

关键字:DISTINCT 此关键字指示MySQL只返回不同的值;
在这里插入图片描述SELECT DISTINCT vend_id FROM products;

SELECT DISTINCT vend_id 告诉MySQL只返回不同的vend_id行;

限制结果

使用LIMIT 限制SELECT 显示的内容;
在这里插入图片描述SELECT prod_name FROM products LIMIT 5;

LIMIT 5指示MySQL返回不多于5行;
在这里插入图片描述SELECT prod_name FROM products LIMIT 5,5;

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

使用完全限定的表名

在这里插入图片描述SELECT products.prod_name FROM produsts;

这条语句是完全限定的,在有一些特殊的情况需要完全限定;

排序检索数据

排序数据

之间的检索数据都i是以它在底层出现的顺序显示的,如果我们想要排序过的呢?

排序用SELECT 语句检索出的数据,可使用 ORDER BY子句,ORDER BY子句取一个或多个列的名字,对输出排序;
在这里插入图片描述SELECT prod_name FROM products ORDER BY prod_name;

按多个列排序

在这里插入图片描述
按多个列排序,只要指定列名,列名之间用逗号分开;SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price,prod_name;

指定排序方向

数据排序不限于升序排序,这只是默认排序顺序,还可以使用ORDER BY子句降序顺序排序,降序需要使用DESC关键字
在这里插入图片描述降序排序产品,最贵的在最前面;

还有和DESC关键字相反的ASC,也就是升序,但是很少用,因为默认就是升序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值