然后建设自营网站seo软件简单易排名稳定
web/
2025/10/7 0:01:07/
文章来源:
然后建设自营网站,seo软件简单易排名稳定,网站流量监测,全国知名网站排名目录
一、Mysql对数据的增删改
1. 增加数据#xff08;INSERT语句#xff09;
2. 修改数据#xff08;UPDATE语句#xff09;
编辑
WHERE子句#xff08;⭐#xff09;#xff1a;
编辑
3. 删除数据#xff08;DELETE语句#xff09;
删除数据#xff0…目录
一、Mysql对数据的增删改
1. 增加数据INSERT语句
2. 修改数据UPDATE语句
编辑
WHERE子句⭐
编辑
3. 删除数据DELETE语句
删除数据TRUNCATE语句
面试题
4. 计算列MySql8 新特性
二、数据的备份和还原
三、单表查询
1. DQL语言
2. 查询语句语法规则
指定字段列
编辑
表别名和字段别名
DISTINCT
WHERE条件子句
LIKE 关键字
IN 关键字
NULL 值查询
ORDER BY排序
LIMIT关键字
MySql8新关键词OFFSET
3. 常用的聚合函数⭐⭐
3.1 GROUP BY
3.2 HAVING
4. 扩展
四、总结 一、Mysql对数据的增删改 DML数据操作语言 Data Manipulation Language 用于对数据库中数据的增删改操作 数据增加关键字INSERT主要功能是 给数据库表增加记录。 数据修改关键字是UPDATE主要功能是 修改数据库表中已有的记录。可 以根据条件去做修改。 数据删除关键字DELETE主要功能室删除 数据库表中已有的记录。可以依 照条件去做修改。 1. 增加数据INSERT语句 语法 INSERT INTO 表名 [(字段1,字段2,...字段n)]VALUES/VALUE (值1,值2,...值n)[,(值1,值2,...值n)...];其中
•“[]” 包含的内容可以省略
• 字段或值之间用英文逗号隔开
• 可同时插入多条数据values 后用英文逗号隔开
• values和value的方式均可。-- 全字段插入数据
-- 日期要用字符串的形式书写成日期格式
insert into student(sid,sname,birthday,ssex,classid)
values(9,张三,2000-1-1 14:30:59,男,1);
-- 不写字段名就是全字段插入
insert into
student
values(null,李四,1999-2-2,女,1
);insert into student
values(default,李四,1999-2-2,女,1); -- 部分字段插入
-- 其他的字段不能有not null约束如果有默认值也可以
insert into student(sname) values(王五); 一次性插入多条数据 方式一 -- 一次性插入多条数据
-- 方式一推荐使用
insert into student(sname,ssex)
values (唐三藏,男),(孙悟空,男),(猪悟能,男),
(沙悟净,男); 方式二 INSERT INTO SELECT 语句从一个表复制数据然后把数据插入到一个已存在的表中。 目标表中任何已存在的行都不会受影响。 语法 INSERT INTO table2(column_name,...)SELECT column_name,...FROMtable1;其中
• table2 必须存在将table1中数据赋值到table2中 -- 方式二不推荐
-- 目标表必须要事先存在
create table stu1(stuid int primary key auto_increment,xingming varchar(10),xingbie varchar(2),classid int
);
-- insert into 目标表 select insert into stu1(xingming,xingbie,classid)
select sname,ssex,classid from student; 方式三 -- 方式三不推荐
-- 目标表不能存在
-- create table 目标表 select
create table newstu
select sid,sname,birthday from student; 2. 修改数据UPDATE语句 语法 UPDATE 表名 SET 字段名1 值1 [ , 字段名2 值2, …. ]
[ WHERE 条件];其中
•“[]” 包含的内容可以省略
• 字段名为要更改数据的字段值表示字段改后的值注意字段和值的对应
• 可同时修改多个字段多个字段后用英文逗号隔开
•“WHERE”是where子句可以给修改增加条件
• 条件为筛选条件如不指定则修改该表的所有列数据。 -- 修改
update 表名 set 字段名值,字段名值...,字段名值 【where 子句】-- 数据库的值全部改变
-- 受影响的行数 -- 避免过多的读写IO数据库update stu1 set xingbie 男; WHERE子句⭐ 有条件的从数据库表中获取记录通常同在修改删除和查询语句的时候协助该类语句从条件中获取 记录。针对修改和删除语句如果没有条件则全部修改和全部删除。 运算符含义举例结果等于56false 或 !不等于5!6true大于56false小于56true大于等于56false小于等于56trueBETWEEN在某个范围之间BETWEEN 5 AND 10-AND并且51 AND 12falseOR或51 OR 12TrueNot非 -- where 条件是整张表每一条数据进行判断 ****
update stu1 set xingbie 女 where xingming王五;where 针对表中每一行数据 -- where 条件是整张表每一条数据进行判断 ****
update stu1 set xingbie 女 where xingming王五;-- 范围形
-- 方式一
-- 闭合区间
update stu1 set classid 100
where stuid 10 and stuid 15; -- 方式二 -- between 跟较小的数据 and 较大的数据
update stu1 set classid 300
where stuid between 10 and 15; 3. 删除数据DELETE语句 语法 DELETE FROM 表名 [ WHERE 条件];其中
•“[]” 包含的内容可以省略
• “WHERE”可以通过where子句增加删除的条件。 -- 删除
-- delete from 表名 【where 子句】
delete from stu1 insert into stu1(xingming) values(张三) 删除数据TRUNCATE语句 语法 TRUNCATE [TABLE] 表名其中
• TRUNCATE是一个特殊的删除语句又叫做清空语句
• “[]”包含的内容可以省略
• 功能清空某一张表内的全部数据重置自增计数器
• 特点由于没有条件约束所以速度快,而且效率高。-- 清空表
-- truncate 表名
truncate stu1 面试题 drop truncate delete 区别 drop 包表结构索引数据全部删掉truncate 只保留表结构 索引和数据删掉delete 只删数据 4. 计算列MySql8 新特性 什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。 例如a列值为1、b列值为2c列不需要手动插入定义ab的结果为c的值那么c就是计算列是通过别的列计算得来的。 在MySQL8.0中CREATE TABLE 和 ALTER TABLE 中都支持增加计算列。下面以CREATE TABLE为例进行讲解。 举例:定义数据表tb1然后定义字段id、字段a、字段b和字段c其中字段c为计算列用于计算ab的值。 -- 计算列
CREATE TABLE jsltab(id INT PRIMARY KEY AUTO_INCREMENT,a INT ,b INT ,c INT GENERATED ALWAYS AS (a b) VIRTUAL
);
select * from jsltab
insert into jsltab(a,b) values(2,3),(200,300) 二、数据的备份和还原 方法一使用工具 备份 选中需要备份的 右键 选择转储SQL文件 恢复 右键 点击运行SQL文件 选择备份的文件即可 方法二使用dos命令 数据库备份和恢复的作用和价值主要体现在以下几个方面 高可用性使数据库的失效次数减到 最少,从而使数据库保持 最大的可用性。安全性计算机病毒型、特洛伊木马型、“黑客”入侵型、 逻辑炸弹型等会造成信息丢失丢失的数据需要及时恢复。完整性当数据库失效后,确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的完整性。 三、单表查询
1. DQL语言 DQL(Data Query Language 数据查询语言)。用途是查询数据库数据如SELECT语句。是SQL语句中最核心、最重要的语句也是使用频率最高的语句。其中可以根据表的结构和关系分为单表查询和多表联查。 单表查询针对数据库中的一张数据表进行查询可以通过各 种查询条件和方式去做相关的优化。多表联查针对数据库中两张或者两张以上的表同时进行查询 依赖的手段有复杂查询和嵌套查询。 2. 查询语句语法规则 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按组分类显示查询出的数据。HAVINGGROUP BY分组时依赖的分组条件。ORDER BY将查询出来的结果集按照一定顺序排序完成。LIMIT限制显示查询结果的条数。 #DQL
-- 所有的查询都会得到一张虚拟表
-- 数据查询
-- 最简单的查询
select abc;
select 123;
select 11; 指定字段列 语法 SELECT * | 字段名1, 字段名2... FROM 表名其中“*”表示所查询的数据库表的全部字段。-- 从表中查询数据
-- select from 表名
-- 全字段查询
select Sid,Sname,birthday,Ssex,classid from student;
select * from student;-- 部分字段查询
select Sname,Ssex from student; 表别名和字段别名 语法 SELECT 表别名.字段名1 AS 字段别名1, 表别名.字段名2 AS 字段别名2
FROM 表名 AS 表别名其中
• “.” 当前表存在的字段
• “AS”可忽略不写“AS”的功能如下• 给字段取一个新别名• 给表取一个新别名• 把经计算或总结的结果用另外一个新名称来代替。-- 给字段起别名
select Sname as 学生姓名 ,Ssex from student;select Sname as 学生姓名 ,Ssex 学生性别, birthday 学生生日 from student; -- 添加一个学校的字段
select Sname 学生姓名, xynu 学校 from student; DISTINCT 语法 SELECT DISTINCT 字段名1, 字段名2... FROM 表名其中去掉SELECT查询返回的记录结果中重复的记录所有返回列的值都相同
只返回一条。 -- 查询学生表中性别的数据
-- distinct 去除重复的数据
-- 去重机制 完全一致
select distinct Ssex from student; WHERE条件子句 语法 SELECT * FROM 表名 [ WHERE 条件];其中
• WHERE条件子句不是必须的
• WHERE子句可以给查询增加条件
• 条件为筛选条件如不指定则修改该表的所有数据。 -- 带条件的查询 where子句
select * from student
where Ssex 男 and classid 1; 练习 -- 查询Sid 2-6 的学生
select * from student
where Sid 2 and Sid 6; select * from student
where Sid between 2 and 6; -- 查询出年龄大于1990-1-1的学生
select * from student
where birthday 1990-1-1; LIKE 关键字 语法 SELECT * FROM 表名 WHERE 字段 LIKE 条件;其中
• 在WHERE子句中使用LIKE关键字进行模糊查询
• 与“%”一起使用表示匹配0或任意多个字符
• 与“_”一起使用表示匹配单个字符。 -- like 模糊查询insert into student (sname) values
(张老师),(小张),(张美女),(姓张的老师);-- % 任意多的任意字符
-- _ 一个任意字符
select * from student where Sname like %张%;
select * from student where Sname like 张%;select * from student where Sname like %张_;
select * from student where Sname like %张__; IN 关键字 语法 SELECT * FROM 表名 WHERE 字段 IN (值1值2...)其中
• 查询的字段的值至少与IN 后的括号中的一个值相同
• 多个值之间用英文逗号隔开。 -- in 在特定的范围内
-- 13458
select * from student where Sid 1 or Sid 3 or Sid 4 or Sid 5 or Sid 8;
select * from student where Sid in (1,3,4,5,8);NULL 值查询 语法 SELECT * FROM 表名 WHERE 字段 IS NULL | IS NOT NULL其中
• NULL代表“无值”
• 区别于零值0和空符串
• 只能出现在定义允许为NULL的字段
• 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。 -- 对 null 的操作
select * from student where birthday is null;
select * from student where birthday is not null; ORDER BY排序 语法 SELECT * FROM 表名 ORDER BY 字段名 [DESC|ASC]其中
• ORDER BY 表示对SELECT语句查询得到的结果按字段名进行排序
• DESC表示排序的顺序为降序ASC表示排序的顺序为升序
•“[ ]”包含的内容可以省略。 -- 排序
-- asc 或不写就是升序
-- desc 降序
-- 先写先排select * from student order by classid desc, birthday asc; LIMIT关键字 语法 SELECT * FROM 表名 LIMIT [n , m ]其中
• LIMIT关键字是MySQL特有关键字
• LIMIT限制SELECT返回结果的行数
• n 表示第一条记录的偏移量m 表示显示记录的数量
•“[ ]”包含的内容可以省略。 -- 分页 limit 位置步长 如果不写位置 默认为0select * from student limit 0,3;select * from student limit 3,3;select * from student limit 6,3;select * from student limit (页码-1)*步长,步长;select * from student limit (2-1)*3,3; LIMIT实现分页显示的方式 MySql8新关键词OFFSET 语法 SELECT * FROM 表名 limit m offset n其中
• LIMIT关键字是MySQL特有关键字
• LIMIT限制SELECT返回结果的行数
• n 表示第一条记录的偏移量m 表示显示记录的数量
•“[ ]”包含的内容可以省略。-- offset 设置偏移量位置
select * from student limit 3 offset 6 3. 常用的聚合函数⭐⭐ 函数名返回值AVG(col)返回指定列的平均值COUNT(col)返回指定列中非NULL值的个数MIN(col)返回指定列的最小值MAX(col)返回指定列的最大值SUM(col)返回指定列的所有值之和 count -- ***** 聚合函数
-- count 个数 --全类型
-- count 不统计null
-- 学生表中一共有多少个人
select count(*) from student;
select count(abc) from student; -- 常量
select count(Sid) from student; select count(birthday) from student;-- null 不会被count计算到 -- 得到男同学的人数
select count(*) from student where Ssex男; sum -- sum 总和
select sum(score) from sc; 练习 -- max 最大值
-- min 最小值
-- avg 平均值-- 统计出sc表
-- 一共的考试次数 总成绩平均分 最高分最低分
-- sum 总和
select count(*) 考试次数,sum(score) 总成绩,avg(score) 平均分,max(score) 最高分,min(score) 最低分 from sc; 3.1 GROUP BY 对所有的数据进行分组统计分组的依据字段可以有多个并依次分组。 -- 查询出男同学和女同学各有多少个人
select count(*) from student where Ssex 男;select count(*) from student where Ssex 女;-- 上面两句等同于这句
select Ssex,count(*) from student group by Ssex; select Ssex,max(Sid) from student group by Ssex; 练习 -- 查出每个学生的平均分
select Sid,avg(score),count(*) from sc group by Sid; 3.2 HAVING 与GROUP BY结合使用进行分组后的数据筛选。 -- 找到平均分不及格的学生
select Sid,avg(score)from sc group by Sid having avg(score)60; where 和 having 的区别 where 必须出现在group by 前面 having 必须出现在group by 后面where筛选的聚合前的数据 每一行数据 having 筛选的是聚合后的数据 4. 扩展 在不同的 DBMS 中使用的关键字可能不同。在 MySQL、PostgresQL、MariaDB 和 sQLite 中使用 LIMIT 关键字而且需要放到 SELECT 语句的最后面。 如果是 SQL Server 和 Access需要使用 TOP 关键字比如:
SELECT TOP 5 name,hp_max FROM heros ORDER BY hp_max DESC如果是 DB2使用 FETCH FIRST 5 ROWS ONLY 这样的关键字:
SELECT name, hp_max FROM herOS ORDER BY hp_maX DESC FETCH FIRST 5 ROWS ONLY重要
如果是 Oracle你需要基于 ROWNUM 来统计行数:
SELECT rownum,last_name,salary FROM employees WHERE rownum 5 ORDER BY salary DESC; 四、总结 DML语句内容 INSERT语句,UPDATE语句和DELETE语句新增语句如何实现多记录同时新增 INSERT INTO 表名 (字段1,字段n) VALUES (值1值n),(值1值n),(值1值n); WHERE子句的功能 依赖逻辑条件对数据库的记录修改删除或者查询TRUNCATE语句和DELETE语句的异同 相同点都能删除数据都不能修改表结构不同点1、前者会重置自增计数器后者不会 2、前者无条件约束速度快效率高。DQL语句内容 SELECT语句。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88173.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!