MySQL相关知识---DML数据操作语句和基本的DQL语句

一、M y s q l 对 数 据 的 增 删

1.DML语句:

数据删除:关键字DELETE,主要功能是 删除 数据库表中已有的记录。可以依照条件去做修改。

数据增加:关键字INSERT,主要功能是 给数据库表增加记录。

数据修改:关键字是UPDATE,主要功能是 修改数据库表中已有的记录。可以根据条件去做修改。


2.数据的增加 
 2.1增加数据(INSERT语句)

语法:

INSERT INTO `表名` [(`字段1`,`字段2`,...`字段n`)] VALUES/VALUE ('值1','值2',...'值n')[,('值1','值2',...'值n')...];

 其中:

  • “[]” 包含的内容可以省略;
  •  字段或值之间用英文逗号隔开;
  •  可同时插入多条数据,values 后用英文逗号隔开;
  •  values和value的方式均可 
 2.2.增加数据(INSERT INTO SELECT )

        INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。 目标表中任何已存在的行都不会受影响。

语法:

INSERT INTO table2

(column_name,...)

SELECT column_name,...

FROM table1;

 其中:

  • table2 必须存在,将table1中数据赋值到table2中

 如果要新建表并赋值表内容:create table 新表 select * from 原始表;

3.修改数据(UPDATE语句)

 语法:

UPDATE 表名 SET `字段名1` = '值1' [ , `字段名2` = '值2', …. ] [ WHERE 条件];

 其中:

  • []” 包含的内容可以省略;
  •  `字段名`为要更改数据的字段,'值'表示字段改后的值,注意字段和值的对应;
  •  可同时修改多个字段,多个字段后用英文逗号隔开;
  • “WHERE”是where子句,可以给修改增加条件;
  •  条件:为筛选条件,如不指定则修改该表的所有列数据。
3.1 WHERE子句

        有条件的从数据库表中获取记录,通常同在修改,删除,和查询语句的时候,协助该类语句从条件中获取 记录。针对修改和删除语句,如果没有条件,则全部修改和全部删除。

 

 4.删除数据(DELETE语句)

语法:

DELETE FROM 表名 [ WHERE 条件];

其中:

  • “[]” 包含的内容可以省略;
  • “WHERE”可以通过where子句增加删除的条件。
6. 删除数据(TRUNCATE语句)

语法:

TRUNCATE [TABLE] 表名

 其中:

  • TRUNCATE是一个特殊的删除语句,又叫做清空语句;
  • []”包含的内容可以省略;
  • 功能:清空某一张表内的全部数据,重置自增计数器;
  • 特点:由于没有条件约束,所以速度快,而且效率高。
7. 计算列(MySql8 新特性)

什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。例如,a列值为1、 b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列,是通过别的列计算得来的。


在MySQL 8.0中,CREATE TABLE和ALTER TABLE中都支持增加计算列。下面以CREATE TABLE为例进行说明。


举例:定义数据表tb1,然后定义字段id.字段a、字段b和字段c, 其中字段c为计算列,用于计算a+b的值。

二、数 据 的 备 份 和 还 原

1.MySQL数据库恢复的方法

方法一:使用工具

  1. 先建库
  2. 在新建的库右键 【运行SQL文件】

 

 方法二:备份

  1. 在已有的库右键 【转储SQL文件】

方法三:控制台恢复

在控制台输入如下指令:

mysql –h localhost -P 3306 –u root –p dbname < /path/db_name.sql;

 其中:

  • dbname”表示需要恢复的数据库,
  • /path/db_name.sql”表示所恢复数据库的备份文件绝对路径
2.MySQL数据库备份的方法

方法1:控制台备份

控制台备份时,依赖的是MySQL自带的备份工具mysqldump,该工具的功能是转储数据 库,将数据转移到另一个SQL数据库,当然并不局限于MySQL数据库。 在控制台输入如下命令:

mysqldump -h localhost –P 3306 –u root –p dbname > /path/db_name.sql

 其中:

  • dbname”表示需要备份的数据库,
  • /path/db_name.sql”表示将备份的数据库保存的绝对路径。

 数据库备份和恢复的作用和价值主要体现在以下几个方面:

  • 高可用性:使数据库的失效次数减到最少,从而使数据库保持 最大的可用性。
  • 安全性:计算机病毒型、特洛伊木 马型、“黑客”入侵型、 逻辑炸弹型等会造成信息 丢失,                    丢失的数据需要及 时恢复。
  • 完整性:当数据库失效后,确保尽 量少的数据丢失或根本不 丢失,从而使数据具有最 大的完                    整性。

三、单表查询

1. DQL语言

DQL(Data Query Language 数据查询语言)。用途是查询数据库数据,如SELECT语句。是SQL语句 中最核心、最重要的语句,也是使用频率最高的语句。其中,可以根据表的结构和关系分为单表查询多表联查

单表查询:针对数据库中的一张数据表进行查询,可以通过各 种查询条件和方式去做相关的优化。

多表联查:针对数据库中两张或者两张以上的表同时进行查询, 依赖的手段有复杂查询和嵌套查询。

