MySQL指令

MySQL指令

1.数据库管理

  • 查看已有的数据库(文件夹)

     show databases;
    
  • 创建数据库(文件夹)

    create database 数据库名字; #可能有汉字,编码方式可能不适用,产生乱码
    
    create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci ;
    #使用utf8编码,适用性较强
    
  • 删除数据库(文件夹),按上可以浏览以前的sql

    drop database 数据库名字;
    
  • 进入数据库(进入文件夹)

    use 数据库名字;
    
  • 查看数据库的表

    show tables;
    

2.数据表管理(文件)

  • 创建表

    create table 表名称(
    	列名称	类型,
      列名称	类型,
      列名称	类型
    )default charset=utf-8; #使用utf-8编码
    

    在这里插入图片描述

    例如:

    create table tb1(
    	id int not null auto_increment primary key, --内部维护,自增1,并声明为主键
      name varchar(16),
      age int
    ) default charset=utf8;
    
  • 删除表

    drop table 表名称;
    
  • 表的详细信息

    desc 表名;
    
    +---------------+---------------------+------+-----+---------+-------+
    | Field         | Type                | Null | Key | Default | Extra |
    +---------------+---------------------+------+-----+---------+-------+
    | events        | varchar(128)        | NO   |     | NULL    |       |
    | total         | bigint(20) unsigned | NO   |     | NULL    |       |
    | total_latency | bigint(20) unsigned | NO   |     | NULL    |       |
    | avg_latency   | bigint(20) unsigned | NO   |     | NULL    |       |
    | max_latency   | bigint(20) unsigned | NO   |     | NULL    |       |
    +---------------+---------------------+------+-----+---------+-------+
    

    数据类型见博主数据库专栏中的SQL简介。

  • 插入数据

    insert into 表名称(属性1,属性2,...) values (v11,v12,...),(v21,v22,...)... ;
    
  • 查看表中的数据:通过写query语句。

3.数据行操作

  • 新增数据

    insert into 表名(列名,...) values(,...),(,...);
    
    create table users(
    	id int not null primary key auto_increment,
      name varchar(64) not null,
      password varchar(64) not null,
      email varchar(64) not null,
      age tinyint,
      salary numeric(10,2),
      ctime datetime
    )default charset=utf8;
    
    #id是自增的,不用管,从1开始自动加1.
    insert into users(name,password,email,age,salary,ctime)
    values("两仪式","ryoushiki1980217","shiki@gmail.com",44,29402.50,"2024-3-31 10:50:25");
    
    insert into users(name,password,email,age,salary,ctime)
    values("黑桐干也","sjchDJ251c","GANYE@gmail.com",43,49402.50,"2024-3-31 10:50:25");
    
    insert into users(name,password,email,age,salary,ctime)
    values("浅织秋隆","automryoushiki","Qiu@gmail.com",74,5042.50,"2024-3-31 10:50:25");
    insert into users(name,password,email,age,salary,ctime)
    values("苍崎橙子","cccccORANGE","orange@gmail.com",54,39402.50,"2024-3-31 10:50:25");
    
    insert into users(name,password,email,age,salary,ctime)
    values("荒耶宗莲","123456789","HuangYe@gmail.com",65,1.50,"2024-3-31 10:50:25");
    
  • 删除数据

    delete from 表名;
    delete from 表明 where 条件;
    
  • 修改数据

    update 表名	set 列名=where 条件;
    
    update users set salary=0.5*salary where id=5;
    
  • 查询数据,query语句

案例:员工管理

  • 使用MySQL内置工具(命令)

    • 创建数据库:unicom

    • 数据表:admin

      表名:admin
      列:
      	id,整型,自增,主键
      	username 字符串 不为空
      	password 字符串 不为空
      	mobile   字符串 不为空
      	
      
      
  • Python代码实现

    • 添加用户
    • 删除用户
    • 查看用户
    • 更新用户信息

1.创建表结构

create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci ;
create table users(
	id int not null primary key auto_increment,
  username varchar(30) not null,
  password varchar(64) not null,
  mobile varchar(13) not null
)default charset=utf8;

2.Python 操作MySQL

用Python 代码连接MySQL并发送指令

