sql增加字段

阿里巴巴开发手册五

蹲街弑〆低调 提交于 2019-12-02 18:18:17
四、安全规约 1、【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 2、【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。 3、【强制】用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入, 禁止字符串拼接 SQL 访问数据库。 4、【强制】用户请求传入的任何参数必须做有效性验证。 忽略参数校验可能导致: page size过大导致内存溢出 恶意order by导致数据库慢查询 任意重定向 SQL注入 反序列化注入 正则输入源串拒绝服务ReDoS 5、【强制】禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。 6、【强制】表单、AJAX 交必须执行 CSRF 安全过滤。 CSRF(Cross-site request forgery)跨站请求伪造是一类常见编程漏洞。对于存在 CSRF 漏洞的应用/网站,攻击者可以事先构造好 URL,只要受害者用户一访问,后台便在用户 不知情情况下对数据库中用户参数进行相应修改。 7、【强制】在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放限制, 如数量限制、疲劳度控制、验证码校验,避免被滥刷、资损。 8、【推荐】发贴、评论、发送即时消息等用户生成内容的场景必须实现防刷、文本内容违禁词过 滤等风控策略。 五、MySQL数据库 (一)建表规约 1、【强制

Java开发数据库设计的14个技巧,你知道几个?

我是研究僧i 提交于 2019-12-02 16:33:02
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。 因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。 3. 基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性: 原子性。基本表中的字段是不可再分解的。 原始性。基本表中的记录是原始数据(基础数据)的记录。 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。 稳定性

day41

爱⌒轻易说出口 提交于 2019-12-02 16:28:01
目录 数据库 什么是数据库? 为什么使用数据库?(*************) Excel的缺点: 数据库的分类:(*********) 关系型数据库 非关系型数据库 最大区别: mysql的架构 流程: mysql的安装(windows) windows安装: mysql服务端不会阻塞住 修改mysql的密码: 常用参数:(*********************) 忘记密码,操作方式: 初始mysql 操作数据库(*******************************************************) 操作数据表 操作记录 数据库 什么是数据库? 字面意思:存数据的仓库 为什么使用数据库?(*************) 之前都是使用Excel来进行管理数据, Excel的缺点: 管理不了大量的数据(10w量级的数据) 并发操作同一个数据表格 数据支持高级的操作,比如:分组,连表等 数据库的分类:(*********) 关系型数据库 对每一列的数据类型会有约束,id(整型),name(字符串) maridb,MySQL ——》用的比较多,免费 SqlServer ——》微软,大学,政府(汽车之家) Oracle ——》甲骨文,收费,金融公司,阿里 sqlite ——》小型的文件数据库,自己玩玩 等 非关系型数据库 memcache ——》十年前的产品

MySQL 数据库的基本使用

余生颓废 提交于 2019-12-02 13:52:22
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,而MySQL AB 公司被 Oracle 公司收购,故 MySQL 现在属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL 是开源的,所以你可以免费使用它。 MySQL 支持大型的数据库,可以处理拥有上千万条记录的大型数据库。但是根据实际生产经验,当单表的数据量达到三千万之后,数据库性能急剧下降,甚至整个数据库都瘫痪了,登录不上。 MySQL 使用标准的 SQL 数据语言形式,结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 MySQL 安装好了之后,就可以登录使用了。最主要就是使用 SQL 进行增删改查的操作。 1、查看数据库 \ # mysql -u root -p'P@ssw0rd' mysql> show databases; 2、切换数据库 mysql> use mysql; 注意: 1:information_schema # 这个数据库保存了 MySQL 服务器所有数据库的信息。如数据库名,数据库的表

如何优化MySQL千万级大表

风格不统一 提交于 2019-12-02 13:05:53
很好的一篇博客,转载 如何优化MySQL千万级大表 原文链接:: https://blog.csdn.net/yangjianrong1985/article/details/102675334 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。 从一开始脑海里开始也是火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。 既然要吃透这个问题,我们势必要回到本源,我把这个问题分为三部分: “千万级”,“大表”,“优化”, 也分别对应我们在图中标识的 “数据量”,“对象”和“目标”。 我来逐步展开说明一下,从而给出一系列的解决方案。 1.数据量:千万级 千万级其实只是一个感官的数字,就是我们印象中的数据量大。 这里我们需要把这个概念细化,因为随着业务和时间的变化,数据量也会有变化,我们应该是带着一种动态思维来审视这个指标,从而对于不同的场景我们应该有不同的处理策略。 1) 数据量为千万级,可能达到亿级或者更高 通常是一些数据流水,日志记录的业务,里面的数据随着时间的增长会逐步增多,超过千万门槛是很容易的一件事情。 2) 数据量为千万级,是一个相对稳定的数据量 如果数据量相对稳定,通常是在一些偏向于状态的数据,比如有1000万用户

