Mysql 基础 | 青训营笔记

126 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第4篇笔记

登录命令及信息查询

登录选项

mysql -u root -p -h myserver -P 3306

P 是端口,h 是主机名,u 是用户名

了解数据库和表

展示数据库

show databases;

展示数据库中的表

show tables; 必须先选中数据库才能展示表格

选中某个数据库

use xxx;

展示表中的列

show columns from xxx;

得到的结果是每个字段的名字、数据类型、是否允许 NULL、键信息、默认值以及其他信息

等同方法: describe

也可以使用另一个方法来查看:

describe city;

其他 show 方法

  • show status; 展示广泛的服务器状态信息
  • show grants; 展示授予用户的安全权限
  • show errors;show warnings; 展示服务器错误或警告消息

检索数据

select 语句

检索单个列

select column_name from table_name;

从表中检索出一个特定名字的列所有数据。如果没有明确排序查询结果,则返回的顺序没有特殊意义

使用分号 ; 来结束一个命令最保险(有些DBMS 不强求,有些强制,因此最好保持一致)

mysql 不区分大小写,但是为了阅读性一般将命令都大写,而表名和列使用小写。

检索多个列

select co1, co2, co3 from table;

使用逗号来间隔开不同列,最后一个列不用加逗号。

SQL 语句返回的是原始的、没有格式的数据。数据的格式化是显示的问题,在应用程序中规定。一般很少使用实际检索出来的原始数据。

检索所有列

select * from table;

使用通配符 '*' 表示查找所有的列数据

检索值不同的行

select distinct col from table;

表示只返回值不一样的行,DISTINCT 关键字必须放在列名的前面。

DISTINCT 应用于所有列,即列的组合值,只有组合值相同的才会不被列出

限制结果

select col from table limit 5;

限制只返回前面的 5 行。必须放在 table 名后面,可以和 distinct 等组合。

如果参数是 5,5,代表是从第 5 行开始的后面 5 行数据,如果数据范围不存在,则不返回。

即有两个参数,第一个是起点的行,第二个是范围的大小。起点行缺省值为 0。

另一种写法 select col from table limit range offset start;

排序检索数据

排序数据

默认的检索数据,以它在底层表中的出现顺序显示。可能是数据最初添加到表中的顺序,但如果后面进行了数据的更新或删除,顺序会受到 mysql 重用回收存储空间影响。

SQL 语句由子句构成,有些子句是必须的,有些子句是可选的。

order by 子句取一个或多个列的名字,根据此对输出进行排序

select col from table order by col(其他行也行的);

按多个列排序

select prod_name,prod_price,prod_id from table order by prod_price,prod_id;

order by 后面有多个列名,则按照顺序进行比较,只有前面的列名大小相等才会参考后面的列。

指定排序方向

select col from table order by col desc;

默认的排序方式是升序的。为了使用降序排序,必须指定 DESC 关键字。(注意 order by 是子句,DESC 是关键字)。

每一个列都可以单独加上这个关键字,表示这一列排序时是按照 逆序 !

子句是有顺序之分的!order by 必须在 from 后面,limit 必须在 order by 后面。

即 子句可以组合使用达到想要的效果,但是必须注意它们的顺序。