pip install pymysql
2.1 创建数据库
import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="localhost", port=3306, user="root", passwd="horse030811", charset="utf8", db="unicom")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
# sql="insert into users(username,password,mobile) values({},{},{})".format("bill","12312","12412")
cursor.execute("insert into users(username,password,mobile) values('asmsxw','qwe123','1245251232')")
# 使用pymysql内部的占位语句
sql = "insert into users(username,password,mobile) values(%s,%s,%s"
cursor.execute(sql, ["shiki", "qwer123", "124512346"])

# 也可以给占位符起名,使用字典。
sql = "insert into users(username,password,mobile) values(%(n1)s,%(n2)s,%(n3)s"
cursor.execute(sql, {"n1": "alice", "n2": "gasdlk1245", "n3": "6134132"})

conn.commit()

# 3.关闭
cursor.close()
conn.close()
#动态的用户输入
import pymysql

while True:
    user = input("用户名:")
    if user.upper() == 'Q':
        break
    pwd=input("密码:")
    mobile = input("手机号:")

    # 1.连接MySQL
    conn = pymysql.connect(host="localhost", port=3306, user="root",   passwd="horse030811", charset="utf8", db="unicom")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

    # 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
    # 使用pymysql内部的占位语句
    sql = "insert into users(username,password,mobile) values(%s,%s,%s)"
    cursor.execute(sql, [user, pwd , mobile])

    conn.commit()

    # 3.关闭
    cursor.close()
    conn.close()
2.2 查询数据
import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="localhost", port=3306, user="root", passwd="horse030811", charset="utf8", db="unicom")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
# 使用pymysql内部的占位语句
sql = "select * from users "
cursor.execute(sql)
datalist = cursor.fetchall()  # 发送指令后,数据库会输出相应值,使用fetchall获取值
sql = "select * from users where id>2 "
cursor.execute(sql)
dataone = cursor.fetchone()  # 取出符合query的第一条数据
print(datalist)  # 以字典键值对的形式返回
print("fetchall:")
for row_dict in datalist:
    print(row_dict)

print("fetchone:", dataone)  #{'id': 3, 'username': 'shiki', 'password': 'qwer123', 'mobile': '124512346'}


# 3.关闭
cursor.close()
conn.close()
2.3 删除数据
import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="localhost", port=3306, user="root", passwd="horse030811", charset="utf8", db="unicom")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
# 使用pymysql内部的占位语句
sql = "delete from users where id =%s"
cursor.execute(sql, [1, ])

conn.commit()

# 3.关闭
cursor.close()
conn.close()

2.4 修改数据
import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="localhost", port=3306, user="root", passwd="horse030811", charset="utf8", db="unicom")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
# 使用pymysql内部的占位语句
sql = "update users set mobile=%s where id=%s"
cursor.execute(sql, [18619802174, 3])

conn.commit()

# 3.关闭
cursor.close()
conn.close()

注意

  • 在执行完query后,一定要commit,数据库才会更新,否则会回滚。

  • 查询不用commit,因为没有更新数据库,需要执行fetchall/fetchone

  • SQL语句不要用Python的字符串格式化进行拼接,用execute+参数

    	cursor.execute(sql,[x,y,..])
    

案例:Flask+MySQL

1.新增用户

from flask import Flask, render_template, request
import pymysql

app = Flask(__name__)


@app.route('/add/user', methods=["GET", "POST"]) 
	#前面是网址路径methods表明支持两种提交方式
def add_user():
    if request.method == "GET":
        return render_template("add_user.html")

    print(request.form)  # 可得到字典形式的表单数据:ImmutableMultiDict([('user', '阿斯顿金克拉'), ('pwd', 'zxlcas'), ('mobile', '1258912557')])

    username = request.form.get("user")  # 得到单个键的值
    password = request.form.get("pwd")
    mobile = request.form.get("mobile")

    # 1.连接MySQL
    conn = pymysql.connect(host="localhost", user="root", passwd="horse030811", charset="utf8", db="unicom")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 指定了使用字典类型的游标(cursor),这通常用于 MySQL 查询结果的返回。
    # 2.执行SQL
    sql = "insert into users(username,password,mobile) values(%s,%s,%s)"
    cursor.execute(sql, [username, password, mobile])

    conn.commit()
    # 3。关闭连接
    cursor.close()
    conn.close()

    return "asasdasd"


if __name__ == '__main__':
    app.run()

