MySQL 的增删改查以及 pymysql 的使用

MySQL 的启动和停止

Linux 环境

启动: service MySQL start

停止: service MySQL stop

重启: service MySQL restart

Windows 环境

启动: net start MySQL

停止: net stop MySQL

客户端登陆 MySQL

语法 MySQL -u 用户名 -p 密码 -hip -P 端口号

示例: MySQL -uroot -p123456 -h127.0.0.1 -P3306

关于用户的命令

注: 命令中的 % 和 * 都是通配符的意思, 表示所有

查看当前用户: select user();

设置当前用户密码: set password = password("123456"); #123456 是新密码

创建一个用户:

语法: create user "用户名"@"登陆的 ip" identified by "密码";

示例: create user "zhangsan"@"192.168.1.%" identified by "123456" ; # 给 192.168.1.X 网段用户设置一个用户, 只要是该网段的电脑都可以远程登陆数据库

查看权限:

语法: show grants for "用户名"@"ip";

示例: show grants for "root"@"127.0.0.1";

授予权限:

语法 grant 权限 on 数据库名. 表名 to "用户名"@"ip" identified by "密码"

示例: grant all on *.* to "root"@"127.0.0.2" identified by "123456";

数据库中的权限 all,select,insert, update, delete, create, drop, reload, shutdown, process, file, references, index, alter, show databases, super, create temporary tables, lock tables, execute, replication slave, replication client, create view, show view, create routine, alter routine, create user, event, trigger, create tablespace

刷新权限: flush privileges;

移除权限:

语法: revoke 权限名 on 数据库. 数据表 from "用户名"@"ip";

示例: revoke delete on *.* from "root"@"127.0.0.1";

删除用户:

语法: drop user "用户名"@"ip";

示例: drop user "root"@"127.0.0.1";

数据库的操作

使用数据库: user mydatabase # mydatabase 是数据库名

新增数据库:

语法: create database 数据库名 charset 编码

示例: create database user charset utf8mb4;

查看数据库

查看所有数据库: show databases;

查看建库语句: show database create user; # user 是数据库名字

修改数据库: alter database user charset gbk; # 将数据库名为 user 的编码改为 gkb

删除数据库: drop database user;

数据表的操作

要对数据表进行操作, 就必须先数据数据库

新增数据库

语法: create table 数据表名 (字段名 1 类型 约束 1 约束 2, 字段名 2 类型 约束 1 约束 2, 字段名 3 类型 约束 1 约束 2,); # 类型必须是 MySQL 中有的类型, 约束是对字段的约束, 后文有介绍

示例: create table t1(id int primary key,name varchar(32) not null unique);

查看数据表

查看所有数据表: show tables;

查看建表语句: show create table t1; #t1 是要查看数据表

修改数据表:

语法: alter table 数据表名 操作类型 修改的属性 修改值 # 对于常用类型个一个实例

示例 1:alter table t1 midify name char(32) ; #修改字段 name 的数据类型

示例 2:alter table t1 change name studentname varchar(32); # 修改字段 name 的名字和数据类型

示例 3:alter table t1 add age int; # 新增一个字段

示例 4:alter table t1 drop column age; # 删除一个字段

示例 5:alter table t1 rename t2; # 修改数据表的名字

删除数据表: drop table t1;

数据的操作

新增数据:

语法: insert into 数据表 (字段名 1, 字段名 2, 字段名 3 .....) values(数据 1, 数据 2, 数据 3...),(数据 1, 数据 2, 数据 3...),(数据 1, 数据 2, 数据 3...); # 字段名的位置没有要求, 只要与数据对应即可, 可以同时插入多条数据, 用元组分开即可, 如果所有字段都会插入值, 且数据位置与表中的顺序一致, 可以省略字段名的书写

完整示例: insert into t1(id,name) values(1,"张三"),(2,"李四"),(3,"王五"); # 由于插入数据是所有字段且顺序与建表一致, 所以可以简写

简写: insert into t1 values(1,"张三"),(2,"李四"),(3,"王五");

查询数据库:

语法: select 查询字段 from 数据表 where 条件 group by 分组字段 having 分组后过滤条件 order by 排序字段 limit 查询条数;

示例: selece id from t1 where age>18 group by id having id>10 order by -id limit 3 ; # 排序 - id 表示按照 id 降序排序

简便示例: select id,name from t1 where id>2; # 这种简便查询可以满足大部分单表查询了

修改数据库

语法: update 数据表名 set 字段名 = 字段值 where 条件;

示例: update t1 set name = "赵四" where id = 3;

删除数据:

语法: delete from 数据表名 where 满足删除的条件;

truncate table 数据表 # 删除整个数据表的数据;

示例: delete from t1 where id=1;

truncate t1;

数据库的常用类型

tinyint 1 个字节 有符号 (-128 ~ 127) 无符号 (0 ~ 255) 小整型值

int 4 个字节 有符号 (-21 亿 ~ 21 亿) 无符号 (0 ~42 亿) 大整型值 , 精度更高

float(255,30) 单精度

double(255,30) 双精度

decimal(65,30) 一般用于表达金钱类型, 是使用字符串的形式保存的小数

