varchar

MYSQL 数据库索引

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

python爬虫获取疫情信息并存入mysql数据库实践

北战南征 提交于 2020-03-11 13:58:16
上一次做了全国疫情统计可视化图表,这次尝试着能不能实现数据库里的更新操作,首先考虑的就是python爬虫,因为它易操作,并且python学习也是日后必须的。 通过从网上查阅学习,代码如下: import requests from bs4 import BeautifulSoup import re import pymysql import json def create(): db = pymysql.connect("localhost", "root", "0000", "grabdata_test",charset='utf8') # 连接数据库 cursor = db.cursor() cursor.execute("DROP TABLE IF EXISTS info") sql = """CREATE TABLE info ( Id INT PRIMARY KEY AUTO_INCREMENT, Date varCHAR(255), Province varchar(255), City varchar(255), Confirmed_num varchar(255), Yisi_num varchar(255), Cured_num varchar(255), Dead_num varchar(255), Code varchar(255))""" cursor

Sql 取当天或当月的记录

岁酱吖の 提交于 2020-03-11 03:38:08
Sql 取当天或当月的记录 今天晚上加班,遇到要把数据库中的时间和当天时间进行比较的问题,直接比较肯定是不行的了.因为表中的时间格式是这样的:2007-02-02 16:50:08.050, 如果直接和当天的时间比较,就总得不到准确数据,但是我们可以把这种格式的时间[格式化]成 2007-02-02,也就是只有年-月-日,然后把当天的时间也格式化成 年-月-日的格式. 这样,思路就出来了! 我们格式化日期要用到 Convert()这个函数,要用到3个参数,首先来格式化当天的日期,Convert(varchar(10),getDate(),120) 这样我们就可以把当天的日期格式化为: 2007-2-2,然后格式化数据库表中的日期 Convert(varchar(10),TimeFiled,120),最后我们就可以用一条Sql语句得到当天的数据了. 例如: 程序代码 Select * From VIEW_CountBill Where Convert(varchar(10),[time],120) = Convert(varchar(10),getDate(),120) 注意: Convert()函数中的各个参数的意义,第一个参数,varchar(10)是目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。第二个参数是你要转换的字段

MySQL笔记总结

