mysql+pymysql_Mysql与Pymysql

这次介绍mysql以及在python中如何用pymysql操作数据库, 以及在mysql中存储过程, 触发器以及事务的实现, 对应到pymysql中应该如何操作.

**首先我们在cmd窗口中展示常见的sql命令: **

连接数据库 mysql -u root -p

1be724551bdc?open_source=weibo_search

连接后显示

显示数据库 show databases;

1be724551bdc?open_source=weibo_search

显示所有的数据库

创建数据库, 设置默认编码为utf-8以及默认的排序方式 create database pymysql_db default charset utf8 collate utf8_general_ci;

选择用那个数据库 use pymysql_db;

显示当前数据库所有的表 show tables;

**用户操作以及用户权限部分(不做演示, 不常用, 备查即可): **

创建用户 create user 用户名 @ ip地址 identified by 密码;

删除用户 drop user 用户名 @ ip地址;

用户名修改 rename user 用户名 @ ip地址 to 新用户名@ip地址;

修改指定用户密码 set password for 用户名 @ ip地址 = Password(新密码)

查看权限 show grants for 用户 @ ip地址

给指定用户增加权限 grant 权限 on 数据库.表 to 用户 @ ip地址

取消指定用户的权限 revoke 权限 on 数据库.表 from 用户 @ ip地址

常见权限: 除grant外的所有权限 all privileges; 无访问权限 usage; 查询权限 select; 创建表权限 create; 删除表内容权限 delete

用户 @ ip地址表示用户在指定ip地址下才能访问, 当ip地址为%时候表示任意地址均可访问(默认即是)

**数据表的相关操作: **

*userinfo表创建如下: *

-- 创建一个名为userinfo的表

CREATE TABLE `userinfo` (

-- 创建一个int类型的字段nid, 该字段不能为空, 且自动递增(注意: 一个表中只能允许一个自增的字段)

`nid` INT (11) NOT NULL AUTO_INCREMENT,

-- 创建一个varchar类型的字段name, 默认为空(varchar为变长类型, 这里指的是该字段最多占32位, 但是查询效率不如char定长类型)

`name` VARCHAR (32) DEFAULT NULL,

`color_nid` INT (11) DEFAULT NULL,

-- 指定nid为主键(主键在一个表中是唯一不重复的, 此处可以使用多个字段组合成主键, 只要组合不唯一即可, 主键默认会自动创建索引)

PRIMARY KEY (`nid`),

-- 声明一个名为userinfo_ibfk_1的外键, 该外键由当前表中的color_nid与color表中的nid对应(说白了就是color_nid必须是color表中nid字段具有的值才行)

CONSTRAINT `userinfo_ibfk_1` FOREIGN KEY (`color_nid`) REFERENCES `color` (`nid`)

-- 指定当前数据库的引擎为INNODB, 默认字符集为utf-8(INNODB可支持事务)

) ENGINE = INNODB DEFAULT CHARSET = utf8;

*表color创建如下: *

CREATE TABLE `color` (

`nid` int(11) NOT NULL AUTO_INCREMENT,

`tag` varchar(32) DEFAULT NULL,

PRIMARY KEY (`nid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除表(表结构以及表内容) drop table 表名

删除表内容(自增不会影响) delete from 表名

删除表内容(自增也清零) truncate table 表名

修改表结构

增加一列 alter table 表名 add 列名 类型

删除一列 alter table 表名 drop column 列名

修改列类型 alter table 表名 modify column 列名 新类型;

修改列名称和列类型(类型保持不变也可) alter table 表名 change 原列名 新列名 类型;

指定具体列为主键 alter table 表名 add primary key(列名);

删除指定列的主键 alter table 表名 modify 列名 int, drop primary key;

删除当前表中所有列的主键 alter table 表名 drop primary key;

为当前表中列指定外键 alter table 从表(当前表) add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);

删除外键 alter table 表名 drop foreign key 外键名称

修改默认值 alter table 表名 alter 列名 set default 新默认值;

删除默认值 alter table 表名 alter 列名 drop default;

**mysql中字段的常见类型: **

二进制位 bit(长度)

tinyint[(长度)] [有无符号unsig

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值