Python学习打卡:day16

news2024/10/7 16:17:06

day16

笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了

目录

  • day16
    • 116、SQL 基础和 DDL
      • SQL的概述
      • SQL语言的分类
      • SQL的语法特征
      • DDL — 库管理
      • DDL — 表管理
    • 117、SQL — DML
      • DML概述
      • 数据插入 INSERT
      • 数据删除 DELETE
      • 数据更新 UPDATE
    • 118、SQL — DQL — 基础查询
    • 119、SQL — DQL — 分组聚合
    • 120、SQL — DQL — 排序分页

116、SQL 基础和 DDL

SQL的概述

SQL全称: Structured Query Language,结构化查询语言,用于访问和处理数据库的标准的计算机语言

简单来说,SQL语言就是操作数据库的专用工具

SQL语言的分类

由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等等。

所以,操作数据库的SQL语言,也基于功能,可以划分为4类:

  • 数据定义:DDL(Data Definition Language)

    • 库的创建删除、表的创建删除等
  • 数据操纵:DML(Data Manipulation Language)

    • 新增数据、删除数据、修改数据等
  • 数据控制:DCL(Data Control Language)

    • 新增用户、删除用户、密码修改、权限管理等
  • 数据查询:DQL(Data Query Language)

    • 基于需求查询和计算数据

SQL的语法特征

  • SQL语言,大小写不敏感

  • SQL可以单行或多行书写,最后以;号结束

  • SQL支持注释:

    • 单行注释: -- 注释内容(--后面一定要有一个空格)

    • 单行注释:# 注释内容(# 后面可以不加空格,推荐加上)

    • 多行注释:/* 注释内容 */

DDL — 库管理

  1. 查看数据库:

    show databases;
    
  2. 使用数据库:

    use 数据库名称;
    
  3. 创建数据库:

    create database 数据库名称 [CHARSET UTF8];
    
  4. 删除数据库:

    drop database 数据库名称; 
    
  5. 查看当前使用的数据库:

    select database();
    

DDL — 表管理

  1. 查看哪些表

    show tables;
    
  2. 删除表

    drop table 表名称; 
    drop table if exists 表名称;
    
  3. 创建表

    create table 表名称(
        列名称 列类型,
        列名称 列类型,
    	......
    );
    

117、SQL — DML

DML概述

DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。

关键字:

  1. 插入 INSERT
  2. 删除 DELETE
  3. 更新 UPDATE

数据插入 INSERT

基础语法:
在这里插入图片描述

示例代码:

create table student(
	id int,
	name varchar(10),
	age int
);

# insert 语法
# 仅插入 id 列数据
insert into student(id) values(1), (2), (3);

# 插入全部列数据
insert into student(id, name, age) values(4, '周杰伦', 31), (5, '林俊杰', 33);

# 插入全部列数据,快捷写法
insert into student values(6, '张学友', 31), (7, '王力宏', 33);

tips

  1. 插入字符串数据,需要用单引号包围;
  2. 插入全部列的时候,列的列表可以省略。

数据删除 DELETE

基础语法:
在这里插入图片描述
在这里插入图片描述

示例代码:

create table student(
	id int,
	name varchar(10),
	age int
);

# delete 语法
# 删除 id 为 1 的数据
delete from student where id=1;

# 删除 id 小于 4 的数据
delete from student where id < 4;

# 删除 id 大于 6 的数据
delete from student where id > 6;

# 删除 age 等于 33 的数据
delete from student where age = 33;

# 删除 student 表中的所有数据
delete from student;

数据更新 UPDATE

基础语法:

在这里插入图片描述
在这里插入图片描述

示例代码:

create table student(
	id int,
	name varchar(10),
	age int
);

# update 语法
insert into student(id, name, age) values(4, '周杰伦', 31), (5, '林俊杰', 33);

# 修改 id 为 4 的 name 为张学友
update student set name = '张学友' where id=4;

# 修改全部数据的 name 为张学友
update student set name = '王力宏';

tips

字符串的值,出现在SQL语句中,必须要用单引号包围起来。

118、SQL — DQL — 基础查询

在SQL中,通过 SELECT 关键字开头的 SQL 语句,来进行数据的查询。

基础语法:
在这里插入图片描述

含义就是:从(FROM)表中,选择(SELECT)某些列进行展示

示例代码:

# 步骤 1,创建完即屏蔽
create table student_1(
	id int,
	name varchar(15),
	age int,
	gender varchar(4)
);