HTML部分
#一个简单的表单,注意name对应的是键名
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>添加用户</h1>
<form method="post" action="/add/user">
    <input type="text" name="user" placeholder="用户名"/>
    <input type="text" name="pwd" placeholder="密码"/>
    <input type="text" name="mobile" placeholder="手机号"/>
    <input type="submit" value="提 交">
</form>
</body>
</html>

2.查询用户

@app.route('/show/user', methods=["GET", "POST"])
def show_user():
    # 1.连接MySQL
    conn = pymysql.connect(host="localhost", user="root", passwd="horse030811", charset="utf8", db="unicom")
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 指定了使用字典类型的游标(cursor),这通常用于 MySQL 查询结果的返回。
    # 2.执行SQL
    sql = "select * from users"
    cursor.execute(sql)
    data_list = cursor.fetchall()

    conn.commit()
    # 3。关闭连接
    cursor.close()
    conn.close()

    print(data_list)

    return render_template('show_user.html',data=data_list)#传入data_list为data

HTML部分
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<table border="1">
    <thead>
        <th>ID</th>
        <th>姓名</th>
        <th>密码</th>
        <th>手机号</th>
    </thead>
    <tbody>

    {% for item in data %}
        <tr>
            <td>{{ item.id}}</td>
            <td>{{item.username}}</td>
            <td>{{item.password}}</td>
            <td>{{item.mobile}}</td>
        </tr>
    {% endfor %}

    </tbody>
</table>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Scala编程入门:从零开始的完整教程

目录 引言环境准备创建第一个Scala项目基本语法高阶概念进阶资源结语 引言 Scala是一种强大的、静态类型的、多范式编程语言&#xff0c;它结合了面向对象和函数式编程的特点。本教程将指导您如何从零开始学习Scala&#xff0c;并搭建一个简单的开发环境。让我们开始探索Scala…

2024数维杯数学建模B题完整论文讲解(含每一问python代码+结果+可视化图)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024数维杯数学建模挑战赛生物质和煤共热解问题的研究完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 B题论…

详解drop,delete,truncate区别

在SQL中&#xff0c;"DROP"、"DELETE"和"TRUNCATE"是用于删除数据的不同命令&#xff0c;它们之间有一些重要的区别&#xff1a; DROP&#xff1a; DROP用于删除数据库对象&#xff0c;例如删除表、视图、索引、触发器等。使用DROP删除的对象将…

C++相关概念和易错语法(11)(npos、string的基本使用)

本文主要是分享一些基础的用法和接口&#xff0c;不会涉及迭代器版本&#xff0c;也没有底层概念&#xff0c;主要是保证简单入门和使用。 1.npos string本质上是一个类&#xff0c;里面包含了上百个成员函数&#xff0c;在调用这个头文件后&#xff0c;我们要知道整个类都被…

unity制作app(5)--发送数据给数据库

这个之前做过&#xff0c;先不做照片的。下一节再做带照片的。 第一步 收集数据 1.先做一个AppModel结构体&#xff0c;这个结构体需要单做的。 using System; using System.Collections.Generic; using System.Linq; using System.Text; //using Assets.Model; public clas…

LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问

智谱AI 配置参考 https://python.langchain.com/v0.1/docs/integrations/chat/zhipuai/ZHIPUAI_API_KEY从https://open.bigmodel.cn/获取 from langchain_community.chat_models import ChatZhipuAI from langchain_core.messages import AIMessage, HumanMessage, SystemMes…

Lambda表达式Stream流-函数式编程入门教程

目录 函数式编程思想 Lambda 表达式 Stream流 常用的Stream中的API 创建Stream 第一种是直接使用.Stream()的方式来创建 第二种采用.of()方式创建 具体来看看每一个API是怎么用的 concat max min findFirst findAny count peek forEach forEachOrdered skip d…

oracle 9i 行头带有scn的表

oracle 9i 行头带有scn的表 conn scott/tiger drop table t1; drop table t2; create table t1(c varchar2(5)); create table t2(c varchar2(6)) ROWDEPENDENCIES; --t2表每行都有scn,会增加六个字节的开销 alter table t1 pctfree 0; alter table t2 pctfree 0; insert in…

Array.map解析

map方法会创建一个新数组。该方法会循环数组中的每个值&#xff0c;如果仅仅是想循环数组不需要返回值使用数组的forEach方法就可以。原数组中的每个元素都调用一次提供的函数后的返回值组成。Array.map 它接收一个函数 这个函数可以接收三个参数 数组的每个值item 这个值的索引…

