mysql update语句

1105 笔记

£可爱£侵袭症+ 提交于 2019-12-03 15:26:50
ROM框架 ORM对象映射关系 类名 -- 表名 对象 -- 记录 对象.属性 --- 字段 1.定义表字段的类型 2.创建元类,限制表类的创建 ''' 元类需要处理的问题: 1.一张表必须要有一个表名。 2.给数据表类,强制必须要有一个主键,主键必须是唯一的。 3.将数据表中,所有的字段对象,都存放在一个独立的字典中 存不是目的,目的是为了取值方便。 ''' 过滤Models类,models类中,什么都不做,将类原路返回。 一张表必须有表名,如果没有则将类名做表名 表名 主键名 定义一个空字典,用来存放字段对象 遍历名称空间的属性判断主键的存在与否 节省资源:mappings字典中与原名称空间中有属性重复,提出属性 3.创建用户表类,继承dict与元类,以解决表类中数据的不一致传参,和主键的限制 ''' ORM对象映射关系 类名 -- 表名 对象 -- 记录 对象.属性 --- 字段 ''' # 1.创建字段的类型 # 创建字段时,create table id int primary key default class Field: def __init__(self,name,column_type,primary_key,default): self.name = name self.column_type = column_type self.primary_key =

day47

让人想犯罪 __ 提交于 2019-12-03 15:22:31
目录 ORM mysql_client ORM 对象关系映射--->映射到数据库MySQL中的数据表 类名 ---》表名 对象 ---》一条记录 对象.属性 ——》字段 作用:模拟Django的ORM,为了,将数据库的增、删、改、查,全部封装成一个个的方式,比如save,delete,update,select. 优点: 使用者无需 关心具体的SQL命令 如何编写。 直接通过调用方法 来执行相对应的SQL命令。 缺点: 更高级的封装导致“执行效率变低” 会逐渐遗忘SQL原生命令。 from mysql_client import MySQLClient # 1.创建字段的类型, 对应数据表中的一个个字段的创建规范 class Field: def __init__(self, name, column_type, primary_key, default): self.name = name self.column_type = column_type self.primary_key = primary_key self.default = default # Integer class IntegerField(Field): def __init__(self, name, column_type='int', primary_key=False, default=0):

java-day23

只谈情不闲聊 提交于 2019-12-03 15:15:21
事务的四大特征:   1.原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。   2.持久性:当事务提交或回滚后,数据库会持久化的保存数据。   3.隔离性:多个事务之间,相互独立。   4.一致性:事务操作前后,数据总量不变。 事务的隔离级别   概念:多个事务之间隔离的,相互独立的。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题。   存在问题     1.脏读:一个事务,读取到另一个事务中没有提交的数据。     2.不可重复读(虚读):在同一个事务中,两次读取到的数据不一样。     3.幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。   隔离级别     1.read uncommitted:读未保存       产生问题:脏读、不可重复读、幻读     2.read committed:读已保存  (Oracle)       产生问题:不可重复读、幻读     3.repeatable read:可重复读  (MySQL默认)       产生问题:幻读     4.serializable:串行化       可以解决所有问题     注意:隔离级别从小到大安全性越来越高,但效率越来越低。     数据库查询隔离级别:       select @@tx

1105 ROM优缺点,MySQL连接类,查插更方法

前提是你 提交于 2019-12-03 15:10:50
ROM 对象关系映射,映射到数据库中的数据表 优点: 使用者不要关心SQL命令具体怎么编写 直接调用方法,来执行对应的SQL命令 缺点: 高级封装导致效率变低 会忘记SQL语句 MySQL连接类 class MySQLClient: #创建连接并获取游标 def __init__(self): self.client = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root', password = '123', database = 'orm_demo', charset = 'utf8', autocommit = True ) self.cursor = self.client.cursor( pymysql.cursors.DictCursor ) #提交查询SQL命令 def my_select(self,sql,value=None): #提交查询的SQL命令 self.cursor.execute(sql,value) #获取查询之后的结果 res = self.cursor.fetchall() return res #封装SQL的插入和更新操作 def my_execute(self,sql,values): try: self.cursor.execute(sql,values)

day39总结

隐身守侯 提交于 2019-12-03 15:09:01
目录 ROM mysql_client 笔记 ROM ''' ORM: 对象关系映射 ---> 映射到数据库MySQL中的数据表 类名 ---> 表名 对象 ---> 一条记录 对象.属性 ---> 字段 模拟Django的ORM,为了,将数据库的 增、删、改、查,全部封装成 一个个的方式,比如: save, delete, update, select。 优点: 使用者无需 关心具体的SQL命令 如何编写。 直接通过调用方法 来执行相对应的SQL命令。 缺点: 1.更高级的封装导致“执行效率变低”。 2.会逐渐遗忘SQL原生命令。 ''' from mysql_client import MySQLClient # 1.创建字段的类型, 对应数据表中的一个个字段的创建规范 class Field: def __init__(self, name, column_type, primary_key, default): self.name = name self.column_type = column_type self.primary_key = primary_key self.default = default # Integer class IntegerField(Field): def __init__(self, name, column_type='int',

