文章目录
一、MYSQL与SQL是什么?
MySQL是一种数据库管理系统。它有如下优点:
为什么有那么多的公司和开发人员使用MySQL?
- 成本—MySQL是开放源代码的,一般可以免费使用(甚至可以免费修改)
- 性能—MySQL执行很快(非常快)。.
- 可信赖—某些非常重要和声望很高的公司、站点使用MySQL,这些公司和站点都用MySQL来处理自己的重要数据。
- 简单—MySQL很容易安装和使用。
SQL是结构化查询语言( Structured QueryLanguage)的缩写。SQL是一种专门用来与数据库通信的语言。设计SQL的目的是很好地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。
SQL有如下的优点。
- SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SOL,所以,学习此语言使你几乎能与所有数据库打交道。
- SQL简单易学。它的语句全都是由描述性很强的英语单词组成,而且这些单词的数目不多。
- SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
下面介绍MYSQL数据库管理系统下支持的SQL语言。
二、SQL语言
1.USE选择数据库
使用USE打开数据库,才能读取其中的数据
USE database_name;
2. SHOW查看MySQL数据库、表和内部信息
返回可用数据库的一个列表。
SHOW DATABASES;
返回当前选择的数据库内可用表的列表。
SHOW TABLES;
返回当前选择的表的表名,它对每个字段返回一行,行中包含字段名、数
据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id的auto increment)。
SHOW COLUMNS
FROM customers;
DESCRIBE customers;
是SHOW COLUMNS FROM customers;
的一种快捷方式。
用于显示广泛的服务器状态信息;
SHOW STATUS;
分别用来显示创建特定数据库或表的MySQL语句;
SHOW CREATE DATABASE;
SHOW CREATE TABLE;
用来显示授予用户(所有用户或特定用户)的安全权限;
SHOW GRANTS;
用来显示服务器错误或警告消息。
SHOW ERRORS;
SHOW WARNINGS;
3.SELECT语句从表中检索一个或多个数据列
为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。
3.1 检索单个列
SELECT prod_name
FROM products;
利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。
3.2 检索多个列
SELECT prod_id, prod_name,prod_price
FROM products;
要想从一个表中检索多个列,使用相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。
3.3 检索所有列
SELECT *
FROM products;
如果给定一个通配符(*),则返回表中所有列。
检索未知列是使用通配符有一个大优点。由于不明确指定列名((因为星号检索每个列),所以能检索出名字未知的列。
3.4 检索不同的行—DISTINCT
SELECT DISTINCT vend_id
FROM products;
使用DISTINCT
关键字。此关键字指示MySQL只返回不同的值。如果使用DISTINCT关键字,它必须直接放在列名的前面。
3.5 限制结果—LIMIT
SELECT prod_name
FROM products LIMIT 5;
使用SELECT语句检索单个列。LIMIT 5
指示MySQL返回不多于5行。
SELECT prod_name
FROM products LIMIT 5,5;
LIMIT 5,5指示MySQL返回从行5开始的5行。第一个数指定检索的开始行,第二个数指定检索的行数。
4. 使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据
为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY
子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。默认,按照升序排序(A-Z)。ORDER BY子句必须是SELECT语句中的最后一条子句。可根据需要,利用它在一个或多个列上对数据进行排序。
4.1 排序数据
SELECT prod_name
FROM products
ORDER BY prod_name;
利用SELECT语句从products表中检索一个名为prod_name的列,并且以ORDER BY子句
指示MySQL对prod_name列以字母顺序排序数据.
4.2 按多个列排序
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price,prod_name;
选择三个列并按其中两个列对结果进行排序,列名之间用逗号分开即可
先按第一个列进行排序,相同在对相同的行使用后面的列进行排序。
4.3 指定排序方向—DESC与ASC
为了进行降序排序,必须指定DESC关键字。ASC(升序)是默认的关键字。
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;
以价格降序排序
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC,prod_name;
DESC关键字只应用到直接位于其前面的列名。prod_price列指定DESC,对prod_name列不指定。因此,prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序。