橙三吉。 提交于 2020-03-10 13:12:37
总结一下我之前自己学习MySQL的笔记,仅供参考。 使用命令行调用MySQL一定要注意分号,不然会出现报错。建议自己练习的时候,可以先把代码打到记事本里,再粘贴到命令行中运行,就不容易犯错了。 1.数据库常用操作 1)查询数据库:show databases; 2)创建数据库:create databases 数据库名字; 3)使用某一个数据库:use 数据库名字; 4)显示当前数据库里的数据表: show tables; 5)创建数据表: create table 表名字( 数据类型+字段); 6)显示数据表:describe 数据表名; 7)查看数据表中的记录:select * from 数据表名; 8)向数据表中添加数据记录: insert into 数据表名 values(‘a’,‘b’,‘c’,NULL); 9)从数据表中删除数据记录:delete from 数据表名 where name = ’ ‘; 10)从数据表中修改记录: update 数据表名 set name= ’ 改后的名’ where 所属的类名=‘ 对应的名’; 2.MySQL支持的数据类型有三种:数值,日期/时间,字符串类型 3.MySQL建表约束 1) 主键约束 :能够唯一确定一张表中的一条记录,即通过给某个字段增加约束,可使得该字段不重复且不为空。 create table 数据表名( id

oracle中varchar,varchar2,nvarchar,nvarchar2的区别

青春壹個敷衍的年華 提交于 2020-03-10 06:01:25
--varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节 2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如 varchar(20)表示最大可以存放20个字节的内容 区别: 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节; 2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理; 3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集, 比如GBK,汉字就会占两个字节,英文1个 如果是UTF-8,汉字一般占3个字节,英文还是1个。 但是一般情况下,我们都认为是两个字节处理,因为oracle安装时候默认我们都选择GBK的编码格式,但是我们在页面做输入字符串长度的校验的时候,还是以数据库设计字段最大长度除3来作为最大长度-----防止数据库移植时设置不同编码格式; 比如:VARCHAR2(10),一般情况下最多存放5个汉字,10个字符 --nvarchar,nvarchar2 联系: 1.nvarchar/nvarchar2用于存储可变长度的字符串 2.size 的最大值是 4000,而最小值是 1

Oracle基础(六) 数据类型

旧城冷巷雨未停 提交于 2020-03-09 20:10:43
一、Oracle中的数据类型   Oracle中提供了丰富的数据类型,用来存储数据,主要包括:    1、字符类型:主要用来存储字符串类型的数据。    数据类型 长度 说明 CHAR(n BYTE/CHAR) 默认1字节,n值最大为2000 末尾填充空格以达到指定长度,超过最大长度报错。默认指定长度为字节数,字符长度可以从1字节到四字节。 NCHAR(n) 默认1字符,最大存储内容2000字节 末尾填充空格以达到指定长度,n为Unicode字符数。默认为1字节。 NVARCHAR2(n) 最大长度必须指定,最大存储内容4000字节 变长类型。n为Unicode字符数 VARCHAR2(n BYTE/CHAR) 最大长度必须指定,至少为1字节或者1字符,n值最大为4000 变长类型。超过最大长度报错。默认存储的是长度为0的字符串。 VARCHAR 同VARCHAR2 不建议使用    char、nchar、varchar类型的区别    1、char CHAR的长度是固定的,最长2000个字符,长度根据声明来决定;varchar是可变长度的字符串,长度根据保存的值来决定。   2、varchar是最大长度为2000的可变字符串,而varchar2最大长度为4000。    2、数字类型: 存储整数、小数格式的数据  数据类型 长度 说明 NUMBER(p[,s]) 1-22字节。

Otter双A同步搭建入门教程

烂漫一生 提交于 2020-03-09 20:10:21
1.准备阶段 1.1 环境 虚拟机A : 192.168.0.130 虚拟机B :192.168.0.131 系统: Ubuntu 16.04 LTS JRE:OpenJDK 1.8.0_151(A、B都要安装) DB:MySQL 5.7.20(A、B都要安装) ZooKeeper:3.4.11(只装A机) Otter Manager:4.2.14 (只装A机)( 4.2.15 启动Node时感觉有Bug,没有使用) Otter Node:4.2.14(A、B都要安装) 1.2 安装环境 1.2.1 JRE安装 sudo apt-get install default-jre 1.2.2 MySQL安装 sudo apt-get install mysql-server sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf character-set-server=utf8 log-bin=mysql-bin binlog-format=ROW server-id=1 #A,B需要设置成不一样的id #bind-address=127.0.0.1 #注释该行 service mysql restart 进入mysql,设置单独账号密码 grant all on *.* to 'root'@'%' identified by 'password';

oracle存储过程一(返回单条记录的值)

好久不见. 提交于 2020-03-08 23:50:33
  最近在使用java验证excel表单元格的信息,数据量非常大,而且验证的规则比较复杂,如果单纯使用程序的验证的话,效率将非常低,考虑到oracle存储过程是可编译的,每次编译之后都会将数据放入高速缓存当中,下次再取,速度将非常的快。之前并没有接触到oracle的存储过程,所以也花了几天的时间去研究了一番,由于时间紧迫,没有怎么很好的整理。现在先将比较基本的一些实现方法给大家分享一下   下面是使用java调用存储过程来返回out的值,因为存储过程有三种参数, in表输入,out表输出,in out即可输入又可输出 ,什么意思呢?刚接触的人可能就不大明白了,其实 in就像java方法中的参数 一样,可将参数传到存储过程(其实就将存储过程看成方法就行了,只是比较特殊,他是可编译的),而 out相当于java方法的返回参数 ,只是 存储过程可以定义多个out ,相当于可以return多个参数一样,do you understand?   需要注意的是, out可以返回单条记录或者多条记录 ,他们的实现方法是不一样的, 返回单条记录 直接将他作为某个变量赋值就行,下面随便写了一个例子说明一下: 存储过程代码: CREATE OR REPLACE PROCEDURE pro_return_result( a in varchar2,b out varchar2) AS BEGIN if

尝试用kotlin做一个app(十一)

拈花ヽ惹草 提交于 2020-03-08 08:41:56
为新闻列表页加载数据库数据,并为条目添加点击事件,点击进入新闻详情页 又转战后台了 java文章,kotlin文章还有其他文章是用一个表,还是分别建不同的表呢,我想还是建一个表吧,为表增加一个分类的字段就行了。文章一共有10个类别,分别是: 新建两个表。一个是文章表,一个是用户表。两个表包含的字段信息如下 数据库表也是有命名规范的,但是我这暂时不用处理很复杂的表,所以命名直白点就好。文章应该有作者,又要通过文章的作者查询到作者的头像,所以应该有一次联合查询。 create table article(id int primary key auto_increment,maintitle varchar(50),subtitle varchar(70),summary varchar(200),content mediumtext,thumb varchar(100),author varchar(30),origin varchar(30),href varchar(200),pubdate datetime,editor varchar(30),topcategory varchar(10),subcategory varchar(10),userid varchar(40)); create table user(username varchar(30),password

Sql Server 常用日期格式

我的未来我决定 提交于 2020-03-08 05:31:24
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') 20040912110608 select CONVERT(varchar(12) , getdate(), 111 ) 2004/09/12 select CONVERT(varchar(12) , getdate(), 112 ) 20040912 select CONVERT(varchar(12) , getdate(), 102 ) 2004.09.12 select CONVERT(varchar(12) , getdate(), 101 ) 09/12/2004 select CONVERT(varchar(12) , getdate(), 103 ) 12/09/2004 select