当前位置: 首页 > news >正文

MySQL基础终端命令与Python简单操作MySQL

文章目录

  • MySQL终端命令
    • 1. 进入mysql
    • 2. 创建数据库
    • 3. 选择数据库
    • 4. 创建数据表
      • 1. 主键约束
      • 2. 外键约束
      • 3. 非空约束
      • 4. 唯一约束
      • 5. 使用默认约束
      • 6. 设置id为自增列
    • 5. 查看数据表
    • 6. 修改数据表
      • 1. 修改表名
      • 2. 修改表的字段类型
      • 3. 修改表的字段名
      • 4. 为表添加字段
      • 5. 删除字段
      • 6. 调整字段的位置
      • 7. 删除表的外键约束
      • 8. 删除数据表
    • 7. 数据表的操作
      • 1. 新增数据
      • 2. 查询数据
      • 3. 修改数据
      • 4. 删除数据
      • 5. replace
  • Python操作MySQL
    • 1. 连接数据库
    • 2. 创建表
    • 3. 插入数据
    • 4. 查询数据
    • 5. 更新数据
    • 6. 删除数据

MySQL终端命令

1. 进入mysql

win+r输入cmd进入终端

输入:

mysql -u root -p

再输入密码进入mysql
在这里插入图片描述

2. 创建数据库

输入(注意语句后面一定要加“ ; ”):

create database test;

创建好后查看数据库:

show databases;

在这里插入图片描述

3. 选择数据库

输入:

use test;

进入test数据库。

在这里插入图片描述

4. 创建数据表

1. 主键约束

输入:

create table example1 (id int(3),name varchar(20),age int(3),primary key(id, name));

在这里插入图片描述

2. 外键约束

create table example2(id int primary key, name varchar(20));create table example2sub(id int primary key, name varchar(20), age int, c_id int, constraint p_c_id foreign key(c_id) references example2(id));

在这里插入图片描述
p_c_id是外键约束的名字,c_id是添加了外键约束的列,id是父表中定义的主键列

3. 非空约束

create table example3(id int, name varchar(20) not null);

在这里插入图片描述

4. 唯一约束

create table example4(id int unique, name varchar(20));

在这里插入图片描述

5. 使用默认约束

create table example5(id int, name varchar(20) default "hahaha");

在这里插入图片描述

6. 设置id为自增列

create table example6(id int primary key auto_increment, name varchar(20));

在这里插入图片描述

5. 查看数据表

先选择数据库,再查看该数据库的表

use test;show tables;

在这里插入图片描述
查看表中各个列的定义:

desc example4;

在这里插入图片描述

6. 修改数据表

1. 修改表名

alter table example1 rename my_example1;

在这里插入图片描述

2. 修改表的字段类型

alter table my_example1 modify name varchar(55);

在这里插入图片描述

3. 修改表的字段名

alter table my_example1 change name my_name varchar(55);

在这里插入图片描述

4. 为表添加字段

alter table my_example1 add column gender varchar(2) not null;

在这里插入图片描述

5. 删除字段

alter table my_example1 drop column age;

在这里插入图片描述

6. 调整字段的位置

将my_example1表中的my_name改为第一列

alter table my_example1 modify my_name varchar(55) first;

在这里插入图片描述

将id调整到gender后

alter table my_example1 id int after gender;

在这里插入图片描述

7. 删除表的外键约束

alter table example2sub drop foreign key p_c_id;

在这里插入图片描述

8. 删除数据表

drop table example4, example5, example6;

在这里插入图片描述

7. 数据表的操作

1. 新增数据

create table user(id int primary key auto_increment, name varchar(100), age int, phone_num varchar(20));insert into user(name, age, phone_num) values('xiaoli', 21, 111), ('qiansan', 18, 222), ('zhangsan', 30, 333);

在这里插入图片描述

2. 查询数据

查询全部数据

select * from user;

在这里插入图片描述
查询年龄大于20的用户

select name, age from user where age > 20;

在这里插入图片描述

3. 修改数据

将用户id为1的年龄更新为22

update user set age = 22 where id = 1;

在这里插入图片描述

4. 删除数据

删除年龄在25以上的用户

delete from user where age > 25;

在这里插入图片描述

5. replace

如果表中存在相同主键的数据,replace的作用相当于修改操作;否则就是插入操作

select * from user;replace into user(id, name, age, phone_num) values(1, 'xiaoli', 21, 444), (2, 'qiansan', 18, 888), (3, 'zhangsan', 30, 999);select * from user;

