您的位置:首页 > 数据库 > MySQL

《MySQL必知必会》学习笔记二------掌握部分

2017-02-02 22:31 337 查看
MySQL必知必会知识预览

第一章——了解SQL

第二章——MySQL简介

第三章——使用MySQL

第四章——检索数据

第五章——排序检索数据

第六章——过滤数据

第七章——数据过滤

第八章——用通配符进行过滤

第九章——用正则表达式进行搜索

第十章——创建计算字段

第十一章——使用数据处理函数

第十二章——汇总数据

第十三章——分组数据

第十四章——使用子查询

第十五章——联结表

第十六章——创建高级联结

第十七章——组合查询

第十八章——全文本搜索

第十九章——插入数据

第二十章——更新和删除数据

第二十一章——创建和操纵表

第二十二章——使用视图

第二十三章——使用储存过程

第二十四章——使用游标

第二十五章——使用触发器

第二十六章——管理事务处理

第二十七章——全球化和本地化

第二十八章——安全管理

第二十九章——数据库维护

第三十章——改善性能

————————————– 华丽的分隔符 ————————————————–

第三章

关键字

关键字:作为MySQL语言组成部分的一个保留字

绝对不要使用关键字进行表命名或者列命名

常见命令行操作

use database_name //切换到不同的数据库

show databases; // 显示所有可用的数据库名称,包括系统数据库

show tables; //显示当前链接数据库内的所有可用表的列表

show columns from table_name; //显示指定表的所有列的信息

describe table_name; //显示指定表的所有列的信息的简写形式,性能比上述语句较好

show status; //用于显示广泛的服务器状态

show create database和show create table //显示创建特定数据库或者表的语句

show grants // 用来显示授予用户(所有用户或者特定用户)的安全权限

show errors和show warnings //用来显示服务器错误或者警告消息

help show //显示关于show的帮助

经验:一般情况下,可以先利用help 回车,将所有的帮助列表得到,然后根据列表进行help 加列表名,进行所需要的帮助查看。谨记,有些在windows下不起作用。

第四章(select语句)

检索单个列

select prod_name from products; //从products表中检索出pro_name的一个列。查询出来的记录是从零开始计数

这种方式没有明确排序查询结果。此时数据的排序没有特殊意义。

SQL语句不区分大小写,但是一般情况下,对所有的关键字进行大写,对所有的列和表名使用小写。

在处理sql语句时,所有的空格都是被忽略的。

检索多个列

Select 查询语句查询多列时,之间列与列之间逗号分隔,最后一个不加逗号。

select prod_name,prod_price,prod_id from products; //从products表中检索出pro_name,prod_price,prod_id 列。

Sql语句一般返回的是原始的无格式的数据,数据的格式化是一个表示问题,而不是一个检索问题,因此,表示一般在显示该数据的应用程序中规定,一般很少使用实际检索出来的原始数据(没有应用程序提供的格式)

检索所有列

select * from products; // 检索出所有的列

通配符注意:使用通配符虽然能检索出名字未知的列,但是却会降低检索和应用程序的性能。

distinct 关键字的使用

使用规则:

a. 关键字distinct 指示sql只返回不同的值,必须放在列名的前面。(去重操作)

b. Distinct关键字应用于所有列而不仅仅是前置她的列

select distinct vend_id from products;// 返回vend_id 不同的行。将vend_id相同的行只留下一条记录

limit关键字的使用

关键字limit用于限制结果,两种表达方式

Limit start,num // start 表示开始的位置,num表示要查询多少条数据 一个参数表示从零开始

Limit num offset start //从行start开始取num行 ( MySQL 5 的limit 方法,)

Limit start,num 当其中只含有一个参数时,则表示是从第一行开始,给出的参数为返回的行数。

行数不够时,返回最大行数

select prod_name from products limit 0,5; // 获取前五行记录 ,

select prod_name from products limit 5 offset 0;

使用完全限定名

select products.prod_name from products // 使用完全限定名,一般用于多表查询

第五章

关键字order by 用于排序数据

规则:

a. 可以通过非检索列进行排序。

b. 在用于多个列进行排序时,根据先后顺序进行排序,在第一个列数据相同时,才会对第二个数据进行排序,列与列之间逗号隔开。

c. 数据排序默认的是升序排列。

d. Desc关键字是用于降序排列,只作用于位于其前面的列名。

e. 降序排序的前提必须有排序,而排序的关键字为order by,所以,只要出现desc必须有order by。

select prod_id,prod_name,prod_price from products ORDER BY prod_price,prod_name;

// 数据显示总是按照prod_price进行排序,当prod_price相同时,才会利用prod_name进行排序

select prod_id,prod_name,prod_price from products ORDER BY prod_price DESC,prod_name;

// Desc关键字是用于降序排列,只作用于位于其前面的列名。对prod_price 进行降序排列,但是当prod_price 相同时,再对prod_name进行排序时,依旧为升序。

区分大小写和排序顺序 在对文本性的数据进行排序时,A与a相同吗?a位于B之前还是位于Z之后,这些问题不是理论性问题,其答案取决于数据库如何设置。

在字典排序顺序中,A被视为与a相同,这是MySQL(和大多数数据库管理系统)的默认行为,但是。许多数据库管理员能够在需要时改变这种行为(如果你的数据库包含大量外语字符,可能必须这样做).

这里关键的问题是,如果确实需要改变这种排序顺序,用简单的order by子句做不到,你必须请求数据库管理员的帮助。

使用order by 和 limit 的组合,能够找出一个列中最高或者最低的值。

select prod_price from products order by prod_price desc limit 1;

// prod_price desc 对价格进行降序排列,然后取第一个,获得最大值

order by 子句位置

多条件组合语句,顺序不能出现错误,不然将产生错误。

order by 位于from 子句之后,limit 位于order by 子句之后。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql