【Linux】Mysql的基本操作

这篇具有很好参考价值的文章主要介绍了【Linux】Mysql的基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、查看数据库

二、切换数据库

三、查看数据库中的表

四、表的增删改查; 

五、字段的修改与添加

六、算术运算符

七、 聚合函数在表查询中的使用

 count()

 max()

 min()

 avg()

 sum()

八、条件查询

 使用in关键字查询

使用BETWEEN AND关键字查询

使用空值查询

使用LIKE关键字查询

使用LIMIT限制查询结果的数量

使用GROUP BY进行分组查询

使用 order by 对查询结果进行排序。

带有“_”通配符的查询

九、 多表连接查询

交叉连接(CROSS JOIN)

内连接(INNER JOIN)

外连接 (OUTER JOIN)

左外连接

右外连接

group by 与group_concat()

group by 与聚合函数 

 group by 与 with rollup

group by与having用法

 having和where的区别:

子查询

IN | NOT IN

 EXISTS | NOT EXISTS


登录mysql

mysql -uroot -p

一、查看数据库

Class_Linux库名;name表名;

查看数据库

 SHOW DATABASES;

linux操作mysql,Linux MySql,数据库
 

 SHOW SCHEMAS;

linux操作mysql,Linux MySql,数据库

二、切换数据库

切换数据库

use Class_Linux ;

linux操作mysql,Linux MySql,数据库

三、查看数据库中的表

查看数据库中的所有表

show tables;

linux操作mysql,Linux MySql,数据库

#查看单表的创建信息

show create table name;

四、表的增删改查; 

select * from name;

linux操作mysql,Linux MySql,数据库


查看指定字段的数据;

select 字段名 from 表名; 

select name from name;

linux操作mysql,Linux MySql,数据库


查看某个字段时,将其字段名在显示时重命名:

select 字段名 as 重命名的字段名 from name;(as可以省略)

 select name as 姓名 from name;

linux操作mysql,Linux MySql,数据库


带条件的查询;

where 后面跟条件;

 select * from name where name='崔倍';

linux操作mysql,Linux MySql,数据库


带常数的查询;

linux操作mysql,Linux MySql,数据库


去重查询:

使用distinct()方法;

select distinct(name) from name;

linux操作mysql,Linux MySql,数据库

增加数据;

insert into name values(NULL,'李饼','男','21','2000-4-2','100');

linux操作mysql,Linux MySql,数据库

修改数据;

update name set age='19' where id='1';

(修改id为1的年龄为19)

linux操作mysql,Linux MySql,数据库

如果不加where表示这一个字段的值都被修改为19:

linux操作mysql,Linux MySql,数据库

 删除数据;
例如:删除id为3的纪录。

delete from name where id='3';

linux操作mysql,Linux MySql,数据库

五、字段的修改与添加

增加新的字段名:

alter table name add birth varchar(20) default NULL after age;

linux操作mysql,Linux MySql,数据库table_name :表名;

birth:需要添加的字段名;

varchar(20):字段类型为varchar,长度20;

defalt NULL :默认值NULL;

age:新增字段添加在old_column字段后面。

删除字段是将数据表中的某个字段从表中移除,语法格式如下:

 ALTER TABLE <表名> DROP <字段名>;

 alter table name drop csny;

linux操作mysql,Linux MySql,数据库

修改表字段类型

 alter table name modify xb char(5);

linux操作mysql,Linux MySql,数据库

修改表字段名:

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

alter table name change xb sex char(4);

linux操作mysql,Linux MySql,数据库


六、算术运算符

在SELECT查询语句中还可以使用加减乘除运算符。 查询学生10年后的年龄 MySQL命令:

linux操作mysql,Linux MySql,数据库

七、 聚合函数在表查询中的使用

        在开发中,我们常常有类似的需求:统计某个字段的最大值、最小值、 平均值等 等。为此,MySQL中提供了聚合函数来实现这些功能。所谓聚合,就是将多行汇总 成一行;其实,所有的聚合函数均如此——输入多行,输出一行。聚合函数具有自动 滤空的功能,若某一个值为NULL,那么会自动将其过滤使其不参与运算。

        聚合函数使用规则: 只有SELECT子句和HAVING子句、ORDER BY子句中能够使用聚合函数。例如,在 WHERE子句中使用聚合函数是错误的。

linux操作mysql,Linux MySql,数据库

 count()

select count(字段名) from 数据表名;

linux操作mysql,Linux MySql,数据库

 max()

select max(字段名) from 数据表名;

linux操作mysql,Linux MySql,数据库

 min()

select min(字段名) from 数据表名;

linux操作mysql,Linux MySql,数据库

 avg()

select avg(字段名) from 数据表名;

linux操作mysql,Linux MySql,数据库

 sum()

select sum(字段名) from 数据表名;

linux操作mysql,Linux MySql,数据库

八、条件查询

        数据库中存有大量数据,我们可根据需求获取指定的数据。此时,我们可在查询语句 中通过WHERE子句指定查询条件对查询结果进行过滤。

linux操作mysql,Linux MySql,数据库

 linux操作mysql,Linux MySql,数据库


 使用in关键字查询

in关键字用于判断某个字段的值是否在指定集合中。如果字段的值恰好在指定的集合 中,则将字段所在的记录将査询出来。

linux操作mysql,Linux MySql,数据库


使用BETWEEN AND关键字查询

        BETWEEN AND用于判断某个字段的值是否在指定的范围之内。如果字段的值在指定 范围内,则将所在的记录将查询出来;

linux操作mysql,Linux MySql,数据库


使用空值查询

        在MySQL中,使用 IS NULL关键字判断字段的值是否为空值。请注意:空值NULL不 同于0,也不同于空字符串;

linux操作mysql,Linux MySql,数据库


使用LIKE关键字查询

        %用于匹配任意长度的字符串。例如,字符串“a%”匹配以字符a开始任意长度的字符 串 用于匹配一个任意的字符串。列入,字符串"ab"匹配"ab"开始长度为3的字符串,如 abc、abp等等..

linux操作mysql,Linux MySql,数据库


使用LIMIT限制查询结果的数量

desc降序排序,asc升序排序,asc也是默认排序;

linux操作mysql,Linux MySql,数据库

 linux操作mysql,Linux MySql,数据库


使用GROUP BY进行分组查询

统计学生男女人数 MySQL命令:

select count(sex), sex from name group by sex;

linux操作mysql,Linux MySql,数据库


使用 order by 对查询结果进行排序。

从表中査询出来的数据可能是无序的或者其排列顺序不是我们期望的。为此,我们可 以使用ORDER BY对查询结果进行排序

升序排列 MySQL命令格式: 降序排列 MySQL命令格式:

select 字段名 from 数据表名 order by 字段名;

linux操作mysql,Linux MySql,数据库

 降序排列 MySQL命令格式:

select 字段名 from 数据表名 order by 字段名 desc;

linux操作mysql,Linux MySql,数据库


带有“_”通配符的查询

like

select * from name where name like '_倍';

“_”只能代表单个字符,字符的长度不能为 0。例如, a_b 可以代表 acb、adb、aub 等字符串。

linux操作mysql,Linux MySql,数据库


linux操作mysql,Linux MySql,数据库

 linux操作mysql,Linux MySql,数据库

 linux操作mysql,Linux MySql,数据库linux操作mysql,Linux MySql,数据库


九、 多表连接查询

交叉连接(CROSS JOIN)

笛卡尔积 交叉连接(CROSS JOIN):有两种,显式的和隐式的2种,一般用来返回连接表的笛卡 尔积。 笛卡尔积(Cartesian product)是指两个集合 X 和 Y 的乘积。

例如,有 A 和 B 两个集合,它们的值如下:

A = {1,2}

B = {3,4,5}

集合 A×B 和 B×A 的结果集分别表示为:

A×B={(1,3), (1,4), (1,5), (2,3), (2,4), (2,5) };

B×A={(3,1), (3,2), (4,1), (4,2), (5,1), (5,2) };

以上 A×B 和 B×A 的结果就叫做两个集合的笛卡尔积 并且,从以上结果我们可以看出:

1)两个集合相乘,不满足交换率,即 A×B≠B×A。

2)A 集合和 B 集合的笛卡尔积是 A 集合的元素个数 × B 集合的元素个数。


多表查询遵循的算法就是以上提到的笛卡尔积,表与表之间的连接可以看成是 在做乘法运算。在实际应用中,应避免使用笛卡尔积,因为笛卡尔积中容易存 在大量的不合理数据,简单来说就是容易导致查询结果重复、混乱。

交叉连接返回的结果是被连接的两个表中所有数据行的笛卡儿积。

MySQL:语法格式:

SELECT <字段名> FROM  <表1> CROSS JOIN <表2> [WHERE子句];

SELECT <字段名> FROM  <表1> , <表2> [WHERE子句];

#语法说明如下:

#字段名:需要查询的字段名称。

#<表1><表2>:需要交叉连接的表名。 (”,“是表示隐式)

#WHERE 子句:用来设置交叉连接的查询条件。

有两个表students表和course表:

students表:

linux操作mysql,Linux MySql,数据库

course表: 

linux操作mysql,Linux MySql,数据库


students表*course表 

linux操作mysql,Linux MySql,数据库

 course表*students表linux操作mysql,Linux MySql,数据库


内连接(INNER JOIN)

内连接(INNER JOIN)主要通过设置连接条件的方式,将符合连接条件的数据予以保留,不符合的数据不保留

内连接使用 INNER JOIN 关键字连接两张表,并使用 ON 子句来设置连接条件。如果 没有连接条件,INNER JOIN 和 CROSS JOIN 在语法上是等同的,两者可以互换。

内连接的语法格式如下:

linux操作mysql,Linux MySql,数据库

将两个表连接起来,只查询students表的id,name,course_id和course表的id,course_name字段中满足students表中的course_id 等于course表中的id的数据;

其中students s是给students表起了一个别名为s,这样写起来方便;

linux操作mysql,Linux MySql,数据库

 给上面的数据加了一个条件,course表中的id等于1,也就是只过滤出了选了Java课程的学生的id,name与course_id;linux操作mysql,Linux MySql,数据库


外连接 (OUTER JOIN)

外连接会先将连接的表分为主表参考表,再以主表为依据返回满足和不满足条件的记录。 外连接可以分为左外连接和右外连接2种,下面根据实例分别介绍左外连接和右外连接。

外连接也就是取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL;

  • 左外连接(left outer join):以左边的表为主表
    • linux操作mysql,Linux MySql,数据库
  • 右外连接(right outer join):以右边的表为主表
    • linux操作mysql,Linux MySql,数据库

以某一个表为主表,进行关联查询,不管能不能关联的上,主表的数据都会保留,关联不上的以NULL显示;

(引用了连接中博主的内容

MySQL—内连接和外连接区别_mysql内连接和外连接的区别_leon.han的博客-CSDN博客)


左外连接

 select s.id,s.name,s.course_id,s.height,c.id,c.course_name from  students s left outer join course c on s.course_id=c.id and s.height>175;

以students表为主表,查询满足students表中的course_id等于course表中的id并且students表中的height字段的值要大于175;

由结果可以看到,只有students表中的id号为3和9的满足上面是条件,所以它们的基表course中的字段值可以保留,而students表中除了id号为3和9的其他都不满足条件,所以它们的基表course中的字段值为NULL;

也就是说,在左外连接中,主表的字段值都可以保留,而基表只有满足条件的字段值才可以保留,不满足条件的基表的字段值为NULL;

linux操作mysql,Linux MySql,数据库


右外连接

以course表为主表,查询既满足s.course_id=c.id又满足s.height>175的数据;

因为是右外连接,所以基表中所查询的字段值都可以保留,而基表students表中只有满足条件的才可以保留,其他不满足条件的均为NULL;

linux操作mysql,Linux MySql,数据库


group by 与group_concat()

GROUP BY 关键字可以和 GROUP_CONCAT() 函数一起使用。GROUP_CONCAT() 函 数会把每个分组的字段值都显示出来。

下面根据 students表中的 sex 字段进行分组查询,使用 GROUP_CONCAT() 函数将 每个分组的 name 字段的值都显示出来:

linux操作mysql,Linux MySql,数据库


group by 与聚合函数 

在数据统计时,GROUP BY 关键字经常和聚合函数一起使用。 聚合函数包括 COUNT(),SUM(),AVG(),MAX() 和 MIN()。其中,COUNT() 用来统 计记录的条数;SUM() 用来计算字段值的总和;AVG() 用来计算字段值的平均值; MAX() 用来查询字段的最大值;MIN() 用来查询字段的最小值。

下面根据 students 表的 sex 字段进行分组查询,使用 COUNT() 函数计算每一组的 记录数:

linux操作mysql,Linux MySql,数据库


 group by 与 with rollup

WITH POLLUP 关键字用来在所有记录的最后加上一条记录,这条记录是上面所有记 录的总和,即统计记录数量。

下面根据 students 表中的 sex 字段进行分组查询,并使用 WITH ROLLUP 显示记录 的总和;

linux操作mysql,Linux MySql,数据库


group by与having用法

Having子句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录, 

linux操作mysql,Linux MySql,数据库

 linux操作mysql,Linux MySql,数据库


 having和where的区别:

作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组。

WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。

