varchar

市政道桥表结构设计

前提是你 提交于 2020-02-08 02:46:31
智慧道桥监管平台数据库设计说明书 引言 编写目的 为了完成系统的数据结构设计,为下一步的开发做好准备,编写本文档。由于本系统目前是产品的第一个版本,而与竞争产品相比,系统在灵活配置、业务覆盖范围等方面会做比较大的改进。 本文档预期的读者是产品设计、开发人员和测试人员。 背景 产品名称:智慧道桥监管平台 任务提出者:北京数字政通科技股份有限公司 任务开发者:数据服务产品部 第一用户:城管局、市政处 术语定义 设计规范 数据库表规范 (1)表名格式:模块名_表含义名,如 认证中心人员表:auth_human;如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀 (2)不再使用tc_,to_,tr_前缀 (3)表的名称必须易于理解,使用能表达功能的英文单词或缩写英文单词,词间以_分割 (4)在命名表时,用单数形式表示名称。例如,使用auth_human,而不是auth_humans (5)表名用小写 (6)表名称长度不能超过30个字符(几种数据库中Oracle要求最高) (7)职责相近的表,命名规则应该相同 数据库字段规范 (1)业务表须要有主键,例如自增主键 (2)字段名称必须易于理解,使用能表达功能的英文单词或缩写英文单词,词间以_分割 (3)字段名用小写,且需要加入中文注释 (4)字段名称长度不能超过30个字符

mysql数据库-索引-长期维护

╄→尐↘猪︶ㄣ 提交于 2020-02-08 02:32:35
############### 索引介绍 ############## """ 1. 索引介绍 需求: 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的, 也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。 说起加速查询,就不得不提到索引了。 索引: 简单的说,相当于图书的目录,可以帮助用户快速的找到需要的内容. 在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。能够大大提高查询效率。 特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 本质: 索引本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果, 同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。 """ ############### 索引方法 ############## """ 2.索引方法 1. B+TREE 索引 B+树是一种经典的数据结构,由平衡树和二叉查找树结合产生,它是为磁盘或其它直接存取辅助设备而设计的一种平衡查找树, 在B+树中,所有的记录节点都是按键值大小顺序存放在同一层的叶节点中,叶节点间用指针相连,构成双向循环链表, 非叶节点(根节点、枝节点)只存放键值,不存放实际数据。 注意:通常其高度都在2

MySQL学习----(操作数据库 二 )

早过忘川 提交于 2020-02-07 20:01:03
MySQL----(操作数据库 二 ) 1、操作数据库 操作数据库 > 操作数据库中的表 > 操作数据库中表的数据 mysql关键字不分区大小写 1.1 、 操作数据库(了解) 1、创建数据库 CREATE DATABASE [IF NOT EXISTS] westos; 2、删除数据库 1 DROP DATABASE [IF EXISTS] westos 3、使用数据库 -- tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带 `` USE `school` 4、查看数据库 SHOW DATABASES -- 查看所有的数据库 对比 : SQLyog 的可视化操作 学习思路: 对照 sqlyog可视化历史记录查看sql 固定的语法或关键字必须要强行记住! 1.2 、 数据库的列类型 数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4 个字节 常用的 int bigint 较大的数据 8个字节 float 浮点数 4个字节 double 点数 8个字节 (精度问题!) decimal 字符串形式的浮点数 金融计算的时候,一般是使用decimal 字符串 char 字符串固定大小的 0~255 varchar 可变字符串 0~65535 常用的变量 String

mysql如何避免回表查询

為{幸葍}努か 提交于 2020-02-06 15:18:38
《 迅猛定位低效SQL? 》留了一个尾巴: select id,name where name='shenjian' select id,name ,sex where name='shenjian' 多查询了一个属性,为何检索过程完全不同? 什么是回表查询? 什么是索引覆盖? 如何实现索引覆盖? 哪些场景,可以利用索引覆盖来优化SQL? 这些,这是今天要分享的内容。 画外音:本文试验基于MySQL5.6-InnoDB。 一、什么是回表查询? 这先要从InnoDB的索引实现说起,InnoDB有两大类索引: 聚集索引(clustered index) 普通索引(secondary index) InnoDB聚集索引和普通索引有什么差异? InnoDB 聚集索引 的叶子节点存储行记录,因此, InnoDB必须要有,且只有一个聚集索引: (1)如果表定义了PK,则PK就是聚集索引; (2)如果表没有定义PK,则第一个not NULL unique列是聚集索引; (3)否则,InnoDB会创建一个隐藏的row-id作为聚集索引; 画外音:所以PK查询非常快,直接定位行记录。 InnoDB 普通索引 的叶子节点存储主键值。 画外音:注意,不是存储行记录头指针,MyISAM的索引叶子节点存储记录指针。 举个栗子,不妨设有表: t(id PK, name KEY, sex, flag); 画外音

oracle数据库学习笔记(一)

百般思念 提交于 2020-02-06 11:56:26
这一阵子在做oracle数据库相关的数据处理,碰到了一些问题,现记录和总结一下: 问题一 : oracle数据库在win10 系统上怎么都打不上,总是提示创建和配置数据库实例失败.Hyper 解决方法: 基本试遍了网上的给出的解决方法,还是不能解决问题。最后为了不重装系统,选择使用win10自带的虚拟机Hyper,在虚拟机里安装成功了。感觉win10一直安装不成功是因为之前安装过客户端,卸载的不干净导致新的数据库一直无法安装成功。 问题二:日期格式转换,varchar格式 'yyyy-mm-dd hh24:mi:ss' 转换为varchar格式'yyyymmdd' 解决方法 :一定要先将varchar格式转换成 date 型的 'yyyy-mm-dd hh24:mi:ss' 格式,然后再从date型转为varchar型'yyyymmdd' 格式。例如: alter table 表名 add 列名1 date ; ---新增一列date型数据 update 表名 m set m.列名1= to_date (m.列名, 'YYYY-MM-DD HH24:MI:SS' ); -- 将待修改格式的varchar型数据转换为date型 update 表名 m set m.列名 = to_char (m.列名1, 'yyyymmdd' ) -- 将date型数据改为varchar型 alter

