数据库

mysql数据库的命令操作

南楼画角 提交于 2020-03-16 12:30:05
-- 数据库的操作 -- 链接数据库 mysql -uroot -p mysql -uroot -pmysql -- 退出数据库 exit/quit/ctrl+d -- sql语句最后需要有分号;结尾 -- 显示数据库版本 select version(); -- 显示时间 select now(); -- 查看所有数据库 show databases; -- 创建数据库 -- create database 数据库名 charset=utf8; create database python04; create database python04new charset=utf8; -- 查看创建数据库的语句 -- show crate database .... show create database python04; -- 查看当前使用的数据库 select database(); -- 使用数据库 -- use 数据库的名字 use python04new; -- 删除数据库 -- drop database 数据库名; drop database python04; -- 数据表的操作 -- 查看当前数据库中所有表 show tables; -- 创建表 -- auto_increment表示自动增长 -- not null 表示不能为空 -- primary key

Django进阶

前提是你 提交于 2020-03-16 11:16:19
连接数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xxx', 'HOST': '', 'PORT': '', } } # 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替 # 如下设置放置的与project同名的配置的 __init__.py文件中(即settings.py相同目录下的__init__.py) import pymysql pymysql.install_as_MySQLdb()  一、建表 1、在models.py里面添加 from django.db import models # Create your models here. class UserInfo(models.Model): nid = models.AutoField(primary_key=True) username = models.CharField(max_length=32) pwd = models.CharField(max_length=32) age = models.IntegerField() 2

django时间的时区问题

允我心安 提交于 2020-03-16 11:12:55
在用django1.8版本做项目的时候遇到时间的存储与读取不一致的问题,网上找了很多帖子,但都没有讲明白。本文将在项目中遇到的问题及如何解决的尽可能详细的记录下来,当然本文参考了网上大量相关文章。 在django1.4以后,存在两个概念:naive time 与 active time。简单点讲,naive time就是不带时区的时间,相关Active time就是带时区的时间。举例来说,使用datetime.datetime.utcnow()、datetime.datetime.now()输出的类似2015-05-11 09:10:33.080451就是不带时区的时间(naive time),而使用django.util.timezone.now()输出的类似2015-05-11 09:05:19.936835+00:00的时间就是带时区的时间(Active time),其中+00:00表示的就是时区相对性。 另外一个概念UTC时间。这里不做过多介绍,需要知晓的是UTC时间表示的是格林尼治平均时即可,即零区时间。而北京时间表示的是东八区时间,即UTC+8。 下面列出了几个常见的时区问题,并提供相关原因,如有不对,欢迎指出。 问题一:三个时间datetime.datetime.now()、datetime.datetime.utcnow()与django.util.timezone

Oralce 日常维护

给你一囗甜甜゛ 提交于 2020-03-16 10:10:16
查看数据库的连接情况 DBA要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能会需要DBA手工进行清理。 以下的SQL语句列出当前数据库建立的会话情况: select sid,serial#,username,program,machine,status from v$session; 其中, SID 会话(session)的ID 号; SERIAL# 会话的序列号,和SID 一起用来唯一标识一个会话; USERNAME 建立该会话的用户名; PROGRAM 这个会话是用什么工具连接到数据库的; STATUS 当前这个会话的状态,ACTIVE 表示会话正在执行某 些任务,INACTIVE表示当前会话没有执行任何操作; 如果 DBA要手工断开某个会话,则执行: alter system kill session 'SID,SERIAL#'; 注意,上例中SID 为1 到7(USERNAME 列为空)的会话,是Oracle 的 后台进程,不要对这些会话进行任何操作。 检查数据库文件的状态 DBA要及时查看数据库中数据文件的状态(如被误删除),根据实际情况 决定如何进行处理,检查数据文件的状态的SQL如下: select file_name,status from dba_data_files;

大数表决

老子叫甜甜 提交于 2020-03-16 08:58:02
借鉴于: 异构的冗余数据库的构成可以有三种形式:运行在相同操 作系统上的不同类型的数据库;运行在不同操作系统上的同种 类型的数据库;运行在不同操作系统上的不同类型的数据库。 前两种构成形式的实现较简单,但是抵御攻击的能力较弱,只 能分别防范针对 DBMS 漏洞或 OS 漏洞的攻击。第三种形式实 现复杂,但是可以同时防范针对数据库漏洞和操作系统漏洞的 攻击。对于一些未知的漏洞,使用表决的方法来识别,该方法的 思想是:同样的输入被送给同一组件,输出也是相同的;如果输 出不同,可以认定系统的某个构件发生了错误。 应用: 大数表决原理:对输出结果进行直接的决定性的比较,如果相同 的输出结果的个数在所有输出结果中占到超过一半的比例,那么 这个输出结果就被作为一致同意的结果(最终结果)反馈给用户。 如果没有超过一半的比例,则选取其中最大子集。 特例:如果出现两个相同的最大子集,则只能根据结果集倒退验证。 来源: https://www.cnblogs.com/zyt-bg/p/12501698.html

理解乐观锁与悲观锁