因此,WHERE 子句不能包含聚集函数; 因为试图用聚集函数判断那些行输入给聚集 运算是没有意义的。 相反,HAVING 子句总是包含聚集函数。(严格说来,你可以 写不使用聚集的 HAVING 子句, 但这样做只是白费劲。同样的条件可以更有效地用 于 WHERE 阶段。)


子查询

子查询指 将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询经常出现在 WHERE 子句中。

IN | NOT IN

当表达式与子查询返回的结果集中的某个值相等时,返回 TRUE,否则返回 FALSE; 若使用关键字 NOT,则返回值正好相反。

linux操作mysql,Linux MySql,数据库


 EXISTS | NOT EXISTS

用于判断子查询的结果集是否为空,若子查询的结果集不为空,返回 TRUE,否则返 回 FALSE;若使用关键字 NOT,则返回的值正好相反。

也就是若exists后面的语句执行成功则执行where之前的语句;若不成功则不执行,也就是查不到是个空表;

exists

linux操作mysql,Linux MySql,数据库

not exists

linux操作mysql,Linux MySql,数据库文章来源地址https://www.toymoban.com/news/detail-837930.html

到了这里,关于【Linux】Mysql的基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库基本命令操作

    一、MySQL基本命令操作指令 二、查看数据库结构 1.查看当前服务器中的数据库 2.查看数据库中包含的表 3.查看表的结构(字段) 三、SQL语句 SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。 1、SQL语言分类 四、SQL语句操作 1、创建及删

    2024年02月10日
    浏览(68)
  • MySQL数据库——DDL基本操作

    DDL 操作是与数据库结构相关的操作,它们不涉及实际的数据操作,而是用于管理数据库的结构和元数据。今天我将为大家分享关于MySQL数据库的DDL操作。 SQL 功能 show databases; 查看所有的数据库 create database [if not exists] 数据库名 [charset/character=utf8]; 创建数据库 use 数据库名; 选

    2024年02月15日
    浏览(74)
  • 【Mysql】数据库基础与基本操作

    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘 。 🛸 Mysql专栏 : Mysql内功修炼基地 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我

    2024年02月13日
    浏览(35)
  • MySQL数据库——DML基本操作

    前面我们学习了MySQL——DDL操作,对数据库和表的结构的操作,那么今天我将为大家分享MySQL——DML操作,对表数据的操作。 MySQL DML操作有以下几种: 插入操作(INSERT):用于向数据库中插入新的数据行。可以一次插入单行数据,也可以使用一条SQL语句一次性插入多行数据。

    2024年02月15日
    浏览(47)
  • 1.MySQL数据库的基本操作

    数据库操作过程: 1.用户在客户端输入 SQL 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL,把结果返回给客户端 4.客户端收到结果,显示到界面上 这里的数据库不是代表一个软件,而是代表一个数据集合。 语法: 大写的表示 [] 是可选项 CHARACTER SET: 指定数

    2024年02月12日
    浏览(43)
  • MySQL 数据库表的基本操作

    在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。 通常在创建表时,应该使用语句USE 数据库名,指定在哪个

    2024年02月12日
    浏览(70)
  • MySQL数据库和表的基本操作

    MySQL是一个客户端服务器结构的程序 主动发送数据的这一方,客户端(client) 被动接受数据的这一方,服务器(server) 客户端给服务器发送的数据叫做: 请求(request) 服务器给客户端发送的数据叫做: 响应(response) 客户端和服务器之间是通过网络进行通信的 服务器是存储数据的主体

    2024年01月19日
    浏览(32)
  • MySQL数据库---库基本操作 以及 表结构的操作(DDL)

    目录 前言 一.数据库的操作 1.1显示当前数据库 1.2创建数据库 1.3使用数据库  1.4删除数据库  二.数据类型 2.1数值类型 2.2字符串类型 2.3日期类型 三.数据表的操作  3.1 创建表结构。  3.2查看数据库中拥有的数据表  3.3查看指定的表结构   3.4修改表结构   3.5删除表结构  

    2024年02月09日
    浏览(52)
  • 【MySQL】数据库的增删改查、备份、还原等基本操作

    大写的表示 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 创建数据库的时候,有两个编码集: 1.数据库编码集——数据库未来存储数据 2.数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采

    2024年02月08日
    浏览(55)
  • MySQL数据库概念、管理以及SQL语句的基本命令操作

    数据(data) 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一格式进行存储(记录可以看成一条记录) 表 将不同的记录组织在一起 用来存储具体数据 记录:行 字段(属性):列 以行+列的形式就组成了表(数据存储在表中) 数

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包