数据表

Mysql中数据表的完整复制

守給你的承諾、 提交于 2020-03-18 20:24:55
将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: 12 CREATE TABLE mytbl_new LIKE production.mytbl;INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。 第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。 注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。 假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库。 来源: https://www.cnblogs.com/amboyna/archive/2009/07/10/1520402.html

MyBatis(3)

自作多情 提交于 2020-03-17 03:29:32
1.MyBatis的逆向工程 MyBatis逆向工程可以根据表创建对应的POJO类、Mapper接口、SQL映射文件。MyBatis是通过MyBatis Generator【MyBatis生成器:简称MBG】来实现逆向工程的。 MyBatis逆向工程缺点:只能处理单表! 2.MyBatis基于注解的增删改查 MyBatis支持基于xml的SQL语句,也支持基于注解的SQL语句。 基于xml标签 Insert:往数据表中插入数据 Select:从数据表中查询数据 Delete:删除数据表的数据 Update:更新数据表中的数据 关联查询 resultMap标签 result标签:普通字段映射 association标签:处理对一的关联关系 collection标签:处理对多的关联关系 常用注解: @insert: 代替insert标签 @Select:代替原来select标签 @delete:代替原来的delete标签 @update:代替原来的update标签 关联查询 @results:代替原来的resultMap标签 @Result:代替result标签 @one:代替原来的association标签 @Many:代替原来的collection标签 关联查询: X对一的关联关系【2种解决方案】 需求:在查询员工信息的时候,顺带着将员工所属的部门信息也查询出来。 第一种方式:

Spring Boot 数据访问

这一生的挚爱 提交于 2020-03-17 03:20:38
1、整合JDBC <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> yaml spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/jdbc driver-class-name: com.mysql.cj.jdbc.Driver initialization-mode: always 效果: ​ 默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源; ​ 数据源的相关配置都在DataSourceProperties里面; 自动配置原理: org.springframework.boot.autoconfigure.jdbc: 1、参考DataSourceConfiguration,根据配置创建数据源

MySQL 查询优化

99封情书 提交于 2020-03-14 09:41:14
1、MySQL 查询统计数据表行数三种方式:select count(*) 、select count(1) 、select count(具体字段),三者查询效率是怎么样的呢? 解答: 在MySQL InnoDB 存储引擎中,count(*) 和count(*) 都是对所有结果进行count。如果有where 子句,则是对所有筛选条件的数据行进行统计;如果没有where子句,则是对数据表的数据行数进行统计。 因此count(*) 和 count(1) 本质上并没有区别,执行的复杂度都是O(N),也就是采用全表扫描,进行循环+计数的方式进行统计。 如果是MySQL MyISAM 存储引擎,统计数据表的行数只需要O(1)的复杂度,这是因为每张MyISAM的数据表都有一个meta信息存储了row_count值,而一致性则由表级锁来保证,因为InnoDB支持事务,采用行级锁和MVCC机制,所以无法像MyISAM一样,只维护一个row_count变量,因此采用扫描全表,进行循环+计数的方式来完成统计; 在执行过程中,count(*) 和 count(1)执行时间略有差别,不过效率可以基本看成是相等的。 一般情况,三者的执行效率count(1) = count(*) >count(字段)。我们尽量使用count(*),当然如果你知道你要统计的是某个字段的非空数据行数,则另当别论

Django 实现上传图片功能

假如想象 提交于 2020-03-14 03:50:18
  很多时候我们要用到图片上传功能,如果图片一直用放在别的网站上,通过加载网址的方式来显示的话其实也挺麻烦的,我们通过使用 django-filer 这个模块实现将图片文件直接放在自己的网站上。 感兴趣的同学可以看下官方介绍: https://github.com/divio/django-filer 1. 使用 pip 安装。 pip install django-filer 这个模块需要 django-mptt, easy_thumbnails, django-polymorphic 以及 pillow 这些依赖包, 不过安装django-filer的时候 pip 都会自动帮我们装好这些。 2. django-filer 配置。 在 settings.py 中加入以下内容: INSTALLED_APPS = [ # 图片上传模块 django-filer 'easy_thumbnails', 'filer', 'mptt', ] # 支持视网膜高分辨率设备 THUMBNAIL_HIGH_RESOLUTION = True # 处理缩列图 THUMBNAIL_PROCESSORS = ( 'easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.autocrop', 'filer.thumbnail

MySQL常用命令行

空扰寡人 提交于 2020-03-13 09:33:40
/*--> */ /*--> */ MySQL常用命令行 1、登陆、退出MySQL 命令行 作用 mysql -u<用户名> -p<你的密码> 本地登陆数据库服务器。 如:mysql -uroot -p123456 mysql -h<主机地址> -u<用户名> -p<你的密码> 远程登陆数据库服务器。 如:mysql -h127.00.000 -uroot -p123456 exit; 退出数据库服务器。 2、密码操作 命令行 作用 mysqladmin -u<用户名> password <新密码> 创建密码。 如: mysqladmin -uroot -password 123456 mysqladmin -u<用户名> -p<旧密码> password <新密码> 修改密码。 如:mysqladmin -uroot -p123456 password 654321 3、数据库相关操作 命令行 作用 create database <数据库的名称> 在数据库服务器中创建数据库。 如:create database test; show databases; 查询数据库服务器中的所有数据库。 drop database <数据库名称> 删除数据库。 如:drop database test; use <数据库名称>; 连接一个数据库进行操作。 如:use test; 4