char(11) 定长: 固定开辟 11 个长度的空间 (手机号, 身份号) 速度快

varchar(11) 变长: 最大开辟字符长度为 11 的空间 (文章评论 5~255 个评论字数) 相较于 char 速度慢

text 这种类型专门用于存储文章, 论文, 小说.

enum 和 set 的数据类型, 必须从中进行挑选, enum 枚举 从一组数据中选一个 (性别),set 集合 从一组数据中选多个, 自动去重

数据库中的约束

unsigned: 无符号整型

not null : 非空

default: 设置默认值

unique: 唯一

primary key: 主键, 一张表只能有一个

auto_increment; 自增加一

foreign key 外键, 用来关联其他表

zerofill; 存储数据不足设置长度, 用 0b 填充

数据查询的使用

where 中查询条件

判断:,<=,>=,!=,<> 拼接: not,and,or

区间: between small and big 在 small 和 big 之间的值, in [值 1, 值 2......] 在中括号中的值

模糊查询: like "%a_%" % 代表任意长度任意字符,_代表长度为 1 的任意字符

group by 分组查询

分组查询可以使用聚合函数, 常用有

计算数量: count(字段名)

最值: max(字段名),min(字段名)

均值: avg(字段名)

和: sum(字段名)

python 使用数据库

1. 创建连接

语法: 对象 = pymysql.connect(host="ip",port = 端口号, user="用户名",password="密码",database="数据库名",charset="编码")

示例: conn= pymysql.connect(host="127.0.0.1",port=3306,user="root",password="12345",database="user",charset="utf8mb4")

2. 创建游标对象:

cursor = conn.cursor()

3. 写 sql 语句放到一个变量中:

sql = "select * from t1"

4. 执行语句:

res = cursor.execute(sql)

5. 查看数据或提交数据res=fetchall()

conn.commit()

6. 关闭连接cursor.close()

conn.close()

7. 回滚:

conn.roll_back()

来源: http://www.bubuko.com/infodetail-3257460.html

pymysql的mysql补丁_MySQL 的增删改查以及 pymysql 的使用相关推荐

  1. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  2. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  3. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  4. 使用 NodeJS+Express+MySQL 实现简单的增删改查

    关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...

  5. mysql源生插入数据_php+mysql源生连接数据库和增删改查数据

    php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...

  6. MySQL基础知识之增删改查

    MySQL基础知识之增删改查 MySQL基本语法: 1.创建库:create database 库名: 创建带编码格式的库:create database 库名 character set 编码格式: ...

  7. MySQL(1) 数据库的增删改查

    MySQL(1) 数据库的增删改查 # 如果存在删除 drop database if exists kh69; # 创建数据库 create database kh69; # 进库 use kh69 ...

  8. mysql数据库增删改查关键字_MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句) 一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码) 二.SQL语句: 数据定义语言DDL  用来定义数据库.表.列,关键 ...

  9. mysql增删改查不区分大小写吗_MySQL的增删改查语句以及数据库设计的三大范式...

    数据库设计的三大范式: 1.列的原子性,即列是不可再分的 2.表里的每一列都应该与主键有关系, 3.表里的每一列都应该与主键有直接关系, 当使用自增长列不满足2.3范式,是特殊例子,只用在解决较为复杂 ...

最新文章

  1. 如何在java中去除中文文本的停用词
  2. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember
  3. 微信小程序【腾讯云开发】创建并上线小程序项目(涉及-数据库操作)
  4. python笔记1:字符串处理函数
  5. 微型计算机与接口技术考试题,微机原理与接口技术试题库2
  6. 数据算法与结构基本知识
  7. json字符串,JSON对象,JSON数组的区别与相互转换
  8. java 树形菜单遍历_java实现遍历树形菜单方法——service层
  9. 聊一聊晋升带来的思考
  10. 潜流式人工湿地计算_「环保技术」农村混合污水人工湿地处理
  11. sklearn学习笔记之preprocessing
  12. Cox比例风险回归模型单因素多因素生存分析
  13. 2015061403 - firebug下载地址
  14. php 去高去低去平均值,招标评分必备,去掉最高最低分求平均值
  15. wamp下载和使用PHPDocumentor
  16. python脚本1 - PPT导出为图片(WinLinux)
  17. 一个小白的自渡-Git 仓库基础操作
  18. 网上图书商城网上书店系统(jsp+mysql)
  19. 如何用计算机制作动态图,电脑怎么制作动态图,如何制作动态壁纸
  20. 未来五年移动互联网有哪些热门技术?(转)

热门文章

  1. funcode 音乐播放、提示及提示消失、时间显示等(c++版)
  2. Android开发k歌软件,安卓电视k歌软件哪个好?
  3. including用法
  4. 《东周列国志》第四十八回 刺先克五将乱晋 召士会寿余绐秦
  5. QT - 创建UDP Socket通信
  6. 华为手机下拉菜单变大_华为手机下拉菜单变少了 华为下拉通知栏变白色
  7. FleaPHP 域名事件搞笑版
  8. LTE终端状态汇总:
  9. 肩负移动未来的“LTE”,终端开发遭遇两个壁垒
  10. ansible的变量和机密