2016-2021年全国范围的2.5m分辨率的建筑屋顶数据

一、论文介绍 摘要&#xff1a;大规模且多年的建筑屋顶面积&#xff08;BRA&#xff09;地图对于解决政策决策和可持续发展至关重要。此外&#xff0c;作为人类活动的细粒度指标&#xff0c;BRA可以为城市规划和能源模型提供帮助&#xff0c;为人类福祉带来好处。然而&#xf…

【html项目】教你制作地表最强王者辅助网站装逼神器

今天如何教你们写教你们如何写一个 仿王者荣耀修改器装逼神器 效果图 html: <body><header> <a href"//pvp.qq.com/" class"qqq" title"王者荣耀" onclick"PTTSendClick(link,logo,logo);">王者荣耀</a>&l…

信息系统架构模型_2.面向服务架构(SOA)模式

前面讲的客户机/服务器模式&#xff0c;无论多少层的C/S软件结构&#xff0c;对外来讲&#xff0c;都只是一个单结点应用&#xff08;无论它由多个不同层的“服务”相互配合来完成其功能&#xff09;&#xff0c;具体表现为一个门户网站、一个应用系统等。而多个单点应用相互通…

到东莞樟木头“中国作家第一村”来!这里大有文“樟”

樟木头&#xff0c;古称泰安&#xff0c;一直是康泰平安、物阜民丰之地。作为东莞唯一纯客家镇&#xff0c;传自中原先民的烂漫因子让这座城市崇文重礼&#xff0c;绿水青山更氤氲出古镇芳华。这个文章锦绣地&#xff0c;以其敢为人先、勇立潮头的姿态&#xff0c;成为了各种文…

Python专题:八、列表(1)

Python的内置数据类型 数据类型&#xff1a;列表 list类型 可以是字符串&#xff0c;浮点数&#xff0c;整数&#xff0c;列表 列表特性 ①集合性的数据类型 ②列表是有序的 ③列表是可更新的 访问列表元素的方式也是[索引]&#xff0c;也是从0开始的&#xff0c;不能超过…

【姿态解算与滤波算法】

姿态解算 一、主线 姿态表示方式&#xff1a;矩阵表示&#xff0c;轴角表示&#xff0c;欧拉角表示&#xff0c;四元数表示。 惯性测量单元IMU&#xff08;Inertial Measurement Unit&#xff09;&#xff1a;MPU6050芯片&#xff0c;包含陀螺仪和加速度计&#xff0c;分别测…

ROS2 工作空间

文章目录 ROS2 工作空间创建工作空间自动安装依赖编译工作空间设置环境变量参考链接 ROS2 工作空间 工作空间可以简单理解为工程目录。 ROS 系统中一个典型的工作空间结构如图所示&#xff1a; dev_ws&#xff1a; 根目录&#xff0c;里面会有四个子目录&#xff08;子空间&a…

net 7部署到Linux并开启https

1.修改代码设置后台服务运行 安装nuget包 Install-Package Microsoft.Extensions.Hosting.WindowsServices Install-Package Microsoft.Extensions.Hosting.Systemd在Program代码中设置服务后台运行 var builder WebApplication.CreateBuilder(args);if (System.OperatingS…

鸿蒙开发接口Ability框架:【DataAbilityHelper模块(JS端SDK接口)】

DataAbilityHelper模块(JS端SDK接口) 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在FA模型下使用。 使用说明 使用前根据具体情况引入如下模块 import featureAbility from …

跳跃游戏 II解题思路详解

题解 跳跃游戏 II &#x1f91a;我的博客&#x1f95b;前言 跳跃游戏 II描述示例提示 题解初步思考思路细节代码实现完整代码 END&#x1f4a0;END&#x1f3d5;️公众号 &#x1f91a;我的博客 欢迎光临我的博客&#xff1a;https://blog.csdn.net/qq_52434217?typeblog &a…

两个系统中的数据匹配方法

一、首先介绍几种常用的相似度计算 1.1最长公共子序列(LCS) 最长公共子序列&#xff08;Longest Common Subsequence&#xff0c;简称LCS&#xff09;是在两个或多个序列中寻找最长的公共子序列的问题。这里所说的“子序列”指的是原序列中元素的子集&#xff0c;但保持元素的原…