Mysql的数据库引擎

烈酒焚心 提交于 2019-12-03 15:02:37
Mysql的数据库引擎 Mysql的逻辑分层 连接层-->服务层--->引擎层--->存储层 什么是数据库引擎 数据库引擎是用于存储、处理和保护数据的核心服务。 当你访问数据库时,不管是手工访问,还是程序访问,都不是直接读写数据库文件,而是通过数据库引擎去访问数据库文件 注意:数据引擎是指表格中的引擎, 数据库引擎innodb与myisam区别 是否支持事务 InnoDB支持事务 对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin transaction和commit之间,组成一个事务; MyISAM不支持, 支持锁的级别不同 InnoDB支持行锁 注意:数据库的主键和索引对锁是有影响的。 在使用for update的时候,在明确使用主键或者索引的时候才会是行锁,否则就是表锁。 MyISAM只支持表锁 是否支持外键 InnoDB支持外键 MyISAM不支持。 对一个包含外键的InnoDB表转为MYISAM会失败; 存放索引的方式 InnoDB是聚集索引, 数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。 因此,主键不应该过大,因为主键太大,其他索引也都会很大。 MyISAM是非聚集索引,数据文件是分离的, 索引保存的是数据文件的指针

MYSQL补充

余生颓废 提交于 2019-12-03 14:55:30
1、视图 视图当作表 2、触发器 insert ... 3、存储过程 insert into tb1() update tb2... 事务:innodb p12(out status int): try: insert into tb1() update tb2... set status=1 except ...: set status=0 call p12() 4、函数 def func(arg): return arg + 100 select nid from student # 1,2,3,4,5,6... select func(nid) from student # 101,102,103,104 select func(1) # 101 函数: mysql内置函数 自定义函数 函数: SQL不允许 declare a int; # set a = 123; select nid into a from student where name='alex' # nid: 11 name:alex # a = 11 return 返回 # select 函数名(参数) 存储过程: sql语句 intout,out构造返回值 call: 存储过程名称 索引 功能: - 约束 - 主键 - 外键 - 唯一 - 普通 - 组合 - 加速查找 为什么索引可以这么快?

第四章 mysql客服端命令管理

大城市里の小女人 提交于 2019-12-03 14:52:09
mysql客户端命令 管理: help ? \h : 查看帮助,查看mysql的管理命令 \G:格式化查询,结果以key:value形式展示 \c:结束当前的sql语句 status \s:查看mysql状态信息 source \.:导入sql文件 use \u:切换数据库 mysqladmin客户端管理命令 #查看MySQL进程是否存活 [root@db01 ~]# mysqladmin ping mysqld is alive #查看mysql信息 [root@db01 ~]# mysqladmin status #关闭mysql进程 [root@db01 ~]# mysqladmin shutdown #查看MySQL当前参数 [root@db01 ~]# mysqladmin variables #库外创建数据库 [root@db01 ~]# mysqladmin create aaa #库外删除数据库 [root@db01 ~]# mysqladmin drop aaa #刷新binlog日志 [root@db01 ~]# mysqladmin flush-log #修改密码 [root@db01 ~]# mysqladmin password '123' SQL语句 DDL 数据定义语言 开发规范:库名,表名 小写 1.库 create(创建) Syntax:

CentOS 6.5下二进制安装 MySQL 5.6

只谈情不闲聊 提交于 2019-12-03 14:37:28
CentOS 6.5下二进制安装 MySQL 5.6 CentOS 6.5 二进制安装MySQL 5.6 1:查看系统版本 1 2 [root@10-4-5-9 mysql]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:下载MySQL5.6二进制包 1 #wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.20-linux-glibc2.5-i686.tar.gz 3:添加用户和组 1 2 #groupadd mysql #useradd -g mysql mysql 4:安装mysql到/usr/local/mysql下 1 2 3 4 5 6 7 #cd /usr/ local #tar zxvf /{MySQL5.6_path}/mysql-{version}.tar.gz 例如我的配置路径为: #cd /usr/ local #tar zxvf /root/mysql-5.6.20-linux-glibc2.5-i686.tar.gz 5:修改解压后文件夹名为 mysql 1 #mv mysql-5.6.20-linux-glibc2.5-i686 mysql 6:修改mysql的各级文件夹和文件的创建者、创建组为mysql(注意语句后面有个 . )

阿里云 centos7 安装mysql数据库

眉间皱痕 提交于 2019-12-03 14:31:58
环境:阿里云ECS服务器,系统为centos7.2 删除原来的数据库: centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下: [root@localhost ~]# rpm -qa|grep mariadb // 查询出来已安装的mariadb [root@localhost ~]# rpm -e --nodeps 文件名 // 卸载mariadb,文件名为上述命令查询出来的文件 然后现在开始将当前目录切换到root也就是: cd ~ 下载与安装MySQL: 这里采用Yum管理好了各种rpm包的依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新。 1.安装MySQL官方的yum repository [root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 2.下载rpm包 [root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm 3.安装MySQL服务 [root@localhost ~]# yum -y install