Mysql sql语句递归查询

僤鯓⒐⒋嵵緔 提交于 2020-02-05 21:27:01
1.今天接到任务要写一个sql来找出登陆人的部门层级关系,这是写完的sql,主要用到了sql递归查询,今天记录一下。 CREATE FUNCTION `GET_LX_DEPTNAME`(`loginId` bigint) RETURNS varchar(21845) CHARSET utf8 BEGIN DECLARE sTemp_level VARCHAR(500); DECLARE sTemp_id VARCHAR(500); DECLARE sTemp_name VARCHAR(500); DECLARE lx_dept_id VARCHAR(500); DECLARE lx_dept_name VARCHAR(21845); DECLARE sTemp_count int; #先判断登录人 select A.GROUP_LEVEL ,A.PARTY_ID,A.GROUP_NAME into sTemp_level ,sTemp_id ,sTemp_name -- ,A.GROUP_NAME,B.PARTY_ID_FROM AS HR_ID from HR_ORGANIZATION a,COM_PARTY_RELATIONSHIP b,ep_r_user_login c where A.PARTY_ID = B.PARTY_ID_FROM AND B.PARTY_ID_TO

Hive学习之路 (八)Hive中文乱码

爷,独闯天下 提交于 2020-02-05 09:10:44
目录 Hive注释中文乱码 针对元数据库metastore中的表,分区,视图的编码设置 1、进入数据库 Metastore 中执行以下 5 条 SQL 语句 2、修改 metastore 的连接 URL 验证 正文 Hive注释中文乱码 创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码 create external table movie( userID int comment '用户ID', movieID int comment '电影ID', rating int comment '电影评分', timestamped bigint comment '评分时间戳', movieName string comment '电影名字', movieType string comment '电影类型', sex string comment '性别', age int comment '年龄', occupation string comment '职业', zipcode string comment '邮政编码' ) comment '影评三表合一' row format delimited fields terminated by "," location '/hive/movie'; 这是因为在MySQL中的元数据出现乱码

批量修改SQLServer数据库表字段属性

烈酒焚心 提交于 2020-02-04 11:37:18
以下提供一些场景,各位举一反三自行发挥 修改所有varchar为nvarchar,同时保持字段长度一致 declare c_sql cursor for SELECT sql = 'alter table [' + d.name + '] alter column [' + a.name + '] nvarchar('+Convert(varchar,a.length)+')' --** 修改为什么属性 FROM syscolumns a left join systypes b on a.xtype = b.xusertype inner join sysobjects d on a.id = d.id and d.xtype = 'U' and d.name <> 'dtproperties' where b.name = 'varchar' and not exists (SELECT 1 FROM sysobjects where xtype = 'PK' and name in (SELECT name FROM sysindexes WHERE indid in (SELECT indid FROM sysindexkeys WHERE id = a.id AND colid = a.colid))) --** 排除主键修改 order by d.name, a

我的MYSQL学习心得(九)

血红的双手。 提交于 2020-02-04 03:12:37
原文: 我的MYSQL学习心得(九) 我的MYSQL学习心得(九) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 这一篇《我的MYSQL学习心得(九)》将会讲解MYSQL的索引 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。 根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。 大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关; MYISAM和InnoDB存储引擎只支持BTREE索引;MEMORY和HEAP存储引擎可以支持HASH和BTREE索引 索引的优点: 1、通过创建唯一索引,保证数据库表每行数据的唯一性 2、大大加快数据查询速度 3、在使用分组和排序进行数据查询时,可以显著减少查询中分组和排序的时间 索引的缺点: 1、维护索引需要耗费数据库资源 2、索引需要占用磁盘空间,索引文件可能比数据文件更快达到最大文件尺寸 3、当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响 索引的分类 1

MySQL递归查询方法

匆匆过客 提交于 2020-02-03 12:19:17
1. 前言 最近在做项目时,需要用到mysql递归查询,网上搜索关于递归查询的博客有很多,但是多多少少都有些坑,在这里,自己将它重新整理一下,避免自己踩坑,也方便大家遇到这样的问题。让技术人员能够快速的解决问题。 2. 创建数据库 CREATE DATABASE IF NOT EXISTS ` db_recursive ` ; USE ` db_recursive ` ; -- Table structure for table `t_tree` DROP TABLE IF EXISTS ` t_tree ` ; SET character_set_client = utf8mb4 ; CREATE TABLE ` t_tree ` ( ` id ` int ( 11 ) NOT NULL AUTO_INCREMENT , ` name ` varchar ( 45 ) DEFAULT NULL , ` pid ` int ( 11 ) NOT NULL DEFAULT '0' , PRIMARY KEY ( ` id ` ) ) ENGINE = InnoDB AUTO_INCREMENT = 9 DEFAULT CHARSET = utf8 ; LOCK TABLES ` t_tree ` WRITE ; INSERT INTO ` t_tree ` VALUES ( 1 ,