索引

a 夏天 提交于 2019-12-02 11:14:51
一.什么叫索引: 索引就是类似书的目录,提高检索数据的效率。 索引是系统按照某个具体的算法(哈希,散列,二叉树),将数据从全部数据里进行提取,维护成一个索引文件,然后系统在进行数据查询的时候,发现如果查询条件刚好满足索引条件,就可以从索引文件中快速的定位的数据所在位置。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 ** 二.索引类型包括: 普通索引(index) 对数据没有要求,文件很大,效率比较低,但是查询速度相对较快。 ALTER TABLE 表名字 ADD INDEX index_name ( 需要加索引的列 ) 全文索引(fulltext) 全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR、TEXT列创建,Sysman支持全文索引。MySQL5.6.后InnoDB引擎也加入了全文索引对文本的内容进行分词,因为MySQL提供了支持中文、日文和韩文的内置全文ngram解析器。 具体化 ALTER TABLE 表名 ADD FULLTEXT ( 需要加索引的列 ) 唯一索引(unique key) 唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值(null)。如果是组合索引,则列值的组合必须唯一。创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。 ALTER TABLE 表名 ADD UNIQUE

COUNT总结

ⅰ亾dé卋堺 提交于 2019-12-02 10:55:26
计数函数有几种写法,count(1),count(字段),count(*),他们的区别如下: COUNT(expr) ,返回SELECT语句检索的行中expr的值不为NULL的数量。 COUNT(*) 的统计结果中,会包含值为NULL的行数。基于这个条件,count(1),count(*)里面都有明确的值,将返回所有符合查询条件的数据;count(字段)会在查询条件的基础上过滤字段为NULL的数据。 初次看到这样的解释还是比较迷惑,简单理解可以把COUNT里面的值当做一个查询条件,当为1或者*的时候相当于where 1=1,当为某个字段的时候相当于增加了一个条件where 字段 is not null。 count(*)为标准的sql语法,在这个语句上专门做了优化,如果没有查询条件的情况下,count(*)会直接从元数据表中读取记录的数据行数,这是最快的。如果有查询条件执行器会选择最优的路径的执行,例如索引优先,非聚集索引优先等。 count(1)和count(*)在各个方面没有差别,是一样的执行方式;count(字段)会执行全表扫描并且增加字段非空条件;推荐使用count(*),因为是标准语法。 来源: https://blog.csdn.net/study_gis/article/details/102753962

学习笔记

风流意气都作罢 提交于 2019-12-02 07:00:40
第一章数据库的简介 数据库 数据库(dataBase,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。 数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。 数据库管理系统软件 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。 它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。 它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。 大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。 数据库管理系统是数据库系统的核心,是管理数据库的软件。 数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。 有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。 常见的数据库管理软件:甲骨文的oracle,IBM的db2,sql server,

数据库基础

。_饼干妹妹 提交于 2019-12-02 06:58:44
数据库 数据库(dataBase,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。 数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。 数据库管理系统软件 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。 它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。 它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。 大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。 数据库管理系统是数据库系统的核心,是管理数据库的软件。 数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。 有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。 常见的数据库管理软件:甲骨文的oracle,IBM的db2,sql server, Access

springboot整合mybatis通用Mapper

你。 提交于 2019-12-02 03:41:35
参考: https://blog.csdn.net/x18707731829/article/details/82814095 https://www.jianshu.com/p/6d2103451dcb SpringBoot整合MyBatis Generator可以帮助我们快速生成实体类、接口、mapper.xml文件,可以提高开发的效率,但是每次新增表都要执行一次Generator生成相应的代码,这样重复的操作生成增删查改重复的的代码,有没有一种通用的接口,不用生成mapper.xml文件,就可以调用通用接口的方法,实现单表的增删改查操作呢,这就是tk.mybatis.mapper 支持单表操作,不支持通用的多表联合查询。 通用mapper的作用:调用通用接口的方法,实现单表的增删改查操作,不需要写大量的sql语句在xml文件中 开发人员不需要编写sql语句,不需要在dao中增加方法,只要写好实体类,就能支持相应的增删改查方法 通用mapper详解 使用通用mapper,默认继承了如下方法 Select 方法:List<T> select(T record); 说明:根据实体中的属性值进行查询,查询条件使用等号 方法:T selectByPrimaryKey(Object key); 说明:根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号 方法:List