首页 > 数据库 >MySQL技术内幕(SQL编程)

MySQL技术内幕(SQL编程)

时间:2023-07-19 15:33:22浏览次数:35  
标签:语句 编程 SQL address mycursor MySQL mydb

MySQL技术内幕(SQL编程)

MySQL是一种常用的关系型数据库管理系统,它具有高性能、可靠性和易用性。SQL编程是使用MySQL进行开发的基础,本文将介绍一些MySQL技术内幕和SQL编程的基本知识。

连接数据库

在使用MySQL之前,我们首先要连接数据库。MySQL提供了多种方式来连接数据库,其中一种常用的方式是使用Python编程语言的MySQL Connector模块。

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

print(mydb)

上述代码示例中,我们使用mysql.connector.connect()方法来连接MySQL数据库。我们需要提供数据库的主机地址、用户名、密码和数据库名称。成功连接后,print(mydb)语句将会打印出数据库对象。

创建表

在MySQL中,数据是以表的形式进行存储和管理的。要创建一个表,我们可以使用SQL的CREATE TABLE语句。

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

上述代码示例中,我们使用mydb.cursor()方法创建一个游标对象,然后使用游标对象的execute()方法执行SQL语句。CREATE TABLE语句定义了一个名为customers的表,该表包含了id、name和address三个列。id列是一个自增的主键列,name和address列分别是255个字符的变量。

插入数据

一旦我们创建了表,我们可以插入数据到表中。使用SQL的INSERT INTO语句可以实现数据插入。

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

上述代码示例中,我们首先定义了一个SQL语句,然后使用游标对象的execute()方法执行该语句。我们使用占位符%s来表示需要填入的值,然后将具体的值传递给execute()方法。最后,我们使用mydb.commit()语句来提交更改,并打印出插入的记录数。

查询数据

查询数据是使用MySQL的一个重要功能。使用SQL的SELECT语句可以实现数据查询。

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

上述代码示例中,我们使用SELECT * FROM customers语句查询所有的数据,并使用mycursor.fetchall()方法获取查询结果。然后,我们使用一个循环遍历结果,并打印出每一条记录。

更新数据

在MySQL中,我们可以使用SQL的UPDATE语句来更新数据。

sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Highway 21'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

上述代码示例中,我们首先定义了一个SQL语句,使用UPDATE语句将address列为Highway 21的记录的address值更新为Canyon 123。然后,我们执行该语句并提交更改,最后打印出受影响的记录数。

删除数据

删除数据也是使用MySQL的常见功能。使用SQL的DELETE FROM语句可以实现数据删除。

sql = "DELETE FROM customers WHERE address = 'Canyon 123'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) deleted")

上述代码示例中,我们定义了一个SQL语句,使用DELETE FROM语句删除address列为Canyon 123的记录。然后,我们执行该语句并提交更改,最后打印出被删除的记录数。

结论

本文介绍了MySQL技术内幕和SQL编程的基本知识。我们学习了如何连接数据库、创建表、插入数据、查询数据、更新数据和删除数据。这些是MySQL开发中的常用操作,通过掌握这些基本

标签:语句,编程,SQL,address,mycursor,MySQL,mydb
From: https://blog.51cto.com/u_16175497/6776680

相关文章

  • MySQL创建表,和索引
    MySQL创建表和索引的步骤1.创建表的流程创建表是在MySQL数据库中存储数据的基础操作,以下是创建表的步骤:步骤操作1.连接到MySQL数据库2.创建数据库(可选)3.选择数据库4.创建表5.定义表结构6.设定表的约束和默认值(可选)7.插入数据(可选)下面将......
  • MySQL查询两个表差异数据
    MySQL查询两个表差异数据在使用MySQL进行数据处理和分析时,有时需要比较两个表之间的差异数据。比如,我们可能需要找出在两个表中都存在的数据,或者找出只在其中一个表中存在的数据。本文将介绍如何使用MySQL进行这些差异数据查询,并提供相应的代码示例。创建示例表首先,我们需要创建......
  • MySQL把choose表中的report改名为score,数据类型改为float; 将choose表的score默
    MySQL把choose表中的report改名为score,数据类型改为float;将choose表的score默认值设为0流程步骤步骤操作1.连接至MySQL数据库2.切换至对应数据库3.修改表结构,将report改名为score并更改数据类型4.设定score字段的默认值为0具体步骤与代码示例步骤......
  • 关于mysql自增ID何时重置引发的思考
    背景mysql有一个表因为数据量太大,单表查询很慢,决定做表分区.但是做表分区的时候,分区键如果不是主键的话,要把原来的主键(id)取消重新将原来的主键(id)和分区键绑定做一个复合主键.但是原来的主键(id)是自增的,取消它需要先取消自增.然后复合主键建立之后再把id设为自增......
  • centos7.9离线安装mysql5.7.42(本文使用initialize安装方法)
    centos7.9离线安装mysql5.7.42(本文使用initialize安装方法)一、卸载CentOS7系统自带mariadb#查看系统自带的Mariadb[root@NIWAY-190~]#rpm-qa|grepmariadbmariadb-libs-5.5.68-1.el7.x86_64#卸载系统自带的Mariadb[root@NIWAY-190~]#rpm-e--nodepsmariadb-libs-5.5.68-......
  • 阿里云centos Can't connect to MySQL server on ':3306' (61)
    Can'tconnecttoMySQLserveron':3306'(61) /etc/mysql/my.cnf修改bind-address也不行mysql给root远程授权也不行阿里云安全组也添加了3306最后发现是防火墙问题解决办法firewall-cmd--zone=public--permanent--add-service=mysqlsystemctlrestartfirewalld ......
  • mysql字符串类型面试题
    mysql有哪些字符串类型?MySQL中有以下几种常见的字符串类型:CHAR:固定长度字符串,最多可以存储255个字符。VARCHAR:可变长度字符串,最多可以存储65535个字符。TEXT:用于存储较长的文本字符串,最多可以存储65535个字符。TINYTEXT:用于存储非常短的文本字符串,最多可以......
  • docker部署mysql服务
    1:拉取镜像dockerpullmysql2:验证拉镜像成功dockerimages3:创建目录mkdir-p/mysql/data/mysql/logs/mysql/confcd/mysql/conftouchmy.cnf4:创建运行容器dockerrun-p3306:3306--namemysql-v/mysql/conf:/etc/mysql/conf.d-v/mysql/logs:/logs-v/mysql......
  • Spring boot 编程式事务
    SpringBoot编程式事务在SpringBoot中,事务管理是一项非常重要的功能。事务管理可以确保在数据库操作中的一系列操作要么全部成功,要么全部失败。SpringBoot提供了两种事务管理方式:声明式事务和编程式事务。本文将重点介绍SpringBoot的编程式事务管理。编程式事务简介编程式事......
  • CentOS7中安装Mysql8并配置远程连接和修改密码等
    场景使用Vmware等虚拟机软件搭建CentOS7系统,需要在其上安装Mysql8版本数据库。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、去mysql官网手动下载rpm包并上传到服务器,或者直接通过wget进行下载wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-......