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

MySQL数据库入门,pycharm连接数据库—详细讲解

一.安装MySQL

1.常用MySQL5.7,首先安装MySQL,

(一)

 (二)

(三)

(四)

(五)

2.配置环境变量

打开MySQL安装路径,在其中找到bin文件,复制路径,打开系统高级设置,点击环境变量,在下方找到path,将bin文件路径粘贴其中。

3.检验安装是否完成

win + r  输入cmd,打开命令提示符,输入指令:net start | find "MySQL",这将显示正在运行的服务中是否包含 MySQL。如果 MySQL 服务正在运行,你会看到类似 MySQL 的输出。

4.连接mysql

指令:mysql -u root -p,回车后会提示输入root密码,如果连接成功,你将进入 MySQL 的命令行界面。

二.MySQL常用指令

1.数据库

create database  数据库名 charset=utf8;  创建数据库

show databases;  显示所有数据库

use 数据库名;       使用数据库名

 drop database 数据名;  删除数据库

2.数据表

show tables;          显示数据库中所有表

create table 表名 (列名 类型 约束1 约束2,列名 类型 约束1 约束2,...);         创建表

desc 表名; 查看表结构

删除列名

 添加列名

修改列名

3.约束

主键: primary key

非空:not null

自增长:auto_increment

唯一:unique

默认值:default 

外键:foreign key

检查:check   (mysql8才能用)

4.增删改查

(1)查

select * from 表名;   适用于表中数据相对较少时

select 列名,列名 from 表名;

select 列名 as 别名,列名 as 别名 from 表名;

1.1.where 条件

比较运算符  =  >=   >  <=   <  !=     <>

逻辑运算符  and   or  not 

判空   is null, is not null

精确比较     in     in [a, b, c] 

范围比较  between and      between 5 and 10

像   like   %  代表多个字符    _ 一个字符

1.2.关联查询
嵌套查询

 第一次查询的结果作为第二次查询的条件

表连接
笛卡尔连接

一个表中每一行都和另外一个表中所有行连接

内连接

inner join 

例子:select user.id as 用户id, user.username as  用户名, role.nick as 昵称, role.level as 等级 from user inner join role  on user.id = role.user_id;

外连接

左外连接  left join    以左表为主,左表条件满足 正常显示 不满足 右侧补null

例子:select * from user left join role on user.id = role.user_id;

右外连接 right join   以右表为主,右表条件满足 正常显示 不满足 左侧补null

例子:select * from role right join user on user.id = role.user_id;

全连接

left join   union  right join

例子: select * from user right join role on user.id = role.user_id union  select * from user left join role on user.id = role.user_id;

1.3.去重,分组,排序,分页
去重

distinct   单独列展示 并对列去重

例子: select  distinct user_id from role;

分组

group by

一般结合count(*)进行统计   

例子: select info as '组信息', count(*) as 个数 from role group by info;

排序

列排序

order by           asc 升序    desc  降序

例子:select * from role order by user_id desc , id  asc  ;

分页

limit 

一个数字n代表前n个   limit n

两个数字m n    limit m , n

例子:select * from role limit 5;        select * from role limit 2,2;

(2)增

insert into 表名 values  (值1,值2,值3), (值1,值2,值3);     值的个数与列的个数一致

insert into 表名 (列1,列2,列3) values (值1,值2,值3);        可以指定 哪些列的数据,没有默认值的列必须插入

insert into   表名  set  列1=值1,列2=值2;                   插入1行指明插入的列与其值

(3)改

update 表名 set 列1 = 值1 where 条件;

如果没有 where 条件 就修改整个表。

(4)删

delete from 表名 where 条件;

如果没有  where 条件 就清空表

5.用户

创建用户

create user '用户名'@'%' identified by '123456';

分配权限

grant 权限列举  on 数据库名.表名  to '用户名'@'%';   all 所有权限   *.*   所有数据库中的所有表

删除用户

drop user  '用户名'@'%';

修改密码

alter user ‘用户名’@‘%’  identified by ‘123456’;

6.外键

关系型数据库表与表之间存在关联关系

外键:一个表中的某一列是另外一个表中的主键

创建,添加

constraint  外键名 foreign key   (列名)  references  表 (列)on update  cascade  on 
 delete   cascade;

删除

alter table 表名 drop foreign key 外键名;

7.函数

查看当前数据库

select database();

查看当前用户

select  user();

查看版本

select version();

现在时间

select now();

当前日期

select curdate();

当前时间

select curtime();

时间戳

select unix_timestamp();

三.mysql与pycharm

首先安装对应的包,打开终端,输入:pip install pymysql

第一步:导入模块

 

第二步:构建连接实例

user指的是用户名,

password指的是用户密码,

select_db 指的是数据库名。

第三步:构建游标

第四步 :关闭游标,关闭连接

这样数据库就与mysql连接上了。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 算法的学习笔记—调整数组顺序使奇数位于偶数前面(牛客JZ21)
  • CSS的:valid和:invalid伪类:增强表单验证的视觉反馈
  • PyTorch 基础学习(7)- 自动微分
  • 【计算机人接私活】手把手教你上手挖到第一个漏洞,从底薪3k到月入过万,只有一步之遥!
  • C语言 ——— 枚举类型的定义及其优点
  • Qt-多种方式实现helloworld(6)
  • 技术周总结08.12-08.18周日(C#开发环境搭建 Linux命令)
  • 蓝图中结构体改变后,要重新创建widget
  • 系统开发之禁止卸载应用名单
  • 图卷积(GCN)
  • 第一章——数组基础(概念篇python版)
  • Android+Jacoco+code-diff全量、增量覆盖率生成实战
  • 共享经济背景下校园、办公闲置物品交易平台-计算机毕设Java|springboot实战项目
  • 系统架构设计师 - 软件工程(2)
  • Mysql面试一
  • 分享一款快速APP功能测试工具
  • 【5+】跨webview多页面 触发事件(二)
  • ES2017异步函数现已正式可用
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Redis中的lru算法实现
  • Sass 快速入门教程
  • Terraform入门 - 1. 安装Terraform
  • 构建二叉树进行数值数组的去重及优化
  • 记录:CentOS7.2配置LNMP环境记录
  • 算法-图和图算法
  • 移动端解决方案学习记录
  • k8s使用glusterfs实现动态持久化存储
  • ​Spring Boot 分片上传文件
  • #、%和$符号在OGNL表达式中经常出现
  • #java学习笔记(面向对象)----(未完结)
  • $.ajax()
  • (11)MSP430F5529 定时器B
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (分类)KNN算法- 参数调优
  • (规划)24届春招和25届暑假实习路线准备规划
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (南京观海微电子)——I3C协议介绍
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .net 7和core版 SignalR
  • .NET程序员迈向卓越的必由之路
  • /bin/rm: 参数列表过长"的解决办法
  • @SuppressWarnings注解
  • @WebService和@WebMethod注解的用法
  • @拔赤:Web前端开发十日谈
  • [10] CUDA程序性能的提升 与 流
  • [AHK V2]鼠标悬停展开窗口,鼠标离开折叠窗口
  • [Android Pro] AndroidX重构和映射
  • [android] 看博客学习hashCode()和equals()
  • [BT]BUUCTF刷题第8天(3.26)
  • [C#]OpenCvSharp 实现Bitmap和Mat的格式相互转换
  • [C#]实现GRPC通讯的服务端和客户端实例
  • [C++]四种方式求解最大子序列求和问题
  • [CLR via C#]11. 事件
  • [cogs2652]秘术「天文密葬法」
  • [git]git命令如何取消先前的配置