坚强是说给别人听的谎言 提交于 2020-03-16 08:05:44
  DBMS中并发控制的任务是确保多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性   乐观锁和悲观锁是并发控制主要采用的技术手段。   无论是乐观锁还是悲观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库中有乐观锁和背锅所的盖面,其他很多地方都有类似的概念。   针对不同的业务场景,应该选用不同的并发控制方式,所以,不要把乐观锁和悲观锁下一的理解为DBMS中的概念,更不要把他们和数据库中提供的锁机制混为一谈。其实,在DBMS中,悲观锁正式利用数据库本身的锁机制来实现的。   悲观锁   在关系数据库中,悲观锁是一种并发控制的方法,它可以组织一个事务一影响其他用户的方式来修改数据。如果一个事务执行的操作嗾使某行数据应用了锁,那只有当这个事务把锁释放,其他事务才能够执行与该锁冲突的操作。   悲观锁主要用于数据征用激烈的环境,以及发生并发冲突时使用锁保护数据的成本要低于回滚事务的成本的环境中。   悲观锁指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往一句数据库提供的锁机制(也只有数据库层提供的锁机制擦能真正保证数据访问的排他性,否则,及时在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)   在数据库中

Python 导入 Excel 到数据库

∥☆過路亽.° 提交于 2020-03-16 03:00:26
Python 导入 Excel 到数据库 Python作为简单易学的脚本语言,在处理系统运维工作时,也由很大帮助。要知道CentOS的包管理工具就是通过Python编写的。 在实际工作过程中,用户提供的基础数据往往是基于Excel整理的,将Excel数据导入数据库是一个十分常见的需求。本文将介绍如何基于Python3实现读取Excel数据,并导入到数据库。 本程序中会应用到两个包,可以通过pip安装 pip install openpyxl pyodbc 程序结构如下图所示 入口模块通过Run来执行。它依赖SqlHelper以及ExcelHelper。SqlHelper负责数据库读取的操作,ExcelHelper负责Excel读取操作。ExcelHelper通过读取Excel文件,解析为一个Model类型的数组。SqlHelper通过读取这个Model数组,来进行数据库操作。 run.py 入口模块代码如下: #通过from ... import引入其他模块 from excelHelper import ExcelHelper from sqlHelper import SqlHelper def run(): importxls('xls/xxx.xlsx') def importxls(path): # 读取excel文件,获取model列表 excelHelper =

Discuz!NT 系统架构分析

跟風遠走 提交于 2020-03-16 02:07:42
前一段时间负责负责论坛的迁移工作,对其架构进行了简单的整理。前几天看到有人说 discuz的介绍很少,因此整理了一下,发布出来。 也是第一次发表文章,大侠们手下留情。 Discuz 整体架构如下图所示: 横向表示 同一层次中涉及的各个模块 ( 项目 ) 纵向表示 不同层次之间模块的关系,某些关系是如何在各层次中传递 ( 穿越 ) Discuz 架构上采用了比较流行的三层架构,即表现层,业务逻辑层,数据访问层来进行设计,并结合自己的情况进行了特殊处理。 表现层: 表现层即为上图中蓝色虚线表示 , 主要包括 :Web , Services , UI , Control 。各项目主要功能为: UI 定义各种页面基类,提供 Ajax 访问访问接口。 Control 存放 Discuz 用到的自定义服务器端控件。 Services 提供外部访问接口。 Discuz 引入了一种模板引擎的机制,来实现表现层的多样化。 主要设计思想为:针对设计人员,提供纯静态页面,并提供了一套约定的语法和标签( 具体位置在: templates )。模板制作完成后,要进行模板导入,此时 discuz 会将静态模板进行解析将其转换成 aspx 页面,然后放到 aspx/1..n 下。如果你打开这下面的文件,会发现前端只是一个字符串拼接的过程。要进行的逻辑判断,都放到了后台代码中。后台代码只有一份,所有的 aspx

Vs2010程序和数据库打包成安装文件

蹲街弑〆低调 提交于 2020-03-16 02:06:53
Vs2010 程序和数据库打包成安装文件 1、新建一个安装程序,(可重命名) 2 、新建一个类库并改名为【 InstallDB 】 3 、将【 InstallDB 】中的 class1.cs 删除 4、右击添加一个新安装类 5 、点击“应用程序文件夹”右击添加文件,将所要打包的程序“ bin — >Debug ”所有文件 要添加的将会在左边显示! 创建自定义安装对话框 5.在刚新建的安 装项目上右键,【视图】 -> 【用户界面】: 在用户界面中,右键【启动】 - 【添加对话框】 - 选择【文本框 (A) 】 - 确定。 6.然后右键这个 文本框 (A) ,将其 上移到欢迎使用下面: 右键选择【属性】,参考下图的信息填写: 9.在查 找范围里选择应用程序文件夹,再点击右侧的【添加输出 (O) …】 , 选择刚新建的 安 装程序类项目, 默认还是主输出,确定。此时: 10.右键这个 【主输出来自 InstallDB( 活动 ) 】 , 进入属性界面,在【 CustomActionData 】属性里输入下面的内容: /dbname=[DBNAME] /server=[SERVER] /user=[USER] /pwd=[PWD] /targetdir="[TARGETDIR]\" 说明:其中前四个方括号中的大写字母,为上面第 6 步图中输入的 四个 EditProPerty 属性

Django-- 多数据库联用

不羁岁月 提交于 2020-03-16 00:24:25
django项目中使用多个数据库的方法, 多个数据库的联用 以及多数据库时数据导入导出的方法。 直接给出一种简单的方法吧,想了解更多的到官方教程, 点击此处 给每个app都可以单独的设置一个数据库 settings.py 数据库的相关设置,有一个默认的数据库default,我们在添加一些其他的 # Database # https://docs.djangoproject.com/en/1.8/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'db1': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dbname1', 'USER': 'your_db_user_name', 'PASSWORD': 'yourpassword', "HOST": "localhost", }, 'db2': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dbname2', 'USER': 'your_db_user_name', 'PASSWORD':