MySQL基础学习总结

1、MySQL基础概念

mysql逻辑架构如下:

MySQL基础学习总结

  每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行。

  MySQL是分层的架构。上层是服务器层的服务和查询执行引擎,下层是存储引擎。虽然有很多不同作用的插件API,但存储引擎API还是最重要的。如果能理解MySQL在存储引擎和服务层之间处理查询时如何通过API来回交互,就能抓住MySQL的核心基础架构的精髓。

  数据库系统实现了各种死锁检测和死锁超时机制,InnoDB目前处理死锁的机制是,将持有最少行级排它锁的事务进行回滚。MySQL服务层不管理事务,事务是由下层的存储引擎实现的。

  注意,SQL语句一般以';'或者'\g'结束。

数据库(database): 保存有组织的数据的容器。

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

(column): 表中的一个字段,所有表都是由一个或多个列组成的。

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

(row): 是表中的一个记录。

主键(primary key): 是一列(或者一组列),其值能够唯一区分表中每个行。

2、使用MySQL

mysql -h host -u username -p 与数据库建立连接

use database_name 选择数据库

show databases 显示所有的数据库

show tables 显示当前数据库下所有的表

show columns from table_name 显示表的列信息,作用和desc table_name是一样的

MySQL支持的其他show语句还有:

show status 显示MySQL服务器状态信息

show create database_name和show create table_name 分别显示创建特定数据库和数据表的MySQL语句

show grants 显示授予用户的安全权限

show errors和show warnings 显示服务器错误或警告信息

3、检索数据

  SQL语句中最常用的就是select语句了,它用来在一个或多个表中检索数据,select使用示例如下:

select column_name from table_name 从table_name数据表中检索column_name列,检索单个列

select column1_name, column2_name from table_name 检索多个列

select * from table_name 检索所有列

MySQL基础学习总结

 

  注意,select返回所有匹配的行,但是,如果我们不想每个值都每次出现,怎么办呢?例如,想让上图中输出的id唯一,这样可以再select语句中添加distinct关键字,select distinct id from goods,这样显示结果如下:

MySQL基础学习总结

  有时我们想限制输出的结果,比如返回第一行或前几行,可使用limit子句,如下所示:

select * from goods limit 2 返回前2行结果,注意,当行数不够时,只能返回数据表中有限的行数

select * from goods limit 2, 2 返回从行2开始的2行

  当然,我们也可以使用完全限制来进行数据检索:

select goods.id, goods.name from goods 输出goods表中所有记录

4、排序检索数据

  排序检索数据主要使用select语句的order by子句,根据需要排序检索出的数据,select语句默认返回结果是没有特定顺序的,在排序检索数据时也可以指定排序的方向,比如升序或者降序等,order by子句默认为升序排列。

 

MySQL基础学习总结

   

MySQL基础学习总结

(这个是降序配列)

  有时,我们需要对多个列排序怎么办呢?这时可以使用如下sql语句来执行,select * from goods order by id desc, name,注意,这里是对id进行降序排列,如果id相同时,对name进行升序排列。如果想对多个列进行降序排列,需要对每个列指定desc关键字。

MySQL基础学习总结

  使用order by和limit的组合,我们能够找到一个列中最高或者最低的值,比如这里还用goods表做测试,先给goods表增加一个num字段(alter table goods add num int),并添加上对应的值,最后goods表内容为:

MySQL基础学习总结

 

  找出剩余数量最多的的水果是:

MySQL基础学习总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2cbf56adb63dc3a9efae64edf111e427.html