开发者日记 - MySQL
type: channel
link: https://blog.web3er.cn/tag/mysql/
items: 掌握MySQL基础：实用教程与示例
items: mysql基本使用命令
items: python使用orm操作数据库，最全解释看这一篇就够了！

掌握MySQL基础：实用教程与示例
type: item
date: 2023-03-23T13:16:00+08:00
description: SQL 基础语法创建数据库使用 CREATE DATABASE 语句创建新数据库。例如：CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这将创建一个名为 my_database 的数据库，并设置字符集为 utf8mb4，校对规则为 utf8mb4_unicode_ci。创建表使用 CREATE TABLE 语句创建新表。例如：CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );这将创建一个名为 users 的表，包含以下字段：id（自动递增的整数，作为主键）、name（非空的字符串，最大长度50）、age（整数）、email（唯一的字符串，最大长度100）和 created_at（时间戳，默认值为当前时间戳）。插入数据使用 INSERT INTO 语句向表中插入数据。例如：INSERT INTO users (name, age, email) VALUES ('John Doe', 30, 'john@example.com'), ('Jane Doe', 28, 'jane@example.com'), ('Alice', 25, 'alice@example.com');这将向 users 表中插入3条记录。查询数据使用 SELECT 语句查询表中的数据。例如：SELECT id, name, age FROM users WHERE age > 25 ORDER BY age DESC;这将查询 users 表中年龄大于25的用户，并按年龄降序排列。更新数据使用 UPDATE 语句更新表中的数据。例如：UPDATE users SET age = age + 1 WHERE id = 1;这将将 users 表中 id 为1的用户年龄加1。删除数据使用 DELETE FROM 语句删除表中的数据。例如：DELETE FROM users WHERE id = 3;这将删除 users 表中 id 为3的用户。使用聚合函数聚合函数对数据进行汇总操作。例如：SELECT COUNT(*) FROM users; -- 计算总记录数 SELECT SUM(age) FROM users; -- 计算所有用户年龄之和 SELECT AVG(age) FROM users; -- 计算用户的平均年龄 SELECT MIN(age) FROM users; -- 计算最小年龄 SELECT MAX(age) FROM users; -- 计算最大年龄使用连接 (JOIN)连接用于将多个表的数据组合在一起。例如：-- 假设有另一个表 orders，关联用户表 users SELECT users.name, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id WHERE orders.total > 1000;这将查询在 orders 表中订单总额大于1000的用户名称和订单日期。使用子查询子查询允许在一个查询中使用另一个查询的结果。例如：SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE total > 100);以上就是 SQL 基础语法的介绍。

mysql基本使用命令
type: item
date: 2023-03-09T15:26:00+08:00
description: 增加数据：INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);删除数据：DELETE FROM table_name WHERE condition;修改数据：UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;查询数据：SELECT column1, column2, ... FROM table_name WHERE condition;

python使用orm操作数据库，最全解释看这一篇就够了！
type: item
date: 2023-03-07T19:08:00+08:00
description: 总体代码如下，后面单独解释每个含义from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import MigrateCommand from flask_migrate import Migrate from flask_script import Manager,Server #实例化一个Flask 对象 app = Flask(__name__) #设置连接数据库的配置,这是以mysql db 为示例来讲解 app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:test@127.0.0.1:3306/dbtest1" #如果设置为True,将跟踪对象的修改并发出信号，默认设置为None app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False #查询时会显示原始SQL语句 app.config['SQLALCHEMY_ECHO']=True #这个对象就包含 sqlalchemy 和 sqlalchemy.orm 中的所有函数和助手 db = SQLAlchemy(app) manager = Manager(app) Migrate(app,db) #创建数据库映射命令 manager.add_command('db',MigrateCommand) #创建启动命令 manager.add_command('start',Server(port=8000,use_debugger=True)) class Role(db.Model):#提供一个名为 Model 的类，用于作为声明模型时的 delarative 基类 __tablename__ = 'roles' #给表起名 id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64),unique=True) us = db.relationship("User",backref="role") icon = db.Column(db.String(40),default='default.jpg') def __repr__(self):#用于显示一个可读字符串 return "Role:%s" %self.name class User(db.Model): __tablename__ = 'users' #给表起名 id=db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64),unique=True,index=True) email = db.Column(db.String(64),unique=True) pswd = db.Column(db.String(64)) role_id=db.Column(db.Integer,db.ForeignKey('roles.id')) def __repr__(self): return "User:%s"% self.name if __name__ == '__main__': # db.drop_all() # db 对象调用 SQLAlchemy.drop_all() 方法来删除表: # db.create_all() # db 对象调用 SQLAlchemy.create_all() 方法来创建表: # manager.run() #创建 role1=Role(name="admin") role2=Role(name="test") db.session.add(role1) db.session.commit() db.session.add(role2) db.session.commit() #必须提交会话，但是没有必要在每个请求后删除它(session)，Flask-SQLAlchemy 会帮您完成删除操作 user1=User(name="wang",email="test1@126.com",pswd="1234",role_id=role1.id) user2=User(name="test",email="test2@126.com",pswd="1234",role_id=role2.id) db.session.add_all([user1,user2]) db.session.commit() #查询 user1=User.query.filter_by(name="wang") roles=Role.que…