扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
它不是一个公司出的,是一个团队出的。
为黔西南州等地区用户提供了全套网页设计制作服务,及黔西南州网站建设行业解决方案。主营业务为成都网站制作、成都网站设计、黔西南州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
瞻仰下这些开发者吧,哈哈:
1.数据量太大,比如上亿,就用oracle,优点上亿数据对Oracle来说轻飘飘的,也不用太多优化配置,缺点安装比较麻烦,上手比较慢。
2.数据量较大,比如千万级,用postgresql,它号称对标Oracle,处理千万级数据还是可以的,也是易学易用。
3.数据量一般,比如百万级,用mysql,这个级别的数据量mysql处理还是比较快的。
4.数据量较小,比如十万以下,sqlite、access都可以。
上面是基于单表操作的数据量,你看着选。
简单易用的数据库哪个比较好?这个要具体看你的用途,如果数据量比较少(10万左右),追求简约简单,免费开源的sqlite就行,如果数据量比较多,考虑到高并发、分布式,可以使用专业的mysql、postgresql,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:
小巧灵活sqlite
这是基于c语言开发的一个轻量级关系型数据库,短小精悍、免费开源,个人使用无需繁琐的配置,只需一个简单的运行库便可直接使用,针对各种编程语言都提供了丰富的API接口, java、 python、c#等都可轻松操作,如果你存储数据量不多,只是本地简单的操作(读多写少),可以使用一下这个数据库,占用内存非常少,轻便灵活,当然,在高并发、数据量大的情况下就不合适了:
专业强大mysql
这是目前应该广泛使用的一个关系型数据库,免费开源跨平台,在信息系统开发方面一直占据着主力位置,如果你从事于web开发或者网站后台建设,那么这个数据库一定非常熟悉,支持高并发、分布式,存储数据量相对于sqlite来说,更多也更安全,索引、触发器、存储过程等功能非常不错,支持数据导入导出、恢复备份,只要你熟悉一下基本使用过程,很快就能掌握和运用:
免费开源postgresql
这是加州大学计算机系开发的一个对象-关系型数据库(自由软件),免费、开源、跨平台,支持流计算、全文检索、图式搜索、并行计算、存储过程、空间数据、K-V类型,相比较mysql来说,在复杂查询、高并发下更稳定、性能更优越,可扩展性、可维护性非常不错,但也有劣势,例如新旧版本不分离存储,没有Coverage index scan等,总体使用效果来说还不错:
当然,除了以上3个数据库,还有许多其他数据库,像mssql、oracle等也都非常不错,对于存储和处理数据来说绰绰有余,只要你熟悉一下基本使用过程,很快就能入门的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
最符合初学者理解和入门的是Access,因为它和Excel本来就是一个套件,相互转化容易,复制粘贴即可,非常好理解库、表、字段、键的概念。
如果数据量不大,强烈推荐试试Filemaker,脚本化编程,自由定制输入界面、工作流程,非常便捷高效。
最近杀出来的airtable,更是简单高效,界面美观,操作与电子表格相当,发展势头也非常迅猛。
二者侧重点有所不同,用户可根据需要选择
作为一个软件开发人员,长期需要和数据库打交道,个人更加青睐于MySQL。虽然可能基于你的Excel原因,有些人会建议你使用Access数据库,但是基于我个人的 意见,我并不建议你那样做。采用MySql的具体理由如下:
1.MySQL具有普遍性,在国内的环境中,绝大多数的互联网企业采用的是MySQL。有了广大的用户基础后,针对于各种问题网上也能更好地找到解决方案。
2.MySQL相对于Oracle而言,更加轻量化,针对于从Excel量级的数据,没必要使用Oracle。同时MySQL是完全免费的,不用担心版权及费用问题,无论对个人还是对预算有限的企业而言都是很好的选择。
3.MySQL高度兼容标准SQL,这对于以后迁移到其他数据库而言,也能很大程度地降低学习成本。
希望我的回答能够对你有所帮助!!![耶][耶][耶]
Excel办公确实便利,可以做一些简单的数据分析,但涉及大量复杂的数据运算,就会遇到和题主一样的问题,运算速度慢,如果主机性能不是很好,还有可能面临电脑死机,数据丢失等问题。
遇到这种情况,我们该如何解决呢?数据库的重要性显而易见!
现在, 我将用3分钟的时间,与您探讨该选择何种数据库,以及选择它的理由,是否有更优的解决方案呢?
MySQL数据库,90%的企业都会选择它
数据库选得好,企业的数据安全,资产安全,也就得到了保障。那么该如何选择数据库呢?这个跟你的业务量和业务服务行业,密不可分。
如果你只是上班打卡,用SQL server就可以了;
如果你要储存会话信息,用户配置信息,购物车数据,建议使用NoSQL数据库;
不过90%的企业或个人,首选数据库都是MySQL数据库。
为什么这么说?
因为,它集 低成本、高可用、可靠性强、易用性强、体积小、速度快开放源码 等特性于一身,所以在金融、财务、网站、 数据处理 等应用领域,它占据着独一无二的优势。
这也是几乎所有企业都选择它,来存储数据的原因。
加之MySQL数据库,支持多种存储引擎,支持大型数据库,可以处理成千上万条记录,还提供用于管理、检查、优化数据库操作的工具。
因而,MySQL尤其受个人,以及中小企业的推崇。
虽然MySQL数据库简单易用,但我还是不会部署该怎么办?
别担心,现在市面上已经出现了,一种自带数据库的新型办公软件。
比如说,云表企业应用平台,一款兼容excel功能,但功能更为强大的办公软件,它就内嵌了MySQL数据库。 (文末有免费获取方式)
云表内嵌的MySQL数据库,有何优点?
1. 性能更加优化,更加兼容系统。因为云表的研发人员,时刻更新维护MySQL数据库。
2. 省去自己手动部署的麻烦。但如果你熟悉部署数据库,想把数据库改成Oracle或SQL server等数据库,也可以设置。(不过,我建议IT小白还是 “拿来即用” 就好)
3. 快速实时计算。数据分析实时交互,完全满足管理决策中的临时性分析,多变的业务需求,以及频繁的结果刷新。
4. 通过自带的内存计算引擎,无需事先建立CUBE,IT部门将告别报表延时报表分析,亿级数据秒级响应。
内嵌的MySQL数据库是否可靠
云表不仅是一款办公软件,同时还是一款开发工具。
通过它,你将解决以下问题:
复杂的数据运算,精确到行列的权限管控,以及工作流,海量用户同时在线办公,数据透视,制作像销售单,洽谈合同等表单报表,一份制作,即可重复录用......
你还可以通过它,与电子称、地磅等进行对接,与用友金蝶等三方系统集成,生成条形码,扫码出入库,生成移动端APP...... 基本上业务所需的功能,你都可以放心交给它做。
它最大的亮点就是,你可以 用使用excel的手法,用它来开发业务应用。
而且,可视化的 拖拉拽 之后,开发出来的ERP、WMS、OA、进销存等业务应用,还秉承了MySQL数据库增删改查的功能特性。
没错,用云表开发出来的业务应用,是允许二次开发的,而且功能可以随时增删改查,轻松满足大集团精细化的数据控制需求。
不过,大家最关心的应该是数据安全问题吧。
数据存放在云表内嵌的MySQL数据库,是安全不丢失的,它提供了多种数据存储的方式,本地部署,云端部署,混合部署,任君挑选!
正因如此,像 恒逸石化、许继电气、航天科工委、中铁、中冶、云南小松 等大型集团,才鼓励内部员工去学习云表。
篇幅所限,只说到这里,说太多你也不会看。
免费 的软获取方式在下方:
数据库的用处可大着呢,不仅可以实现数据共享,减少数据冗余度,还能实现对数据的集中控制,保持数据的一致性和可维护性。选取简单易用的数据库,你有什么好的建议呢,留言让我们看到噢!
题主强调了简单易用。所以推荐最简单三个。
1.Access。
2.Excel。
3.飞书文档、腾讯文档、石墨文档等的表格。
如果要做分析,数据量才比较大,建议Access,还是专业的更好一些。网上教程也很多,比较容易学。而且建议用早一点的版本,比如2003或者2007,Access这些年微软一直想从office里去掉,奈何用的人还是很多,所以不敢去掉,但是采取了一种比较恶心的方法让用户放弃,就是每发布一个新版本,就去掉一些好用的功能,所以说Access是越早的功能越强。
还一个推荐就是Sql Server Express版本,是SQL Server的免费版本,不要钱,基本功能都有,要比sqllite等强大的多
这要结合你个人实际情况来定,有计算机基础,懂一点数据库的话那么市场上的那些软件都可以用,常用有oracle,sqlserver,mysql等,要上手快还是sqlserver比较快,界面操作也比较直观;如果一点基础都没有,但是又要分析数据的话可以用微软自带的一个access,这个上手比较快。决定用哪一种之后还是要买点教材看,简单的sql查询要会,熟练之后也能提高工作效率。
个人使用数据库的话,只存数据不做分析,SQLite就足够了。
嵌入式数据库还是有很多的,这里举几个吧:
1.Berkeley DB常用嵌入式数据库有哪些
Berkeley
DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。
Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个数据。Berkeley
DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统
以及实时操作系统。
2.Couchbase Lite
Couchbase Lite
是一个为满足在线和离线的移动应用所开发的超轻量的,可靠的,并且安全的JSON数据库。即使在最不确定的网络条件下,亦可以给您的移动应用提供富有成效
的和可靠的信誉。除此之外,’同步门户’功能亦可以提供协作, 社交互动或者是用户的更新。
3.LevelDB
LevelDB是Google开源出的一个Key/Value存储引擎,它采用C++编写的,支持高并发访问和写入,特别适合对于高写入业务环境。
4. SQLite
SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。
其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 -
只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。
5.UnQLite
UnQLite是,由Symisc
Systems公司出品的一个嵌入式C语言软件库,它实现了一个自包含、无服务器、零配置、事务化的NoSQL数据库引擎。UnQLite是一个文档存储
数据库,类似于MongoDB、Redis、CouchDB等。同时,也是一个标准的Key/Value存储,与BerkeleyDB和LevelDB等
类似。
Head First 系列的书籍一直饱受赞誉,这本也不例外。Head First Python主要讲述了Python 3的基础语法知识以及如何使用Python快速地进行Web、手机上的开发。 下面是该书每章结束部分的知识摘要: 第一章 初始Python:人人都爱列表(Lists) 1. 从命令行或者IDLE里都可以运行Python 3; 2. 标识符是指代数据对象的名称,它本身并没有“类型”,但是它所指代的数据对象拥有类型; 3. 内置函数print()可以在屏幕上显示消息; 4. Python中的列表list是用中括号包住的以逗号分隔的数据集合; 5. list和数组非常相似; 6. list既可以使用内置函数,也可以使用针对列表本身的函数; 7. list的大小按需自动伸缩。数据使用的所有内存都由Python管理; 8. len()内置函数用来计算数据对象的长度或是某个集合(如list)内条目的数量; 9. for循环可以帮助遍历list,它用起来通常比等价的while循环更方便; 10. if...else...语句帮助在代码中做出不同的选择; 11. isinstance()内置函数可用来检测标识符指代的数据对象是否为指定类型; 12. 使用def定义自定义函数。 第二章 分享代码:函数模块 1. 模块是包含Python代码的文本文件; 2. 分发工具(distribution utilities)帮助您将模块变为可共享的包; 3. setup.py程序提供了关于模块的元数据,他可以用于生成,安装和上传分发包; 4. 使用import语句将模块导入到其他程序中; 5. Python中每个模块都提供了自己的命名空间。它在使用module.function()形式调用时用以限定模块内的函数。 6. 使用形如from module import function的import语句可以将模块内特定函数导入当前命名空间; 7. 使用#可以将一行代码变为注释或者为程序添加一条精短且在一行内的注释; 8. 内置函数拥有自己的命名空间,叫做__builtins__,它会自动包含进每个Python程序中。 9. range()内置函数可以和for用在一起进行固定次数的遍历; 10. 在print()内置函数结尾包含end=''可以关掉输出时自动添加的换行符; 11. 如果为函数参数提供默认值,那么它们就为成为可选参数。 第三章 文件和异常:处理错误 1. 使用open()内置函数打开磁盘文件并创建一个迭代器来每次从文件中读取一行数据; 2. readline()方法从一个打开的文件中读取一行数据; 3. seek()方法可以将文件重新定位到开头; 4. close()方法关闭上一次打开的文件; 5. split()方法将一个字符串分为许多份组成的列表; 6. Python中不可改变的常量list叫做tuple。一旦列表数据复制给一个tuple之后,tuple中的数据将不能再被改变。Tuple是不能变的(immutable); 7. 当数据与期望的格式有出入时,会产生ValueError; 8. 当数据没法被正确访问时(例如数据文件可能已经移动过或者重命名过),会产生IOError; 9. help()内置函数提供在IDLE shell中访问Python文档; 10. find()方法可以在一个字符串中查找特定子串; 11. not关键字用来否定一个条件; 12. try/except语句提供了异常处理机制,可以保护那些可能导致运行时错误的代码段; 13. pass语句是Python中的空语句,它什么都不做。 第四章 持久化:将数据存成文件 1. strip()方法移除字符串首尾空白字符; 2. print()内置函数中的file参数可以控制data是读入或是写出; 3. 不管try/except语句中是否有异常发生,finally的代码段总是会被执行; 4. 异常对象会传入到except代码段,并且可以使用as关键字将其赋值给一个标识符; 5. str()内置函数可以用来访问任何数据对象的字符串表示,前提是该数据对象支持该转换; 6. locals()内置函数返回当前作用范围内的变量集合; 7. in操作符可用于测试成员包含关系; 8. "+"操作符应用于两个字符串时会得到它们的串联结果,而应用于数字时会得到它们的相加和; 9. with语句即使在异常发生的情况下,也会自动去关闭所有打开的文件。with语句同样可以使用as关键字; 10. sys.stdout是Python中的标准输出,它位于标准库中的sys模块; 11. 标准库pickle模块可以让轻松高效地保存Python数据对象到磁盘和从磁盘恢复Python数据对象; 12. pickle.dump()函数将数据存盘; 13. pickle.load()函数从磁盘恢复数据。 第五章 理解数据:让数据动起来 1. sort()方法原地排序列表; 2. sorted()内置函数通过复制排序的方式可以对大多数数据结构进行排序; 3. 传入sort()或sorted的参数reverse=True可以将数据进行降序排序; 4. 形如下面的代码段: new_l = [] for t in old_l: new_l.append(len(t)) 可以重写为列表表达式形式:[len(t) for t in old_l] 5. 使用切片从list中获取多个数据条目,如:my_lis[3:6]会从索引3的位置访问到索引6的位置,不包含6。 6. 使用set()工厂方法创建一个集合 第六章 自定义数据对象:围绕数据编码 1. 使用dict()工厂函数或使用{}来创建一个空的dictionary; 2. 访问一个叫做person的dictionary中Name键所对应的值,可是使用熟悉的中括号记法:person['Name']; 3. 同list和set类似,Python的dictionary数据结构也会随着新元素的加入动态的增长; 4. 填充dictionary的方法有:new_d = {}或new_d = dict(),然后使用d['Name'] = 'Eric Idle';或者直接用一句话new_d = {'Name': 'Eric Idle'}; 5. class关键字用来定义类; 6. 类中方法的定义与函数非常相像,都使用def关键字; 7. 类中属性就如同对象实例内部的变量; 8. __init__()方法可以定义在类中用作实例化对象实例; 9. 类中定义的每个方法都必须提供self作为第一个参数; 10. 类中的每个属性都必须使用self为前缀,以使得数据能与实例关联在一起; 11. 既可以从头开始创建类也可以从Python内置或自定义类中继承; 12. 类可以被放入Python模块并上传到PyPI。 第7章 Web开发:信息汇总 1. MVC模式(Model-View-Controller)用一种可维护的方式帮助设计和构建一个Web应用; 2. model存储Web应用中的数据; 3. view显示Web应用的用户界面; 4. controller使用编程逻辑将所有部分连接在一起; 5. 标准库string模块中有一个类叫做Template,它支持简单的字符串替换; 6. 标准库http.server模块可以用来在Python中创建一个简单的Web服务器; 7. 标准库cgi模块提供编写CGI脚本的支持; 8. 标准库glob模块处理文件列表非常好用; 9. 在Linux和Mac OS X上为可执行文件执行chmod+x命令; 10. 标准库cgitb模块在激活时可以在浏览器中看到CGI的编码错误; 11. 使用cgitb.enable()可以在CGI代码中打开CGI跟踪; 12. 使用cgi.FieldStorage()可以访问发送到Web服务器请求部分的数据。 第8章 移动应用开发:小型设备 1. json库模块可以将Python内置类型转为JSON数据交换格式; 2. 使用json.dumps()可以创建Python类型的字符串版本; 3. 使用json.loads()从JSON字符串中创建Python类型; 4. 使用JSON发布数据需要制定Content-Type为application/json; 5. Python 2中的urllib和urllib2可以用与发送编码后的数据给Web服务器(使用urlencode和urlopen函数); 6. sys模块提供了sys.stdin, sys.stdout和sys.stderr输入流。 第9章 管理数据:处理输入 1. 标准库cgi模块中的fieldStorage()方法可以访问CGI脚本中发送给Web服务器的数据; 2. 标准库os中包含的environ字典,提供了对环境变量设置的轻松访问; 3. SQLLite数据库系统在Python中作为sqlite3标准库存在; 4. connect()方法建立与数据库文件的连接; 5. cursor()方法通过一个已有连接与数据库进行通信; 6. execute()方法通过一个已有游标向数据库发送SQL查询; 7. commit()方法对数据库做出永久性的改变; 8. rollback()方法取消任何针对数据的待定改动; 9. close()方法会关闭数据库的已有连接; 10. Python代码中的"?"占位符可以参数化SQL语句。 第10章 扩展Web应用:变得真实 1. 每个App Engine Web应用都必须有一个叫做app.yaml的配置文件; 2. 使用GAE启动器启动、停止、监控、测试、上传以及部署Web应用; 3. App Engine的模板技术基于Django项目; 4. App Engine也可以使用Django表单验证框架; 5. 使用self.response对象构造一个GAE Web应答; 6. 使用self.request对象在GAE Web应用中访问表单数据; 7. 当应答GET请求时,可以子啊get()方法中实现需要的功能; 8. 当应答POST请求时,在post()方法中实现需要的功能; 9. 使用put()方法将数据存储到App Engine datastore中。 第11章 处理复杂数据 1. input()内置函数提示并接受来自用户的输入; 2. 如果发现在使用的是Python2,可以使用原生的_input()函数来取代input()函数; 3. 使用Python内置的列表、集合及字典构建复杂数据结构; 4. 标准库中的time模块,有大量函数可以用来转换不同的时间格式。 书中没有谈到的10件重要的事 #1. 使用专业的IDE 书中推荐的是WingWare Python IDE。我一直在用的是Eclipse + PyDev #2. 积极面对作用域 使用global关键字可以强制将全局变量放入当前作用域 #3. 测试 书中提到了两个用于测试的框架,一个是Python中的unittest模块;另一个也是标准库中的doctest #4. 高级语言特性 匿名函数、生成器、自定义异常、函数修饰符、元数据类等 #5. 正则表达式 #6. 更多的Web框架 Django、Zope、TurboGears、Web2py、Pylons等 #7. 对象关系映射(ORM)以及NoSQL ORM工具:SQL Alchemy NoSQL数据库:CouchDB和MongoDB #8. 用户界面编程 Python内置的跨平台的GUI构建工具集——tkinter(Tk Interface)。 其他的GUI编程技术有:PyGTK,PyKDE,WxPython和PyQT等。 #9. 避免使用多线程 Python中的全局解释锁限定Python只能运行单个解释进程,即使多核情况下也不行 #10. 书籍推荐 Dive into Python 3 Python Essential Reference Programming in Python Learning Python ...
id int identity(1,1) 是 SQL Server 的 自动递增列的写法。
对于SQLite
主键数据类型为 int 类型。
插入的时候,不传入数据, 就是默认为自动递增处理。
last_insert_rowid() 函数用于获取最新生成的 ID
sqlite CREATE TABLE test_create_tab2 (
... id integer,
... val VARCHAR(10),
... PRIMARY KEY (id)
... );
sqlite INSERT INTO test_create_tab2(val) VALUES ('NO id');
sqlite select last_insert_rowid();
last_insert_rowid()
1
sqlite INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
sqlite select last_insert_rowid();
last_insert_rowid()
2
sqlite select * from test_create_tab2;
id|val
1|NO id
2|NO id 2
sqlite INSERT INTO test_create_tab2(id, val) VALUES (100, 'id is 100');
sqlite INSERT INTO test_create_tab2(val) VALUES ('NO id again');
sqlite select * from test_create_tab2;
id|val
1|NO id
2|NO id 2
100|id is 100
101|NO id again
注意:
对于无主键的表
SQLite 中还有一个 伪列 rowid, 可以作为自动递增的查询处理。
sqlite CREATE TABLE test_create_tab3 (
... id integer,
... val VARCHAR(10)
... );
sqlite
sqlite INSERT INTO test_create_tab3(id, val) VALUES (1, 'Test1');
sqlite INSERT INTO test_create_tab3(id, val) VALUES (2, 'Test2');
sqlite INSERT INTO test_create_tab3(id, val) VALUES (100, 'Test100');
sqlite INSERT INTO test_create_tab3(id, val) VALUES (101, 'Test101');
sqlite select rowid, id, val from test_create_tab3;
rowid|id|val
1|1|Test1
2|2|Test2
3|100|Test100
4|101|Test101
创建sqllite 数据文件具体方法如下:
首先下载一个Navicat for SQLite。
下载完成之后,对软件包进行压缩,如图所示:
解压完成后找到navicat.exe 这个主程序,然后进行【发送到(N)】---【桌面快捷方式】的操作,如图:
双击navicat.exe打开该软件,然后点击连接按钮如图:
在弹出的窗口输入连接名,并且进行如下操作:
这样在指定的位置就创建了一个sqllite 数据文件,如图:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流