在这里插入图片描述

Python操作MySQL

1. 连接数据库

数据库的访问是通过连接对象来实现的。程序模块中必须提供连接对象构造函数

import pymysql# connect是连接对象构造函数
# db是connect对象实例
db = pymysql.connect(# 连接的数据库服务器主机名,默认为本地主机(localhost)host = 'localhost',	# 连接数据库的用户名,默认为当前用户user = 'root',# 连接密码password = '020202ly',# 连接的数据库名database = 'testmysql',
)# 创建一个游标对象
cursor = db.cursor()cursor.execute("select version()")# fetchone():从查询结果中获取下一行数据,返回值为一个值的序列,如果没有更多数据则返回None。
# 通过游标获取sql语句执行的结果。如果没有下面的代码,则执行python代码并不能看到在MySQL中执行的结果。
result = cursor.fetchone()print(result)# 关闭游标
cursor.close()# 关闭数据连接
db.close()

若程序成功执行,则会打印MySQL的版本。
在这里插入图片描述

2. 创建表

import pymysqldb = pymysql.connect(host = 'localhost',user = 'root',password = '020202ly',database = 'testmysql',charset = 'utf8'
)cursor = db.cursor()sql = """
create table example(id int not null auto_increment,name varchar(45),age int null,primary key(id))
"""# 运行sql语句,创建数据表example
cursor.execute(sql)# 查询创建的新表的结构
cursor.execute("desc example")
# fetchall():从查询结果中获取结果的所有行数据,返回值包含序列的序列。
result = cursor.fetchall()print(result)cursor.close()db.close()

执行结果在这里插入图片描述
使用pprint.pprint(result)打印出来的结果如下:
在这里插入图片描述
可以看到使用pprint打印的结果可读性更强,看着更舒服。

pprint也是python中的一个打印模块,在使用前需要导入包。pprint()的作用也就是使打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。

3. 插入数据

需要注意的是,在execute后需要调用commit方法提交对数据的修改,否则数据并不会真的插入到数据库中。

import pymysqldb = pymysql.connect(host = 'localhost',user = 'root',password = '020202ly',database = 'testmysql',charset = 'utf8'
)cursor = db.cursor()sql = """insert into example(id, name, age) values(1, '小明', 20), (2, '小红', 40)
"""# 运行sql语句,创建数据表example
try:cursor.execute(sql)db.commit()print('数据提交成功!!')
except Exception as e:# 调用此方法将导致数据库回滚到事事务开始时的状态。# 关闭数据库连接之前没有明确调用commit()提交数据更新,将导致一个隐含的回滚动作,rollback()被执行。db.rollback()cursor.close()
db.close()

在这里插入图片描述

4. 查询数据

用fetchone()方法返回一行数据,用fetchall()方法返回多行数据。

import pymysql
import pprint
db = pymysql.connect(host = 'localhost',user = 'root',password = '020202ly',database = 'testmysql',charset = 'utf8'
)cursor = db.cursor()cursor.execute("select * from example")# fetchone方法
result1 = cursor.fetchone()
print("fetchone: ")
pprint.pprint(result1)# 在第一次查询获取数据后一定要再执行一次查询语句,因为上面fetchone获取了一条数据,游标向后移动,就只剩一条数据了。
cursor.execute("select * from example")# fetchall方法
result2 = cursor.fetchall()
print("fetchall: ")
pprint.pprint(result2)cursor.close()
db.close()

在这里插入图片描述

5. 更新数据

更新操作和插入操作类似,在修改完成后需要调用commit方法提交修改。

import pymysql
import pprint
db = pymysql.connect(host = 'localhost',user = 'root',password = '020202ly',database = 'testmysql',charset = 'utf8'
)cursor = db.cursor()cursor.execute("select * from example")# fetchone方法
result = cursor.fetchall()
print('更新前')
pprint.pprint(result)cursor.execute('update example set age = 30 where id = 2')cursor.execute("select * from example")# fetchall方法
result = cursor.fetchall()
print("更新后")
pprint.pprint(result)cursor.close()
db.close()

在这里插入图片描述

6. 删除数据

删除数据操作完后也需要调用commit方法提交

import pymysql
import pprint
db = pymysql.connect(host = 'localhost',user = 'root',password = '020202ly',database = 'testmysql',charset = 'utf8'
)cursor = db.cursor()cursor.execute("select * from example")
result = cursor.fetchall()
print('删除前')
pprint.pprint(result)cursor.execute('delete from example where id = 2')
cursor.execute("select * from example")
result = cursor.fetchall()
print("删除后")
pprint.pprint(result)cursor.close()
db.close()

