sql修改字段长度

MYSQL数据库开发规范

巧了我就是萌 提交于 2019-12-02 19:15:34
MYSQL数据库开发规范 (一) 建表规约 1.【推荐】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint ( 1 表示是,0 表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。 2.【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库 名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。 正例:mer_category,pub_area,level3_name 反例:mercategory,pubarea,level_3_name 3.【强制】表名不使用复数名词。 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于DO类名也是单数形式,符合表达习惯。 4.【强制】禁用保留字,如desc、range、match、delayed 等,请参考 MySQL 官方保留字。 5.【强制】主键索引名为 pk_字段名;唯一索引名为 uniq_字段名;普通索引名则为 idx_字段名。 说明:pk_ 即

django model 高级进阶

对着背影说爱祢 提交于 2019-12-02 18:24:51
十.model高级用法: 10.1 ORM映射: Object Relational Mapping: orm映射的任务: 将list ,object 的操作转化为sql语句,根据对象生成数据表,将查询对象转换为对象和数据list 减少代码,重构,不需要因为数据库结构变化修改业务代码 模型类对应对应一张表,属性对应模型对应该模型对照表的对应的字段 10.2字段:Field高级用法: AutoField一个自增整数类型字段,一个模型对照表只允许一个主键且自增字段必须为主键pk BigAutoField(1.10新增)64位整数类型自增字段,范围更大:1~9223372036854775807 IntegerField 整数类型范围:-2147483648~2147483647 SmallIntegerField小整数,包含[-32768~32767] BigIntegerField(64位整数字段):范围-9223372036854775808~9223372036854775807 PositiveIntegerField (正整数字段)范围:包含[0~214748364] PositiveSmallIntegerField较小的正整数字段,从0到32767 BinaryField二进制数据类型,不能使用filter函数获得QuerySet CharField字符串类型

阿里巴巴开发手册五

蹲街弑〆低调 提交于 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、【强制

Django的日常-模型层(2)

蓝咒 提交于 2019-12-02 16:06:35
目录 Django的日常-模型层(2) 几种常用的查询方式 聚合查询 分组查询 F和Q查询 查询优化相关 orm中常见字段 orm的事务操作 Django的日常-模型层(2) 几种常用的查询方式 聚合查询 ​ 聚合,我们应该有这个概念,因为在数据库的SQL语言里面有聚合函数的概念,聚合,字面意思来说,就是把一类东西放在一起,但是跟分组又不太一样. ​ 我们知道我们在写SQL语句的时候,分组groupby和聚合函数是分不开的,因为一旦select语句里面有分组,那么我们就只能查询到分组依据的字段以及一些聚合函数组成的字段,别的字段写在select后面会报错的. ​ 所以,既然ORM是用来操作数据库的,那么我们在使用聚合查询的时候,就要遵循这个规律.聚合查询的具体用法如下: # 首先导入聚合函数,聚合函数的关键字为aggregate from django.db.models import Max,Min,Sum,Count,Avg # 大概格式为:models.表名.objects.查询方式(匹配条件).aggregate(聚合函数(表中的字段)) res = models.Book.objects.all().aggregate(Avg('price')) print(res) 分组查询 ​ 分组查询的关键字为annotate,使用起来非常的简单

Dango 常用字段和参数

只愿长相守 提交于 2019-12-02 14:38:01
一、Django ORM 常用字段和参数 1.常用字段 models中所有的字段类型其实本质就那几种,整形varchar什么的,都没有实际的约束作用,虽然在models中没有任何限制作用,但是还是要分门别类,对于校验性组件校验非常有用 就比如说邮箱类型,你在输入邮箱的时候如果不按照邮箱格式输入,瞎鸡儿输入会提示你不合法,虽然输入的是字符串,但是不是规定的邮箱字符串 AutoField()   【int primary key auto_increment)】 int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 IntegerField()   【int()】一个整数类型,范围在 -2147483648 to 2147483647。(一般不用它来存手机号(位数也不够),直接用字符串存 CharField()   【varchar()】 字符类型,必须提供max_length参数, max_length表示字符长度。 DateField()   【date】日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。 DateTimeField()   【datetime】日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]

索引

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

数据库基础

。_饼干妹妹 提交于 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

数据库学习笔记

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

MYSQL 基操

三世轮回 提交于 2019-12-01 23:34:19
传授有缘人 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables -- 修改root密码 密码加密函数password() update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- /* 数据库操作 */ ------------------ -- 查看当前数据库 select database(); -- 显示当前时间、用户名、数据库版本 select now(), user(), version(); -- 创建库 create database[ if not exists] 数据库名 数据库选项 数据库选项: CHARACTER SET charset_name COLLATE collation_name -- 查看已有库 show databases[ like 'pattern'] -- 查看当前库信息 show create database 数据库名 -- 修改库的选项信息 alter database 库名 选项信息 -- 删除库

mysql 常用 sql 语句 - 快速查询

假装没事ソ 提交于 2019-12-01 17:57:35
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup h:host, default: localhost P:port, default: 3306 u:username p:password(如果需要的话) eg:mysql.exe -hlocalhost -P3306 -uroot -p123456 1.1.2 mysql 客户端发送指令 1.1.3 服务器接收 sql 指令,处理并返回结果 1.1.4 客户端接收并显示结果 1.1.5 断开连接(释放资源,服务器并发限制) exit quit \q 1.2 mysql 数据库服务器 在刚学习的阶段,没有办法了解服务器内部的对象,只能粗略的去分析数据库服务器内部的结构 mysql 服务器内部对象分成了四层: 系统(DBMS)->数据库(DB)-> 数据表(TABLE)-> 字段(FIELD) 2.SQL 基本操作 SQL 基本操作根据操作对象分为三类:库操作,表操作(字段操作),数据操作 一个小操作: 注释: -- 注释,记住必须有空格在 -- 后面 # 注释 2.1.库操作 2.1.1 新增数据库 create database name [库选项]; 库选项:用来约束数据库,分为两个选项 字符集设定:charset