python web开发 MySQL数据库基础

文章目录

    • 1. 简介
    • 2. 下载安装
    • 3. 操作 MysQL 数据库
      • 3.1 创建数据库
      • 3.2 选择数据库
      • 3.3 查看数据库
      • 3.4 删除数据库
    • 4. 数据类型
    • 5. 操作 MysQL 数据表
      • 5.1 创建数据表
      • 5.2 查看表的结构
      • 5.3 修改表的结构
      • 5.4 删除数据表
    • 6. 操作 MySQL 数据表记录
      • 6.1 添加数据
      • 6.2 查询、修改、删除

learning from 《python web开发从入门到精通》

1. 简介

  • MySQL 是目前最为流行的开源数据库,网络化跨平台关系型数据库
  • 特点:功能强大(多种引擎),跨平台,速度快(B树磁盘表+索引压缩),免费,支持多种语言,存储容量大(由外部操作系统对文件大小的限制决定)

2. 下载安装

跳过登录,下载 (mysql-installer-community-8.0.27.1.msi) 470MB:https://dev.mysql.com/downloads/

下载慢?使用清华源 https://mirrors.tuna.tsinghua.edu.cn/
点击它:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQLInstaller/mysql-installer-community-8.0.27.1.msi

我选的 Full 全量安装,添加 path 环境变量 C:\Program Files\MySQL\MySQL Server 8.0\bin

  • mysql -u root -p,再输入安装时设置的密码就可以进入了
> mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

3. 操作 MysQL 数据库

3.1 创建数据库

  • create database DBname;
mysql> create database michaeldata;
Query OK, 1 row affected (0.05 sec)
  • 表名,不能重名
mysql> create database michaeldata;
ERROR 1007 (HY000): Can't create database 'michaeldata'; database exists
  • 可以 是 字母, 阿拉伯数字,下划线,$ ,中的任意字符开头,但不能纯数字,名称最长64个字符,别名最多256个字符
  • 不能是 内置的关键字
  • 各平台间的表名 大小写 敏感度不一样,建议都用小写表名
mysql> create database 123data;
Query OK, 1 row affected (0.03 sec)mysql> create database $;
Query OK, 1 row affected (0.04 sec)mysql> create database 123;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123' at line 1
# window 大小写不敏感
mysql> create database michaeldatA;
ERROR 1007 (HY000): Can't create database 'michaeldata'; database exists

3.2 选择数据库

  • use DBname;
mysql> use michaeldata;
Database changed

显示当前数据库

select database();
mysql> select database();
+-------------+
| database()  |
+-------------+
| michaeldata |
+-------------+
1 row in set (0.00 sec)

3.3 查看数据库

  • show databases;已经存在的数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| $                  |
| 123data            |
| information_schema |
| michaeldata        |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
9 rows in set (0.02 sec)

3.4 删除数据库

  • drop database DBname;(慎重,没有备份 是恢复不了的)
mysql> drop database $;
Query OK, 0 rows affected (0.04 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| 123data            |
| information_schema |
| michaeldata        |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
8 rows in set (0.00 sec)

4. 数据类型

数字

  • TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT

字符串

  • 普通文本:CHAR,VARCHAR(后者长度可变)
  • TEXT适合存储长文本BLOB适合存储二进制数据(文本,声音,图像)
    两者也可以带前缀 tiny,medium,long,对应范围不同
  • ENUM枚举,SET一组值

日期和时间

  • DATETIME,DATE,TIMESTAMP,TIME,TEAR,如果赋值不合法,会被0代替

5. 操作 MysQL 数据表

5.1 创建数据表

  • CREATE TABLE table_name (column_name column_type);
mysql> create table users(-> id int(8) auto_increment primary key,-> username varchar(30) not null,-> password varchar(30) not null,-> createtime datetime);
Query OK, 0 rows affected, 1 warning (0.08 sec)

在这里插入图片描述

5.2 查看表的结构

  • show columns from 数据库.数据表;
mysql> show columns from users;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int         | NO   | PRI | NULL    | auto_increment |
| username   | varchar(30) | NO   |     | NULL    |                |
| password   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
4 rows in set (0.00 sec)
  • describe 表名;可简写为 desc 表名,也可只看某列(后面加列名)
mysql> describe users; 
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int         | NO   | PRI | NULL    | auto_increment |
| username   | varchar(30) | NO   |     | NULL    |                |
| password   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> desc users createtime;
+------------+----------+------+-----+---------+-------+
| Field      | Type     | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| createtime | datetime | YES  |     | NULL    |       |
+------------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)

5.3 修改表的结构

  • alter table 表名 alter_spec[,alter_spec]

