python进阶06:MySQL

news2025/1/8 14:43:01

课后大总结

Day1

一、数据库命令总结

1.连接数据库

连接数据库进入mysql安装目录打开bin文件夹,输入cmd(此命令后无分号)
    mysql.exe -u root -p
    password命令后输入密码:root
设置密码
    set password=password("root123");
查看所有数据库
    show databases;
创建数据库
    create database day1db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
删除数据库
    drop database day1db;
进入数据库
    use day1db;
查看数据库中的表
    show tables;
退出数据库
    exit;

2.创建表

(1)创建表的基本语法格式(查阅豆包得出):

create table class(
    cid int not null auto_increment primary key,
    caption varchar(20) not null
)default charset=utf8;
create table student(
    sid int not null auto_increment primary key,
    sname varchar(20) not null,
    gender char(1) not null,
    class_id int not null,
    constraint fk_student_class foreign key (class_id) references class(cid)
)default charset=utf8;

 

CREATE TABLE [IF NOT EXISTS] table_name (
    column1 datatype constraint,
    column2 datatype constraint,
   ...
    columnN datatype constraint
);

        CREATE TABLE:这是创建表的关键字命令。

        [IF NOT EXISTS]:这是一个可选的部分。如果加上这个选项,当要创建的表名不存在时才会创建表。如果表已经存在,就不会执行创建操作,这样可以避免因为表名重复而导致的错误。

        table_name:这是要创建的表的名称,表名在数据库中应该是唯一的,并且要符合 MySQL 的命名规则(例如,表名通常由字母、数字和下划线组成,不能以数字开头等)。

        column1, column2,..., columnN:这些是表中的列名。每一列代表表中的一个数据字段,例如在一个学生表中,可能有student_id(学生编号)、student_name(学生姓名)等列。

        datatype:这是列的数据类型。MySQL 支持多种数据类型,如INT(整数型)、VARCHAR(可变长字符串)、DATE(日期型)等。不同的数据类型用于存储不同种类的数据,并且有不同的存储要求和限制。

        constraint:这是列的约束条件。约束用于定义列中数据的规则,常见的约束有PRIMARY KEY(主键约束,用于唯一标识表中的每一行)、NOT NULL(非空约束,规定列中的数据不能为空)、UNIQUE(唯一约束,保证列中的数据是唯一的)等。

3.数据类型datatype

1.整数
	int		表示有符号,取值范围:-2147483648~2147483647
	int unsigned	表示无符号,取值范围:0~4294967295
	int(5)zerofi11	仅用于显示,当不满足5位时,按照左边补0,例如:00002;满足时,正常显示。
	tinyint((m))[unsigned][zerofi11]
		有符号,取值范围:-128~127
		无符号,取值范围:0~ 255
	bigint[(m)][unsigned][zerofi11]
		有符号,取值范围:-9223372036854775808~9223372036854775807
		无符号,取值范围:0~18446744073709551615