MYSQL 数据库索引

梦想的初衷 提交于 2020-03-12 17:05:07
索引概述 在MySQL中,索引由数据表中一列或多列组合而成,创建索引的目的是为了优化数据库的查询速度。其中,用户创建的索引指向数据库中具体数据所在位置。当用户通过索引查询数据库中的数据时,不需要遍历所有数据库中的所有数据。这样,大幅度提高了查询效率。 MySQL索引概述 1.索引是一种将数据库中单列或者多列的值进行排序的结构。应用索引,可以大幅度提高查询的速度。 2.用户通过索引查询数据,不但可以提高查询速度,也可以降低服务器的负载。 3.应用MySQL数据库时,并非用户在查询数据的时候,总需要应用索引来优化查询。 4.整体来说,索引可以提高查询的速度,但是会影响用户操作数据库的插入操作。 MySQL索引分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 创建索引 创建索引是指在某个表中至少一列中建立索引,以便提高数据库性能。其中,建立索引可以提高表的访问速度。本节通过几种不同的方式创建索引。其中包括在建立数据库时创建索引、在已经建立的数据表中创建索引和修改数据表结构创建索引。 在建立数据表时创建索引 在建立数据表时可以直接创建索引,这种方式比较直接,且方便、易用。 基本语法结构如下: create table table_name( 属性名 数据类型[约束条件], 属性名 数据类型[约束条件] …… 属性名 数据类型 [UNIQUE |

数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出

独自空忆成欢 提交于 2020-03-12 08:15:19
此题如果直接使用有序的TreeMap就不需要这样折腾: 1.map的key值唯一性,故就不在需要set集合来去重 2.使用map后利用key的唯一性,把序列号相同的数据直接加在一起,代码会很简洁 package com . pagination . plus . workTrain ; import com . alibaba . fastjson . JSON ; import java . io . FileInputStream ; import java . io . FileNotFoundException ; import java . util . * ; public class Main3 { public static void main ( String [ ] args ) throws FileNotFoundException { Scanner in = new Scanner ( new FileInputStream ( "D:\\JavaData\\tmp/input.txt" ) ) ; //Scanner in = new Scanner(System.in); while ( in . hasNext ( ) ) { //注意while处理多个case String strNum = in . nextLine ( ) ; int

MySQL——三范式示例

六眼飞鱼酱① 提交于 2020-03-10 16:38:02
数据库范例 创建一个小型数据库存放关于书的信息:书名、出版商、作者、出版日期 一范式 内容相似的数据列必须消除(消除的方式是再创建一个数据表来存放他们) 必须为每一组相关数据分别创建一个数据表 每条数据记录必须用一个主键来标识 应用第1条和第3条,可得到如下数据表 问题:一本图书每增加一位作者,title、pubName、year就必须重复一次 三、二范式 数据表里的内容重复出现,就意味着必须将表拆分成多个子表 拆分形成的数据表必须用外键关联起来 问题:authName字段数据还有重复 解决方案:对author表进行拆分,把titleID列拆分出去,创建第3个数据库表存放那些图书有哪些作者的信息 四、三范式 与主键没有关系的数据列都必须消除 本示例中的title表中的pubName列与图书的名字并没有必然的联系 来源: oschina 链接: https://my.oschina.net/u/2679804/blog/669332

数据库的三范式

与世无争的帅哥 提交于 2020-03-10 15:08:18
范式:符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。 简单来说可以把它粗略的理解为一张数据表的表结构所符合的某种设计标准的级别。就像英语46级,相对代表了英语水平的高低。 满足这些规范的数据库是简洁的,结构明晰的,同时,不会发生增删改操作异常。 数据库范式分为 1NF 2NF 3NF BCNF 4NF 5NF一般我们在设计数据库结构的时候最多只要满足到BCNF就可以了,符合高一级的范式必须符合第一级的范式。 一般设计数据库表的时候符合第三范式就很不错了。 1NF的定义:符合1NF的关系中的每个属性都不可以再分。 在使用数据库管理系统的时候比如mysql,SqlServer等创建的数据表都满足1NF,如果不满足这个范式,是不能创建成功数据表的。属性不可再分割的意思是每一个字段都是最小的,不包含其他字段。不重复,原子性。 例如:字段:姓名 不包含其他字段:年龄。 注意:这里说的是字段而不是字段的值! 下面是一个 学生表! 这种就是错误的,性别不能包含班级,科目,老师 下面这种才是正确的1NF 1NF存在的问题: 数据冗余,插入异常,删除异常,修改异常的问题。 数据冗余:张三的很多信息都要重复很多次 插入异常:如果要新建一个班级,并且有班级主任。但是因为还没有学生开始学习,所以主键(id就是学号)是空的,肯定是不能插入的。 删除异常