# 步骤 2,创建完即屏蔽
insert into student_1(id, name, age, gender) values
(10001, 'zhoujielun', 31, 'nan'), 
(10002, 'wanglihong', 33, 'nan'),
(10003, 'caiyilin', 35, 'nv'),
(10004, 'linzhilin', 36, 'nv'),
(10005, 'liudehua', 33, 'nan'),
(10006, 'zhangdashan', 10, 'nan'),
(10007, 'liuzhilong', 11, 'nan'),
(10008, 'wangxiaoxiao', 33, 'nv'),
(10009, 'zhangyimei', 20, 'nv'),
(10010, 'wangyiqian', 13, 'nv'),
(10011, 'chengyixun', 31, 'nan'),
(10012, 'zhangxiaoguang', 33, 'nan'),
(10013, 'lidaxiao', 15, 'nan'),
(10014, 'lvtiantian', 36, 'nv'),
(10015, 'zengyueyue', 31, 'nv'),
(10016, 'liujiahui', 21, 'nv'),
(10017, 'xiangyufan', 23, 'nan'),
(10018, 'liudeqiang', 26, 'nan'),
(10019, 'wangqiangqiang', 11, 'nan'),
(10020, 'linzhihui', 25, 'nv');

# 步骤 3
# 从某个表中选取某些列进行展示
-- select id, name, age, gender from student_1;
select * from student_1;

-- select * from student_1 where age > 20;
select * from student_1 where gender = 'nan'; 

结果1:
在这里插入图片描述

结果2:
在这里插入图片描述

tips:使用快捷键 ctrl + Enter 执行程序时,要注意只会执行到光标所在位置!

119、SQL — DQL — 分组聚合

分组聚合应用场景非常多,如:统计班级中,男生和女生的人数。

这种需求就需要:

  • 按性别分组
  • 统计每个组的人数

这就称之为:分组聚合。

基础语法:
在这里插入图片描述
在这里插入图片描述

示例代码:

create table student_1(
	id int,
	name varchar(15),
	age int,
	gender varchar(4)
);

insert into student_1(id, name, age, gender) values
(10001, 'zhoujielun', 31, 'nan'), 
(10002, 'wanglihong', 33, 'nan'),
(10003, 'caiyilin', 35, 'nv'),
(10004, 'linzhilin', 36, 'nv'),
(10005, 'liudehua', 33, 'nan'),
(10006, 'zhangdashan', 10, 'nan'),
(10007, 'liuzhilong', 11, 'nan'),
(10008, 'wangxiaoxiao', 33, 'nv'),
(10009, 'zhangyimei', 20, 'nv'),
(10010, 'wangyiqian', 13, 'nv'),
(10011, 'chengyixun', 31, 'nan'),
(10012, 'zhangxiaoguang', 33, 'nan'),
(10013, 'lidaxiao', 15, 'nan'),
(10014, 'lvtiantian', 36, 'nv'),
(10015, 'zengyueyue', 31, 'nv'),
(10016, 'liujiahui', 21, 'nv'),
(10017, 'xiangyufan', 23, 'nan'),
(10018, 'liudeqiang', 26, 'nan'),
(10019, 'wangqiangqiang', 11, 'nan'),
(10020, 'linzhihui', 25, 'nv');

select gender, avg(age), sum(age), min(age), max(age), count(*) from student_1 group by gender;

tips:SELECT 中,除了聚合函数外,GROUP BY 了哪个列,哪个列在能出现在 SELECT 中。

常规字段只有在 GROUP BY 后出现过才能 加在 select 关键字之后,聚合函数中的参数除外。

120、SQL — DQL — 排序分页

1、可以对查询的结果,使用 ORDER BY 关键字,指定某个列进行排序。

基本语法:
在这里插入图片描述

create table student_1(
	id int,
	name varchar(15),
	age int,
	gender varchar(4)
);

insert into student_1(id, name, age, gender) values
(10001, 'zhoujielun', 31, 'nan'), 
(10002, 'wanglihong', 33, 'nan'),
(10003, 'caiyilin', 35, 'nv'),
(10004, 'linzhilin', 36, 'nv'),
(10005, 'liudehua', 33, 'nan'),
(10006, 'zhangdashan', 10, 'nan'),
(10007, 'liuzhilong', 11, 'nan'),
(10008, 'wangxiaoxiao', 33, 'nv'),
(10009, 'zhangyimei', 20, 'nv'),
(10010, 'wangyiqian', 13, 'nv'),
(10011, 'chengyixun', 31, 'nan'),
(10012, 'zhangxiaoguang', 33, 'nan'),
(10013, 'lidaxiao', 15, 'nan'),
(10014, 'lvtiantian', 36, 'nv'),
(10015, 'zengyueyue', 31, 'nv'),
(10016, 'liujiahui', 21, 'nv'),
(10017, 'xiangyufan', 23, 'nan'),
(10018, 'liudeqiang', 26, 'nan'),
(10019, 'wangqiangqiang', 11, 'nan'),
(10020, 'linzhihui', 25, 'nv');

# order by 默认是升序
select * from student_1 where age > 20 order by age asc ;