查询语句语法规则(很重要)

SELECT [DISTINCT]

{*|表1.*|[ 表1.字段1 [as 字段别名1]

[, 表1.字段2[as 字段别名2]][, …]]}

FROM 表1 [ as 表别名 ]

[ left|right|inner join 表2 on 表之间 的关系 ]

[ WHERE ]

[ GROUP BY ]

[ HAVING] [ ORDER BY]

[ LIMIT {[ 位置偏移量,] 行数 }] ;

其中:

  • [ ]”包含的内容可以省略;
  • { }”包含的内容必须存在;
DISTINCT设定DISTINCT可以去掉重复记录。
AS表名或者字段名过长时,可以用AS关键字起别名,方便操作。
GROUP BY按组分类显示查询出的数据。
HAVING GROUP BY分组时依赖的分组条件。
ORDER BY将查询出来的结果集按照一定顺序排序完成。
LIMIT限制显示查询结果的条数。
2.指定字段列

语法:

SELECT * | 字段名1, 字段名2... FROM 表名

 其中:

  • “*”表示所查询的数据库表的全部字段。
3. 表别名和字段别名

语法:

SELECT 表别名.字段名1 AS 字段别名1, 表别名.字段名2 AS 字段别名2 FROM 表名 AS 表别名

 其中:

  • “.” 当前表存在的字段;
  •  “AS”可忽略不写,“AS”的功能如下:

        ①给字段取一个新别名;

         ②给表取一个新别名;

         ③把经计算或总结的结果用另外一个新名称来代替。

4.DISTINCT

语法:

SELECT DISTINCT 字段名1, 字段名2... FROM 表名

其中:

  • 去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同), 只返回一条。
5. WHERE条件子句

语法:

SELECT * FROM 表名 [ WHERE 条件];

 其中:

  •  WHERE条件子句不是必须的;
  •  WHERE子句,可以给查询增加条件;
  •  条件:为筛选条件,如不指定则修改该表的所有数据。
 6.LIKE 关键字

语法:

SELECT * FROM 表名 WHERE 字段 LIKE 条件;

其中:

  • 在WHERE子句中,使用LIKE关键字进行模糊查询;
  • 与“%”一起使用,表示匹配0或任意多个字符;
  • 与“_”一起使用,表示匹配单个字符。
7.IN 关键字

语法:

SELECT * FROM 表名 WHERE 字段 IN (值1,值2...);

其中:

  • 查询的字段的值,至少与IN 后的括号中的一个值相同;
  • 多个值之间用英文逗号隔开。
8.NULL 值查询

语法:

SELECT * FROM 表名 WHERE 字段 IS NULL | IS NOT NULL

 其中:

  • NULL代表“无值”;
  • 区别于零值0和空符串;
  • 只能出现在定义允许为NULL的字段;
  • 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。
9.常用的聚合函数

10.GROUP BY和HAVING分组

GROUP BY:

        1、对所有的数据进行分组统计;

        2、分组的依据字段可以有多个,并 依次分组。

HAVING:

        与GROUP BY结合使用,进行分组 后的数据筛选。

11.ORDER BY排序

语法:

SELECT * FROM 表名 ORDER BY 字段名 [DESC|ASC]

其中:

  • ORDER BY 表示对SELECT语句查询得到的结果,按字段名进行排序;
  • DESC表示排序的顺序为降序,ASC表示排序的顺序为升序;
  • [ ]”包含的内容可以省略。

12.LIMIT关键字

语法:

SELECT * FROM 表名 LIMIT [n , m ]

其中:

  • LIMIT关键字是MySQL特有关键字;
  • LIMIT限制SELECT返回结果的行数;
  • n 表示第一条记录的偏移量,m 表示显示记录的数量;
  • [ ]”包含的内容可以省略
13.LIMIT实现分页显示的方式

数据总量:SELECT COUNT(主键字段) FROM 表 WHERE 条件;

分页显示: SELECT 字段1,字段2...字段n FROM 表 WHERE 条件

                   LIMIT ( 当前页码 - 1 ) * 页面容量页面容量

14.MySql8新关键词OFFSET

语法:

        SELECT * FROM 表名 limit m offset n

其中:

  • LIMIT关键字是MySQL特有关键字;
  • LIMIT限制SELECT返回结果的行数;
  • n 表示第一条记录的偏移量,m 表示显示记录的数量;
  • [ ]”包含的内容可以省略。

上述总结: 

DML语句内容?

       INSERT语句,UPDATE语句和DELETE语句;

新增语句如何实现多记录同时新增?

INSERT INTO `表名` (`字段1`,`字段n`) VALUES (值1,值n),(值1,值n),(值1,值n);

WHERE子句的功能?

依赖逻辑条件对数据库的记录修改,删除或者查询;

TRUNCATE语句和DELETE语句的异同?

相同点:都能删除数据,都不能修改表结构;

不同点:

  1. 前者会重置自增计数器,后者不会;
  2. 前者无条件约束,速度快效率高。

DQL语句内容

        SELECT语句。

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值