2.小数
	decimal[(m[,d])][unsigned][zerofill]
		准确的小数值,m是数字总个数(负号不算),d是小数点后个数。m最大值为65,d最大值为30。
	FLOAT[(M,D)】[UNSIGNED][ZEROFILL]
		单精度浮点数,非准确小数值,m是数字总个数,d是小数点后个数。
	DOUBLE[ (M,D)][UNSIGNED][ZEROFILL]
		双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。
3.文本
	char(m)
		定长字符串,m代表字符串的长度,最多可容纳255个字符。
		定长的体现:即使内容长度小于m,也会占用m长度。例如:char(5),数据是:yes,底层也会占用5个字符;如果超出m长度限制(默认MySQL是严格模式,所以会报错)。
	varchar(m)
		变长字符串,m代表字符串的长度,最多可容纳65535个字节。
		变长的体现:内容小于m时,会按照真实数据长度存储;如果超出m长度限制((默认MySQL是严格模式,所以会报错)。
	text
		text数据类型用于保存变长的大字符串,可以组多到65535(2**16-1)个字符。一般情况下,长文本会用text类型。例如:文章、新闻等。
	mediumtext
		A TEXT column with a maximum length of16,777,215(2**24-1)characters.
	longtext
		TEXT column with amaximum length of4,294,967,295 or 4GB(2**32-1)
4.时间
	datetime
		YYYY-MM-DD HH:MM:SS(1000-01-01  00:00:00/9999-12-31 23:59:59)
	timestamp
	YYYY-MM-DD HH:MM:SS(1970-01-0100:00:00/2037年)
		对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储,查询时,将其又转化为客户端当前时区进行返回。

4.约定条件constraint

null		允许为空
not null		不允许为空
default 3		设置默认值为3,也可以设置为其他值
primary key	主键(不允许为空、不能重复)
auto_increment	自增

5.mysql增删改查

1.新增数据
	(1)新增单行数据
		insert into 表格(列名1,名2,列名3) values(数据1,数据2,数据3);
	(2)新增多行数据
		insert into 表格(列名1,名2,列名3) values(数据1,数据2,数据3),(数据4,数据5,数据6);
		说明:values后多行数据用逗号隔开。
	(3)不输入列名新增数据
		insert into 表格 values(数据1,数据2,数据3);
		说明:表示按默认列顺序插入数据,插入的数据数量必须和列的位置及数量一致,否则会报错。
2.删除数据
	delete from 表名;
	delete from 表名 where 条件;
	说明:
	       1.条件用“=”“>”,"<",">=","<=","!="等符号表示,切记不用python中的“==”。
	       2.条件可以使用and和or连接符进行连接。
3.修改数据
	update 表名 set 列名=值 where 条件;
	说明:
           1.值可以是一个具体的数值,也可以是表达式,也可以是一个函数(见mysql函数总结)。
	       2.条件用法同删除数据中的where中条件用法。
	       3.如果不添加where条件是不是修改的为整列数据,操作验证一下。
4.查询数据
	select * from 表名;		查询所有数据
	select 列名1,列名2,列名3 from 表名;		查询表中名称为列名1,列名2,列名3中的数据
	select * from 表名 where 条件;	查询表中符合where条件的数据
	select 列名1,列名2,列名3 as 别名1,别名2,别名3 from 表名;		查询表中名称为列名1,列名2,列名3中的数据,显示结果时对应的列名分别为别名1,别名2,别名3

6.mysql函数

来自豆包。

 (1)数学函数

ABS()
        功能:返回一个数的绝对值。 示例:ABS(-5)返回5。

CEIL()、CEILING()
        功能:返回大于或等于给定数字的最小整数。 示例:CEIL(4.2)返回5,CEILING(4.8)也返回5。

FLOOR()
        功能:返回小于或等于给定数字的最大整数。 示例:FLOOR(4.8)返回4。

ROUND()
        功能:对给定数字进行四舍五入。可以指定小数位数。 示例:ROUND(4.4)返回4,ROUND(4.5)返回5,ROUND(4.123, 2)返回4.12(保留两位小数)。

TRUNCATE()
        功能:截断数字,直接舍去指定小数位数后的数字。 示例:TRUNCATE(4.123, 2)返回4.12。

MOD ()、%(取模运算符)
        功能:返回除法运算的余数。 示例:MOD(7, 3)或7 % 3都返回1。

POW()、POWER()
        功能:计算一个数的幂次方。 示例:POW(2, 3)或POWER(2, 3)都返回8(计算 2 的 3 次方)。

SQRT()
        功能:计算一个数的平方根。 示例:SQRT(9)返回3。

(2)字符串函数

CONCAT()
        功能:将多个字符串连接成一个字符串。 示例:CONCAT('Hello', ', ', 'World')返回Hello, World。

SUBSTRING()、MID()
        功能:从字符串中提取子字符串。可以指定起始位置和长度。 示例:SUBSTRING('Hello World', 7, 5)或MID('Hello World', 7, 5)都返回World(从第 7 个字符开始取 5 个字符)。

LEFT()
        功能:从字符串的左边提取指定长度的子字符串。 示例:LEFT('Hello World', 5)返回Hello。

RIGHT()
        功能:从字符串的右边提取指定长度的子字符串。 示例:RIGHT('Hello World', 5)返回World。

LENGTH()、CHAR_LENGTH()
        功能:返回字符串的长度。对于多字节字符集,CHAR_LENGTH()更准确。 示例:LENGTH('Hello')返回5,CHAR_LENGTH('你好')返回2。

LOWER()、LCASE()
        功能:将字符串转换为小写。 示例:LOWER('HELLO')或LCASE('HELLO')都返回hello。

UPPER()、UCASE()
        功能:将字符串转换为大写。 示例:UPPER('hello')或UCASE('hello')都返回HELLO。

REPLACE()
        功能:替换字符串中的指定子字符串。 示例:REPLACE('Hello World', 'World', 'MySQL')返回Hello MySQL。

TRIM()、LTRIM()、RTRIM() 功能:去除字符串两端(TRIM())、左边(LTRIM())或右边(RTRIM())的空格或指定字符。 示例:TRIM(' Hello ')返回Hello,LTRIM(' Hello')返回Hello,RTRIM('Hello ')返回Hello。

(3)日期和时间函数

CURRENT_DATE()、CURDATE()
        功能:返回当前日期。 示例:CURRENT_DATE()或CURDATE()在执行时返回当天日期,格式为YYYY - MM - DD。

CURRENT_TIME()、CURTIME()
        功能:返回当前时间。 示例:CURRENT_TIME()或CURTIME()在执行时返回当前时间,格式为HH:MM:SS。

NOW()、SYSDATE()
        功能:返回当前日期和时间。 示例:NOW()和SYSDATE()在执行时返回当前日期和时间,格式为YYYY - MM - DD HH:MM:SS。

DATE_ADD()、ADDDATE()
        功能:向日期添加指定的时间间隔。可以是年、月、日、小时、分、秒等。 示例:DATE_ADD('2023 - 01 - 01', INTERVAL 1 DAY)或ADDDATE('2023 - 01 - 01', 1)都返回2023 - 01 - 02(向后加 1 天)。

DATE_SUB()、SUBDATE()
        功能:从日期中减去指定的时间间隔。 示例:DATE_SUB('2023 - 01 - 01', INTERVAL 1 DAY)或SUBDATE('2023 - 01 - 01', 1)都返回2022 - 12 - 31(向前减 1 天)。

DATEDIFF()
        功能:计算两个日期之间的天数差。 示例:DATEDIFF('2023 - 01 - 03', '2023 - 01 - 01')返回2。

TIMEDIFF()
        功能:计算两个时间之间的时间差。 示例:TIMEDIFF('10:00:00', '09:00:00')返回01:00:00。

(4)聚合函数

COUNT()
        功能:统计行数。可以用于统计某个列的非空值数量或者整个表的行数。 示例:COUNT(*)统计表中的所有行数,COUNT(column_name)统计column_name列的非空值数量。

SUM()
        功能:计算某列数值的总和。 示例:对于一个sales表中的amount列,SUM(amount)可以计算总销售额。

AVG()
        功能:计算某列数值的平均值。 示例:对于一个scores表中的score列,AVG(score)可以计算平均分数。

MAX()
        功能:返回某列中的最大值。 示例:在一个prices表中的price列,MAX(price)返回最高价格。

MIN()
        功能:返回某列中的最小值。 示例:在一个temperatures表中的temperature列,MIN(temperature)返回最低温度。

(5)其他函数

IF()
        功能:根据条件返回不同的值。类似于编程语言中的条件判断。 示例:IF(condition, value_if_true, value_if_false),如IF(score > 60, 'Pass', 'Fail')根据score的值判断是否及格。 CASE WHEN...THEN...ELSE...END
        功能:实现更复杂的条件判断和返回值。

7.python操作excel语法

Day2

Day3

Day4

Day1

1 MySQL数据库概述

2今日概要

3 windows系统-MySQL环境

 

 

 老师说,加环境变量自己加。

4 mac系统-MySQL环境搭建

5 配置和密码相关

6 数据库的管理

命令汇总:

查看所有数据库
show databases;
创建数据库
create database day1db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
删除数据库
drop database day1db;
进入数据库
use day1db;
查看数据库中的表
show tables;

7 数据表的管理

管理表命令

创建表
create table tab1(
    id int,
    name varchar(16)
)default charset=utf8;

查看列名
desc tab1;

create table L1(
    id int,
    uid int unsigned,
    zid int(6) zerofill
)default charset=utf8;

 # 学习进度12:31

8 数据表-列类型-整型

9 数据表-列类型-小数

 

10 数据表-列类型-字符串 

11 数据表-列类型-时间

12 数据表-小结

13 数据表-python代码操作

14 数据行-增删改查

15 数据行-python操作和应用案例 

16 SQL注入

17 今日总结和作业

 Day2

1 今日概要

2 必备SQL-数据准备

3 必备SQL-条件 

 4必备SQL-通配符

%    表示任意字符
     "%佩%"    表示以任意字符开头,以任意字符结尾,中间是汉字“佩”
     "%佩"     表示以任意字符开头,结尾是汉字“佩”
     "吴%奇"   表示以汉字“吴”开头,以汉字“奇”结尾,中汉是任意字符
     注意:这里的任意字符可以多个或一个字符
_    表示一个字符
     "_peiqi@live.com"    表示peiqi@live.com前面可以是任意一个字符,切记只能有一个字符

5必备SQL-指定列(映射)

6必备SQL–排序

7必备SQL- limit部分数据

8必备SQL-分组

 个人理解:MySQL中的分组中pandas中不一样。

9必备SQL-左右连表

10必备SQL-上下连表

老师说上下连接不常用。 

11必备SQL-小结

12表关系

MySQL中,表关系主要由外键约束来实现。

13表关系案例:简易版路飞学城

14用户授权管理

15今日总结

Day3

1今日概要

2 题目介绍

3 SQL强化-表和数据的导入导出

4 SQL强化-第2至18题

5 SQL强化-第19至34题

6SQL强化-35至结束

7 博客系统-表结构设计

Day4


1 今日概要


2 索引概述


3 常见索引 

4 案例:博客系统


5 查询是要命中索引呀


6 执行计划


7 索引小结


8 MySQL函数

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

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

相关文章

php反序列化原生态 ctfshow练习 字符串逃逸

web262 拿着题审计一下 <?php error_reporting(0); class message{public $from;public $msg;public $to;public $tokenuser;public function __construct($f,$m,$t){$this->from $f;$this->msg $m;$this->to $t;} }$f $_GET[f]; $m $_GET[m]; $t $_GET[t…

探秘前沿科技:RFID 与 NFC,开启智能识别新篇

RFID&#xff08;射频识别&#xff09;与NFC&#xff08;近场通信&#xff09;作为两种基于射频技术的无线通信方式&#xff0c;在现代社会中发挥着越来越重要的作用。尽管它们都具备非接触式识别和通信的能力&#xff0c;但在工作原理、应用场景、技术细节等方面存在着显著的差…

【04】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第四篇安卓APP上架之vivo商店-小米商店,oppo商店,应用宝

【04】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第四篇安卓APP上架之vivo商店-小米商店&#xff0c;oppo商店&#xff0c;应用宝 背景介绍 接第三篇上架华为&#xff0c;由于华为商店较为细致&#xff0c;本篇幅介绍其他4类商店相对简要一点&#xff0c;剩下其他更…

OpenCV计算机视觉 06 图像轮廓检测(轮廓的查找、绘制、特征、近似及轮廓的最小外接圆外接矩形)

目录 图像轮廓检测 轮廓的查找 轮廓的绘制 轮廓的特征 面积 周长 根据面积显示特定轮廓 轮廓的近似 给定轮廓的最小外接圆、外接矩形 外接圆 外接矩形 图像轮廓检测 轮廓的查找 API函数 image, contours, hierarchy cv2.findContours(img, mode, method) 代入参…

ROS2 跨机话题通信问题(同一个校园网账号)

文章目录 写在前面的话校园网模式&#xff08;失败&#xff09;手机热点模式&#xff08;成功&#xff09; 我的实验细节实验验证1、ssh 用户名IP地址 终端控制2、互相 ping 通 IP3、ros2 run turtlesim turtlesim_node/turtle_teleop_key4、ros2 multicast send/receive5、从机…

web3与AI结合-Sahara AI 项目介绍

背景介绍 Sahara AI 于 2023 年创立&#xff0c;是一个 "区块链AI" 领域的项目。其项目愿景是&#xff0c;利用区块链和隐私技术将现有的 AI 商业模式去中心化&#xff0c;打造公平、透明、低门槛的 “协作 AI 经济” 体系&#xff0c;旨在重构新的利益分配机制以及…

【C++】你了解异常的用法吗?

文章目录 Ⅰ. C语言传统的处理错误的方式Ⅱ. C异常概念Ⅲ. 异常的使用1、异常的抛出和匹配原则2、在函数调用链中异常栈展开匹配原则3、异常的重新抛出4、异常安全5、异常规范 Ⅳ. 自定义异常体系Ⅴ. C标准库的异常体系Ⅵ. 异常的优缺点1、异常的优点2、异常的缺点3、总结 Ⅰ. …

Matlab仿真径向受压圆盘光弹图像

Matlab仿真径向受压圆盘光弹图像-十步相移法 主要参数 % 定义圆盘参数 R 15; % 圆盘半径&#xff0c;单位&#xff1a;mm h 5; % 圆盘厚度&#xff0c;单位&#xff1a;mm P 300; % 径向受压载荷大小&#xff0c;单位&#xff…

游戏引擎学习第75天

仓库:https://gitee.com/mrxiao_com/2d_game_2 Blackboard: 处理楼梯通行 为了实现楼梯的平滑过渡和角色的移动控制&#xff0c;需要对楼梯区域的碰撞与玩家的运动方式进行优化。具体的处理方式和遇到的问题如下&#xff1a; 楼梯区域的过渡&#xff1a; 在三维空间中&#x…

算法的学习笔记—不用常规控制语句求 1 到 n 的和

&#x1f600;前言 在算法编程中&#xff0c;有时我们会遇到一些特殊的限制条件&#xff0c;这些限制会迫使我们跳出常规思维。本文讨论的问题就是一个典型案例&#xff1a;在不能使用基本控制语句的情况下&#xff0c;如何求解 1 到 n 的和。这个问题不仅考验编程技巧&#xf…

网络协议安全的攻击手法

1.使用SYN Flood泛洪攻击&#xff1a; SYN Flood(半开放攻击)是最经典的ddos攻击之一&#xff0c;他利用了TCP协议的三次握手机制&#xff0c;攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源端口的TCP SYN报文&#xff0c;服务器响应了这些报文后就会生成大量的半连…

141.《mac m1安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…

C++ operator = 返回void 会发生什么?

1.operator 正常情况 #include <iostream> using namespace std;class Box { public:Box(double L) : length(L) {}Box(const Box& b){}Box& operator (const Box&){return *this;}public:double length; // 长度 };int main() {Box box1(1.0);Box box2(…

Redis中字符串和列表的区别

在 Redis 中&#xff0c;字符串&#xff08;String&#xff09;和列表&#xff08;List&#xff09;是两种截然不同的数据类型&#xff0c;它们各自有着独特的特点和适用场景。 数据结构 • 字符串&#xff08;String&#xff09;&#xff1a; • 在 Redis 中&#xff0c;字符串…

Elasticsearch JavaRestClient版

文章目录 初始化RestHighLeveClient&#xff08;必要条件&#xff09;索引库操作1.创建索引库&#xff08;4步&#xff09;2.删除索引库&#xff08;3步&#xff09;3.判断索引库是否存在&#xff08;3步&#xff09;4.总结&#xff1a;四步走 文档操作1.创建文档&#xff08;4…

使用Dinky快速提交Flink operator任务

官网地址&#xff1a;K8s集成 | Dinky 1.目前使用版本 Dinky1.2.0、Flink1.18.1、Flink operator0.10.0 2.制作镜像 2.1创建DockerFile ARG FLINK_VERSION1.18.1 FROM flink:${FLINK_VERSION}-scala_2.12 RUN mkdir -p /opt/flink/usrlib COPY commons-cli-1.3.1.jar …

探索数字化展馆:开启科技与文化的奇幻之旅

在科技飞速发展的当下&#xff0c;数字展馆作为一种新兴的展示形式&#xff0c;正逐渐走进大众的视野。数字展馆不仅仅是传统展馆的简单“数字化升级”&#xff0c;更是融合了多媒体、数字化技术以及人机交互等前沿科技的创新产物。 数字展馆借助VR、AR、全息投影等高科技手段&…

免费GEMINI模型使用及API调用

一、概述 谷歌最新发布的Gemini 2.0 FLASH模型为AI应用带来了新的可能性。该模型分为两个版本&#xff1a;gemini-2.0-flash-exp 和 gemini-2.0-flash-thinking-exp-1219。这两个模型目前限时免费使用&#xff0c;用户可以通过智匠MindCraft客户端或小程序直接体验&#xff0c;…

调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序

当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时&#xff0c;则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序

容器技术思想 Docker K8S

容器技术介绍 以Docker为代表的容器技术解决了程序部署运行方面的问题。在容器技术出现前&#xff0c;程序直接部署在物理服务器上&#xff0c;依赖管理复杂&#xff0c;包括各类运行依赖&#xff0c;且易变&#xff0c;多程序混合部署时还可能产生依赖冲突&#xff0c;给程序…