# 降序
select * from student_1 where age > 20 order by age desc ;

2、可以使用 LIMIT 关键字,对查询结果进行数量限制或分页显示。

基本语法:
在这里插入图片描述

create table student_1(
	id int,
	name varchar(15),
	age int,
	gender varchar(4)
);

insert into student_1(id, name, age, gender) values
(10001, 'zhoujielun', 31, 'nan'), 
(10002, 'wanglihong', 33, 'nan'),
(10003, 'caiyilin', 35, 'nv'),
(10004, 'linzhilin', 36, 'nv'),
(10005, 'liudehua', 33, 'nan'),
(10006, 'zhangdashan', 10, 'nan'),
(10007, 'liuzhilong', 11, 'nan'),
(10008, 'wangxiaoxiao', 33, 'nv'),
(10009, 'zhangyimei', 20, 'nv'),
(10010, 'wangyiqian', 13, 'nv'),
(10011, 'chengyixun', 31, 'nan'),
(10012, 'zhangxiaoguang', 33, 'nan'),
(10013, 'lidaxiao', 15, 'nan'),
(10014, 'lvtiantian', 36, 'nv'),
(10015, 'zengyueyue', 31, 'nv'),
(10016, 'liujiahui', 21, 'nv'),
(10017, 'xiangyufan', 23, 'nan'),
(10018, 'liudeqiang', 26, 'nan'),
(10019, 'wangqiangqiang', 11, 'nan'),
(10020, 'linzhihui', 25, 'nv');

# 升序筛选 5 条
select * from student_1 limit 5;
# 从第 10 个开始,升序筛选 5 条
select * from student_1 limit 10, 5;

select age, count(*) from student_1 where age > 20 group  by age order by age limit 3;

排序和分页限制语法关键词顺序如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1866065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flink输出中文乱码

flink输出中文乱码 &#xff08;1&#xff09;首先在/etc/profile.d/my_env.sh中加入下面这行数据 export LANGzh_CN.UTF-8&#xff08;2&#xff09;其次在flink配置文件中指定编码 [xxxhadoop102 flink-1.13.6]$ vim conf/flink-conf.yaml加入下面这行数据 env.java.opts:…

A股探底回升,跑出惊天大阳,你们知道为什么吗?

今天的A股&#xff0c;探底回升&#xff0c;让人惊呆了&#xff0c;你们知道是为什么吗&#xff1f;盘面上出现3个重要信号&#xff0c;一起来看看&#xff1a; 1、今天A股市场炸锅了&#xff0c;AI人工智能、国产软件、存储芯片迎来了涨停潮&#xff0c;惊呆了&#xff0c;科技…

【MySQL事务】深刻理解事务隔离以及MVCC

文章目录 什么叫事务事务的提交方式常见的事务操作方式事务的开始与回滚总结 事务的隔离设置隔离级别解释脏读解释幻读解释不可重复读为什么可重复读不能解决幻读问题&#xff1f;总结 数据库并发的场景MVCC隐藏列字段undo日志Read view RR和RC的本质区别总结 什么叫事务 在My…

游戏AI的创造思路-技术基础-sigmoid函数详解

在前面的机器学习和深度学习的内容中&#xff0c;大量出现了sigmoid函数&#xff0c;所以本篇为大家介绍下sigmoid函数&#xff0c;希望对大家理解前面的算法和后面的Transformer有所帮助 目录 3.8. sigmoid函数 3.8.1. 定义 3.8.2. 性质 3.8.3. 应用 3.8.4. 缺点 3.8.5.…

sd卡一插上就提示格式化是怎么回事?sd卡数据如何恢复?

sd卡一插上就提示格式化是怎么回事&#xff1f;里面的数据怎么办&#xff1f;下面小编总结了SD卡提示格式化的原因和对应解决办法分享给大家&#xff01; SD卡好好的&#xff0c;为什么一插电脑上就提示需要格式化呢&#xff1f;当SD卡提示格式化时&#xff0c;可以考虑下面几类…

VS Code 配置cmake(Linux环境)

通过sudo apt install cmake在linux上安装cmake 在Vs Code中安装这两个插件 通过命令whereis cmake获取linux中cmake的路径信息 右键CMake Tools右下角齿轮标志&#xff0c;选择扩展设置&#xff08;Extension Settings&#xff09; 注意要设置的是本地&#xff0c;还是远程连接…

【UE5.3】笔记3-静态网格体,BSP

静态网格体组件 主要有两个属性 一个是静态网格体&#xff1a;对应的也就是模型&#xff0c;比如fbx&#xff0c;maya&#xff0c;obj等格式 一个是材质&#xff1a;由各种贴图、渲染设置等&#xff0c;比如unity里的shader BSP画刷&#xff1a; 打开放置Actor选项卡&#…

SpringAOP执行流程——从源码画流程图