可参考:https://www.w3cschool.cn/mysql/mysql-alter.html

例如,添加新字段 address,更改 username 为 varchar(50)

ALTER TABLE users
add address varchar(52) not null,
modify username varchar(50)
mysql> desc users;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int         | NO   | PRI | NULL    | auto_increment |
| username   | varchar(50) | YES  |     | NULL    |                |
| password   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
| address    | varchar(52) | NO   |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

5.4 删除数据表

  • drop table 表名;
mysql> create table temp(id int);
Query OK, 0 rows affected (0.09 sec)mysql> drop table temp;
Query OK, 0 rows affected (0.05 sec)

避免报错 if exists

mysql> drop table temp;
ERROR 1051 (42S02): Unknown table 'michaeldata.temp'mysql> drop table if exists temp;
Query OK, 0 rows affected, 1 warning (0.03 sec)

6. 操作 MySQL 数据表记录

6.1 添加数据

mysql> insert into users(id, username, password, createtime, address)-> values (1, 'michael', '123', '2021-12-01 00:00:10', 'China');
Query OK, 1 row affected (0.03 sec)
mysql> select * from users;
+----+----------+----------+---------------------+---------+
| id | username | password | createtime          | address |
+----+----------+----------+---------------------+---------+
|  1 | michael  | 123      | 2021-12-01 00:00:10 | China   |
+----+----------+----------+---------------------+---------+
1 row in set (0.00 sec)
  • 如果是全部列的数据都有,可以省略 列名
mysql> insert into users-> values (3, 'happy', '456', '2021-12-01 15:14:10', 'China');
Query OK, 1 row affected (0.03 sec)mysql> select * from users;
+----+----------+----------+---------------------+---------+
| id | username | password | createtime          | address |
+----+----------+----------+---------------------+---------+
|  1 | michael  | 123      | 2021-12-01 00:00:10 | China   |
|  3 | happy    | 456      | 2021-12-01 15:14:10 | China   |
+----+----------+----------+---------------------+---------+
2 rows in set (0.00 sec)
mysql> insert into users(id, username, password, address)-> values (4, 'bird', '789', 'China');
Query OK, 1 row affected (0.04 sec)mysql> select * from users;
+----+----------+----------+---------------------+---------+
| id | username | password | createtime          | address |
+----+----------+----------+---------------------+---------+
|  1 | michael  | 123      | 2021-12-01 00:00:10 | China   |
|  3 | happy    | 456      | 2021-12-01 15:14:10 | China   |
|  4 | bird     | 789      | NULL                | China   |
+----+----------+----------+---------------------+---------+
3 rows in set (0.00 sec)

6.2 查询、修改、删除

查询 select col from table where...
参看:文中的 前置入门学习

修改和删除,记得带 where 条件,否则对整张表操作

  • where 在 group by 之前,having 在 group by 之后

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

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

相关文章

oracle计算每月最小工作日,Oracle计算指定日期内的工作日(不包含周末)