在这里插入图片描述

相关文章:

MySQL基础终端命令与Python简单操作MySQL

文章目录 MySQL终端命令1. 进入mysql2. 创建数据库3. 选择数据库4. 创建数据表1. 主键约束2. 外键约束3. 非空约束4. 唯一约束5. 使用默认约束6. 设置id为自增列 5. 查看数据表6. 修改数据表1. 修改表名2. 修改表的字段类型3. 修改表的字段名4. 为表添加字段5. 删除字段6. 调整…...

编译原理.龙书学习1

第一章: 编译器:将程序翻译成一种能够被计算机执行的形式 解释器:解释器直接利用用户提供的输入执行源程序中指定的操作 一个编译器的结构 编译器将源程序映射为语义上等价的目标程序,这个映射过程由两部分组成:分析…...

anaconda安装完成之后输入conda -V没有反应

anaconda安装完成后,conda没有反应 vim ~/.bashrc后面添加内容 # added by Anaconda3 5.3.0 installer # >>> conda init >>> # !! Contents within this block are managed by conda init !! __conda_setup"$(CONDA_REPORT_ERRORSfalse /u…...

netty报文解析之粘包半包问题

粘包问题 Netty 的粘包问题是指在网络传输过程中,由于 TCP 协议本身的特点,导致发送方发送的若干个小数据包被接收方合并成了一个大数据包。这种情况称为粘包。 TCP 协议是面向流的协议,没有数据边界,发送方发送的数据可能会被分…...

EasyCode整合mybatis-plus的配置

文章目录 entitymapper.javamapper.xmlserviceserviceImplcontroller 这篇文章不教你如何安装和使用EasyCode,只是贴出可以使用的配置。 具体EasyCode的使用可以查看其它的文章。 entity ##导入宏定义 $!{define.vm}##保存文件(宏定义) #sa…...

实施预测性维护解决方案的挑战及PreMaint的应对方法

前面我们介绍了企业选择预测性维护解决方案的常见问题和PreMaint的策略,本期我们将带来实施过程中可能会遇到的挑战,以及如何通过PreMaint来应对这些挑战,以实现可靠的预测性维护。 随着工业技术的不断进步,预测性维护作为一种先进…...

1. js中let、var、const定义变量区别与方式

1 声明语法 var upperA A; let upperB B; const upperC C; 只声明不初始化的结果,【 const定义的常量不可以修改,而且必须初始化】 // var 声明变量 var upperA; console.log(打印大写的A:%s, upperA); // 结果:打印大写的A&am…...

【STM32学习】I2C通信协议 | OLED屏

🐱作者:一只大喵咪1201 🐱专栏:《STM32学习》 🔥格言:你只管努力,剩下的交给时间! 今天需要将代码烧录到开发板中,本喵默认大家都会创建工程,以及进行基本的…...

Nvme Spec 第一章节学习

Nvme Express Base Specification 第一章 简介 1.1概述 NVM ExpressTM(NVMeTM)接口允许主机软件与非易失性存储器子系统通信。 此接口针对企业和客户端固态驱动器进行了优化,通常作为寄存器级接口连接到PCI Express接口。 注:在…...

第一章:最新版零基础学习 PYTHON 教程(第九节 - Python 语句中的 – 多行语句)

Python 中的语句: 在Python中,语句是Python解释器可以读取和执行的逻辑命令。它可能是Python 中的赋值语句或表达式。 Python 中的多行语句: 在Python中,语句通常写成一行,每行的最后一个字符是换行符。要将语句扩展到一行或多行,我们可以使用大括号 {}、圆括号 ()、方…...

kafka 3.0 离线安装

1.安装zookeeper 解压apache-zookeeper-3.8.0-bin.tar.gz到指定目录,复制conf目录下zoo_sample.cfg到zoo.cfg,并修改配置。 # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit…...

MySQL数据库入门到精通2--基础篇(函数,约束,多表查询,事务)

3. 函数 函数 是指一段可以直接被另一段程序调用的程序或代码。MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。 3.1 字符串函数 MySQL中内置了很多字符串函数,常用的几个如下: 演示如下: A. con…...

c-数据在内存中的存储-day7

...

3D大模型如何轻量化?试试HOOPS Communicator,轻松读取10G超大模型!