文章目录 了解ProxyFactory入门操作添加多个Advice的执行顺序关于异常Advice关于proceed()方法指定方法才进行增强逻辑 创建代理对象的其他方式ProxyFactoryBeanBeanNameAutoProxyCreatorDefaultAdvisorAutoProxyCreator 对SpringAOP的理解TargetSourceProxyFactory选择JDK/CJL…

我对AI赋能的未来畅想

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

C# 入门—实现 Hello, World!

目录 一、.net 平台 二、.net 都能干什么&#xff1f; 三、.net 两种交互模式 四、使用 VS Code 开发 C# 程序 五、实现 Hello, World! 一、.net 平台 下载 .NET(Linux、macOS 和 Windows) (microsoft.com) .NET 简介 - .NET | Microsoft Learn C# :一种编程语言,可以开…

python-docx 设置页面边距、页眉页脚高度

本文目录 前言一、docx 页面边距在哪里二、对 <w:pgMar> 的详细说明1、上边距的说明2、右边距的说明3、下边距的说明4、左边距的说明5、页眉高度的说明6、页脚高度的说明三、设置 docx 页边距、页眉页脚高度1、完整代码2、代码执行效果图四、补充一些内容1、页面边距的两…

jenkins中执行docker命令

1. 修改docker.sock文件的所属组 命令如下&#xff1a; sudo chown root:root docker.sock 2. 对这个文件赋予权限&#xff0c;供其他用户使用&#xff0c;给定权限命令如下&#xff1a; sudo chmod orw docker.sock 3. docker容器映射 这里需要两个文件&#xff1a; 一个…

PS教程29

图层蒙版 以案例来解释蒙版的作用 将这两张图片原框背景切换将图二的背景选中使用套索工具选中区域切换图一CtrlA全选CtrlC复制编辑-选择性粘贴-贴入即可贴入如果位置不对用移动工具进行调整 这就是图层蒙版 图层蒙版本质作用&#xff1a;是临时通道&#xff0c;支持黑白灰三种…

火车头采集器Discuz采集发布模块插件

火车头采集器怎么采集发布数据到Discuz系统的论坛帖子或门户文章&#xff1f; 可按照以下步骤配置&#xff1a; 1. 火车头采集器Discuz采集发布插件下载安装&#xff1a; 火车头采集器Discuz发布模块插件下载地址-CSDN 2. 在火车头采集器工具导入Discuz采集发布模块插件&am…

Java 8 新特性:Lambda表达式让你的代码焕然一新——掌握它,让编程变得轻松又高效!

前言 Java 8 是 Java 发展史上的一次重要里程碑。作为企业级开发语言&#xff0c;它在性能和功能上做了巨大的提升。这其中&#xff0c;Lambda表达式是一个关键的新特性&#xff0c;它为 Java 语言带来了函数式编程的概念。本篇文章将深入探讨Lambda表达式&#xff0c;并结合热…

【Linux】解锁并发:多线程同步技术详解与应用实践

文章目录 前言&#xff1a;1. 同步概念2. 条件变量&#xff1a;实现线程间同步的&#xff01;2.1. 条件变量是什么&#xff1f;2.2. 认识条件变量接口 3. 写一个测试代码——验证线程的同步机制4. 生产消费模型5. 生产消费模型 条件变量6. 线程池7. 可重入 VS 线程安全7.1. 概…

使用Python进行大数据处理Dask与Apache Spark的对比

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python进行大数据处理Dask与Apache Spark的对比 随着数据量的增加和数据处理需求的增长…

基于IM948(Low-cost IMU+蓝牙)模块的高精度PDR(Pedestrian Dead Reckoning)定位系统 — 可以提供模块和配套代码

一、背景与意义 行人PDR定位系统中的PDR&#xff08;Pedestrian Dead Reckoning&#xff0c;即行人航位推算&#xff09;背景意义在于其提供了一种在GPS信号不可用或不可靠的环境下&#xff0c;对行人进行精确定位和导航的解决方案。以下是关于PDR背景意义的详细描述&#xff1…

Go语言学习:每日一练1

Go语言学习&#xff1a;每日一练1 目录 Go语言学习&#xff1a;每日一练1变量声明函数定义流程控制 ifrange遍历switch 变量声明 package main//定义变量 var a 1 const Message “hello,world”func main() {b : 2 //短变量声明var c 3c TestMethod(a, b, c)} //定义函数…

【UE5.3】笔记2--资源导入

资源导入 方式一&#xff1a;内置资源--初学者内容包 方式二&#xff1a;虚幻商城 搜索免费资源&#xff1a; 添加到工程之后 搜素&#xff1a;虚幻学习工具包&#xff0c;需要注意的是支持的引擎版本 当然商城里包含了大量的免费的资源&#xff0c;初期学习不想投入太多可以…