1、获取当天是礼拜几:select to_char(sysdate,d) from dual; --礼拜天为1,礼拜一为2,类推2、获取 两个时间段间的 工作日:select (trunc(&end_dt - &start_dt) -((caseWHEN (8 - to_number(to_char(&start_dt,D))) &g…

简单几何(极角排序) POJ 2007 Scrambled Polygon

题目传送门 题意:裸的对原点的极角排序,凸包貌似不行。 /************************************************ * Author :Running_Time * Created Time :2015/11/3 星期二 14:46:47 * File Name :POJ_2007.cpp******************************…

python 操作MySQL数据库

文章目录1. 安装 PyMySQL2. 连接对象3. 游标对象4. 增删改操作cursor.execute(sql)cursor.executemany(sql, seq_of_params)5. 查询操作6. ORM编程常用 python ORM 库learning from 《python web开发从入门到精通》 1. 安装 PyMySQL conda 虚拟环境下安装 pip install pymysq…

go oracle编程,go基础编程(一):第一个go程序-hello word

环境搭建环境搭建是在deepin操作系统上进行1. 下载go安装程序wget https://golang.org/dl/go1.16.linux-amd64.tar.gz以上是下载go1.16的版本,如需其他版本,请移步官网下载。2. 解压程序包到指定目录tar-C/usr/local-xzf go1.16.linux-amd64.tar.gz3. 添…

反射,System.Type类

http://m.blog.csdn.net/blog/woddle/40623333 两个现实中的例子:1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型…

python web框架基础

文章目录1. Web框架简介1.1 MVC1.2 模板引擎2. 常用 Python Web 框架3. 虚拟环境4. 部署方式learning from 《python web开发从入门到精通》 1. Web框架简介 简化 web 开发的软件框架 一般都支持:管理路由,支持数据库,MVC,ORM&…

导Excel数据到Oracle的脚本,Oracle使用TOAD实现导入导出Excel数据

在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的。Quest Software为此提供了高效的Oracle应用开发工具-Toad。在Toad的新版本中,还加入了DBA模块&a…

Chapter 14 Exercises Problems

转载于:https://www.cnblogs.com/momoko/p/4937730.html

FastAPI 结合 SQLAlchemy 操作 MySQL 数据库

文章目录1. 安装 SQLAlchemy2. 创建数据库3. SQLAlchemy 连接 MySQL4. 创建数据模型5. 创建 Pydantic 模型6. crud 工具7. main函数learning from 《python web开发从入门到精通》 1. 安装 SQLAlchemy pip install sqlalchemy 2. 创建数据库 mysql -u root -p 命令行登录 M…

oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库

Oracle 19c 随系统systemctl启动数据库一、 修改oratab文件[rootadg19c ~]# grep woo /etc/oratabwoo:/DBSoft/oracle/product/19.3/dbhome_1:N[rootadg19c ~]# sed -i s/:N/:Y/ /etc/oratab[rootadg19c ~]# grep woo /etc/oratabwoo:/DBSoft/oracle/product/19.3/dbhome_1:Y二…

调用exe文件(一般处理登陆安全窗口)+睡眠等待(--------------------)

在测试basic认证的时候,处理windows弹窗的问题时,是用autoit进行处理的,最终转成一个.exe文件,然后再用java调用该exe文件。 1、调用自己打包的exe文件(如下下例子) package com.gmsd.gommon; import java.…

LeetCode 2094. 找出 3 位偶数

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 digits ,其中每个元素是一个数字(0 - 9)。数组中可能存在重复元素。 你需要找出 所有 满足下述条件且 互不相同 的整数: 该整数由 digits 中的三个元素按 任意 顺序 依次连接 …

oracle追踪触发器语句,Oracle中怎样通过触发器来追踪用户的活动?

从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE)。这些系统级别的触发器包括数据库启动触发器,DDL触发器和最终用户登陆/注销触发器。当Oracle提…

TotoiseSVN 使用参考文章

SVN使用教程总结 http://www.cnblogs.com/armyfai/p/3985660.html TotoiseSVN的基本使用方法 http://www.cnblogs.com/xilentz/archive/2010/05/06/1728945.html windows svn server and client and plugin的下载地址 https://www.visualsvn.com/downloads/ VisualSVN Server |…

oracle oci.dll的作用,ASP.NET bin目录中的Oracle oci.dll无法删除/不起作用

我按照这里的指示:http://splinter.com.au/blog/?p156尝试使用较新版本的ODP.NET而不安装Oracle 11g客户端.到目前为止,除了重启IIS之外,我都遵循了一切.然而,这引起了一些问题,我真的很好奇为什么.如果我尝试使用ODP.NET,我遇到了Oracle连接尝试连接时抛出的空白异…

POJ 3041 Asteroids (对偶性,二分图匹配)

题目:POJ 3041 Asteroids http://poj.org/problem?id3041 分析: 把位置下标看出一条边,这显然是一个二分图最小顶点覆盖的问题,Hungary就好。 挑战: 输出一组可行解。构造,已知二分图的两个点集U和V&#…

LeetCode 2095. 删除链表的中间节点(快慢指针)

文章目录1. 题目2. 解题1. 题目 给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x…

linux 普通用户间切换,Linux中管理员用户与普通用户之间的切换

jsp页面添加一个集合数组到action(用序列化提交)页面的js //点击a标签增加删除 var i0; $("#a").on("click",function(){ var $newtr $("& ...JS 随机数function GetRandomNum(Min,Max){ var Range Max - Min; var Rand Math.random(); return…

sql 函数 总结

聚合函数 Avg(numeric_expr)返回integer、decimal、money、float---返回组中各值的平均值 Count(*|column_name|distinct column_name) 返回integer---返回表中的记录数|返回指定列的数目|返回指定列的不同值的数目 Count_big(*|column_name|distinct column_name…

LeetCode 2096. 从二叉树一个节点到另一个节点每一步的方向(最小公共祖先)

文章目录1. 题目2. 解题1. 题目 给你一棵 二叉树 的根节点 root ,这棵二叉树总共有 n 个节点。 每个节点的值为 1 到 n 中的一个整数,且互不相同。 给你一个整数 startValue ,表示起点节点 s 的值,和另一个不同的整数 destValue …