随着计算机技术的不断发展,3D模型在各行各业中的应用越来越广泛。然而,随着模型的复杂性和规模不断增加,处理和浏览超大型3D模型变得越来越具有挑战性。本文将探讨如何轻量化3D大模型,以及如何使用HOOPS Communicator来读取和浏览…...

go并发操作且限制数量

使用管道chan func returnNum() int64 {return time.Now().Unix() } func main() {threadAmount : runtime.GOMAXPROCS(0)if threadAmount < 2 {threadAmount 2}fmt.Println(threadAmount)threadChan : make(chan int, threadAmount)defer close(threadChan)for {for i :…...

AI深度学习-卷积神经网络000

文章目录 前言1.什么是深度学习2.语义分割与实例分割概述3.什么是卷积&#xff1f;4.Unet网络 前言 本栏目&#xff0c;主要为深度学习保姆教程。 主要通过B站视频整理而来&#xff1a; 深度学习保姆级教学 Unet语义分割视觉三维重建算法 1.什么是深度学习 深度学习保姆级教…...

网站有反爬机制就爬不了数据?那是你不会【反】反爬

目录 前言 一、什么是代理IP 二、使用代理IP反反爬 1.获取代理IP 2.设置代理IP 3.验证代理IP 4.设置代理池 5.定时更新代理IP 三、反反爬案例 1.分析目标网站 2.爬取目标网站 四、总结 前言 爬虫技术的不断发展&#xff0c;使得许多网站都采取了反爬机制&#xff…...

2023华为杯研究生数学建模C题分析

完整的分析查看文末名片获取&#xff01; 问题一 在每个评审阶段&#xff0c;作品通常都是随机分发的&#xff0c;每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性&#xff0c;不同专家评审的作品集合之间应有一些交集。但有的交集大了&#xff0c;则…...

第三天:实现网络编程基于tcp/udp协议在Ubuntu与gec6818开发板之间双向通信

互联网地址 每一台设备接入互联网后&#xff0c;都会举报一个唯一的地址编号 IP地址 INTERNET地址 internet地址 &#xff1a;它是协议上的一个逻辑地址 目前来说&#xff0c;我们主要的IP地址有两类 IPV4 IPV6 IPV4 其实就是使用一个32bit整数作为IP IPV6 其实就是使用一…...

【MediaSoup---源码篇】(三)Transport

概述 RTC::Transport是mediasoup中的一个重要概念&#xff0c;它用于在mediasoup与客户端之间传输实时音视频数据。 Transport继承着众多的类&#xff0c;主要用于Transport的整体感知 class Transport : public RTC::Producer::Listener,public RTC::Consumer::Listener,publ…...

爱分析《商业智能最佳实践案例》

近日&#xff0c;国内知名数字化市场研究咨询机构爱分析发布《2023爱分析商业智能最佳实践案例》&#xff0c;此评选活动面向落地商业智能的各行企业和商业智能厂商&#xff0c;以第三方专业视角深入调研&#xff0c;评选出具有参考价值的创新案例。永达汽车集团与数聚股份合作…...

golang:context

context作用 goroutine的退出机制 多个goroutine都是平行的被调度的&#xff0c;多个goroutine如何协调工作涉及通信、同步、通知和退出 通信&#xff1a;goroutine之间的通信同步chan通道 同步&#xff1a;不带缓冲的chan提供了一个天然的同步等待机制。通过WaitGroup也可以…...

探讨代理IP与Socks5代理在跨界电商中的网络安全应用

在数字化时代&#xff0c;跨界电商已经成为了商业世界中的一大趋势。然而&#xff0c;跨越国界的电商活动也伴随着网络安全挑战。本文将讨论如何利用代理IP和Socks5代理技术来提高跨界电商中的网络安全&#xff0c;同时也探讨了与游戏相关的爬虫应用。 1. 代理IP和Socks5代理的…...

Guava Cache介绍-面试用

一、Guava Cache简介 1、简介 Guava Cache是本地缓存&#xff0c;数据读写都在一个进程内&#xff0c;相对于分布式缓存redis&#xff0c;不需要网络传输的过程&#xff0c;访问速度很快&#xff0c;同时也受到 JVM 内存的制约&#xff0c;无法在数据量较多的场景下使用。 基…...

ARM 汇编指令作业(求公约数、for循环实现1-100之间和、从SVC模式切换到user模式简单写法)

1、求两个数最大公约数 .text .globl _start_start:mov r0, #9mov r1, #15 Loop: 循环cmp r0,r1 比较r0和r1的大小beq stop 当r0和r1相等时&#xff0c;跳到stop标签subhi r0,r0,r1 r0-r1>0 时&#xff0c;证明r0>r1,将r0-r1的值赋给r0&…...

Go - 【字符串,数组,哈希表】常用操作

一. 字符串 字符串长度&#xff1a; s : "hello" l : len(s) fmt.Println(l) // 输出 5遍历字符串&#xff1a; s : "hello" for i, c : range s {fmt.Printf("%d:%c ", i, c) } // 输出&#xff1a;0:h 1:e 2:l 3:l 4:ofor i : 0; i < le…...

vue 普通组件的 局部注册

vue 普通组件的 注册 11 Vue2_3入门到实战-配套资料\01-随堂代码素材\day03\素材\00-准备代码\小兔鲜首页静态页\src...

医疗虚拟仿真和虚拟现实有什么区别?哪个更好?

随着我们在仿真教育中越来越多地使用新技术&#xff0c;区分虚拟模式的类型很重要。虚拟仿真是一个统称&#xff0c;用来概括术语来描述各种基于仿真的体验&#xff0c;从基于屏幕的平台到沉浸式虚拟现实。然而&#xff0c;各虚拟平台在保真度、沉浸感和临场感的水平上有很大差…...

【.net core】yisha框架使用nginx代理swagger接口无法访问问题

后端代码配置 #在StartUp.cs文件中Configure方法中增加以下代码 app.UseSwagger(c >{//代理路径访问c.PreSerializeFilters.Add((doc, item) >{//根据代理服务器提供的协议、地址和路由&#xff0c;生成api文档服务地址doc.Servers new List<OpenApiServer>{ new…...

uniapp录音功能和音频播放功能制作

录音功能 在 UniApp 中&#xff0c;你可以使用 uni.getRecorderManager() 方法来创建一个录音管理器实例&#xff0c;从而实现录音功能。 以下是一个示例&#xff0c;演示了如何在 UniApp 中使用 uni.getRecorderManager() 实现录音功能&#xff1a; // 在需要录音的页面或组…...

男女做爰全过程网站/搜索引擎推广和优化方案

搭建LNMP网站平台实战 LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux&#xff0c;N指Nginx&#xff0c;M一般指MySQL&#xff0c;也可以指MariaDB&#xff0c;P一般指PHP&#xff0c;也可以指Perl或Python。 1、自定义网络 docker netw…...

网站如何做404页面/域名备案查询站长工具

这里有一些benchmarks用于各种操作和文件系统供您参考. (在繁忙的系统上,你当然会得到不同的结果,但希望这会让你知道会发生什么).如果我在你的椅子上,我会尝试获得该场景的基线基准&#xff1a;>确定操作将在与其他所有设备隔离的裸硬件上花费多长时间(是的,它应该花费很多…...

制作一份网站建设的简要任务执行书/whois查询

这个如果不勾选那个Create a simple project也可以&#xff0c;但是创建完成后还需要修改工程的packaging为pom。还有如果不勾选&#xff0c;就选择maven-archetype-quickstart。这里说明一下&#xff0c;这个packaging需要选择pom&#xff0c;因为这个maven project就是个模块…...

罗湖网站制作/今日新闻头条热点

文章目录题目描述输入描述输出描述输入输出样例最终代码1. c/c2. java3. python过程理解题目描述 某小学最近得到了一笔赞助&#xff0c;打算拿出其中一部分为学习成绩优秀的前 5 名学生发奖学金。期末&#xff0c;每个学生都有 3 门课的成绩&#xff1a;语文、数学、英语。 先…...

怎么用网站视频做自媒体/怎么网上宣传自己的产品

中央各大会议20天4次部署“新基建”&#xff01;首次重点提及数据中心&#xff0c;两提5G。会议指出&#xff0c;要加快5G网络、数据中心等新型基础设施建设进度&#xff0c;并注重调动民间投资积极性&#xff0c;5年3.5万亿元投资在路上&#xff0c;行业前景广阔。 &#xff0…...

wordpress密码登录插件/南京seo关键词优化预订

本文字数&#xff1a;8814 字精读时间&#xff1a;18 分钟也可在 8 分钟内完成速读容器到底是什么&#xff1f;容器是怎么工作的&#xff1f;容器如何隔离资源&#xff1f;为啥容器启动那么快&#xff1f;...如果你是个好奇宝宝&#xff0c;平时在使用容器的时候内心定会泛起类…...