SQLite3学习笔记----创建数据库的两种方式
今天研究学习SQLite,刚开始创建数据库,就遇到了一个坑,是自己粗心了,特记录一下。
实验环境:
OS:Ubuntu18.04
创建数据库名称:test.db
实验步骤:
1.检查是否已经安装了SQLite
进入命令行,切换到准备建立数据库的文件夹,输入SQLite3

显示已经安装了SQLite
2、创建数据库
看网上资料,创建数据库,SQLite3 databaseName
输入SQLite3 test.db
报错,错误信息:Error: near "sqlite3":syntax error

查网上资料,都是说的是这个指令:sqlite3 databasename
3.在一台Windonws的电脑上,下载安装了Sqlite,配置好环境变量,进入命令行,输入SQLite3,顺利进入,再输入sqlite3 test.db,仍然报这错误信息。

后来退出sqllite,直接在命令行输入sqlite3 test.db,成功了,并且进入了sqlite>,创建表,插入输入,退出后,查看文件夹下,已经有了test.db这个文件

上面是未创建数据库前的查询
退出SQLite,直接在命令行输入:sqlite3 test.db,成功

查询文件夹下,已经有了test.db这个文件夹
4.参照下图,进入SQLite后,输入.open fileName这个方式,也可以创建数据库,如果filename是已经建立的数据库文件,则打开。
如果不存在,则建立这个数据库。

使用.open Test1.db,创建这个数据库

查看文件夹下,已经有了这个数据库,Test1.db。

5.如何使用呢?
在命令行输入sqlite3,进入sqlite>

使用.open filename,filename为你的数据库文件,打开后,开始使用。
6.我想Ubuntu下,也应该是这个问题,直接切换到待建数据库的文件夹,输入sqlite3 test.db

输入sqlite3 test.db,没有报错,但在创建表的时候,却报错,Error:unable to open database "test.db":unable to open database file
退出来以后,使用ls命令,发现当前文件夹下也没有test.db这个文件,这又是什么原因呢?
分析,应该是当前账号对/opt/database这个文件夹的操作权限不够,才导致不能在这个文件夹下建立数据库文件。
设置/opt/database文件夹的操作权限
cd..
sudo chmod 777 database

重新进入database文件夹,cd database
重复按照前面步骤开始建立数据库
sqlite3 test.db
create table employee(id integer,name text)
insert into employee values(1,'zhang san')
insert into employee values(2,'Li si‘)
select * from employee
.exit

在linux下也成功建立了sqlite的数据库。
尝试第2种方式,在linux下建立数据库,同样成立,这里就不重复了。
SQLite3学习笔记----创建数据库的两种方式的更多相关文章
- python 学习笔记(二)两种方式实现第一个python程序
在交互模式下: 如果要让Python打印出指定的文字,可以用print语句,然后把希望打印的文字用单引号或者双引号括起来,但不能混用单引号和双引号: >>> print 'hello ...
- Android开发之使用sqlite3工具操作数据库的两种方式
使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/feng ...
- 【java并发】传统线程技术中创建线程的两种方式
传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...
- 创建TabHost的两种方式的简单分析
最近做了一个TabHost的界面,在做的过程中发现了一些问题,故和大家分享一下. 首先我的界面如下: 目前就我所知,创建TabHost有两种方式,第一种是继承TabActivity类,然后用getTa ...
- 创建线程的两种方式比较Thread VS Runnable
1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...
- .Net 中读写Oracle数据库常用两种方式
.net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...
- ubuntu创建用户的两种方式
ubuntu创建用户有两种方式: useradd和adduser 这两者,就像零件与产品的关系.useradd是DIY,需要自己调配,adduser是品牌机,拿来就能用. 对于创建一般用户来讲,use ...
- Spring创建JobDetail的两种方式
一.Spring创建JobDetail的两种方式 二.整合方式一示例步骤 1.将spring核心jar包.quartz.jar和Spring-context-support.jar导入类路径. 2.编 ...
- Java并发基础01. 传统线程技术中创建线程的两种方式
传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...
随机推荐
- 在webView 中使用JS 调用 Android / IOS的函数 Function
最近做一个项目,混合了NativeCode 和 HTML,为了便于JS 调用App的一些方法,统一封装一个Js方法,记录如下 Android 端首先要再WebView中允许JS的调用 WebView ...
- matlab 将一堆文件名读到一个文本里面windows版本里
有点坑: 在windows下,这么写,打印时也会把\n当成字符串打印出来 path= strcat('/home/wang/Desktop/trainset/num0/',file(i).name,' ...
- POJ3177 Redundant Paths【tarjan边双联通分量】
LINK 题目大意 给你一个有重边的无向图图,问你最少连接多少条边可以使得整个图双联通 思路 就是个边双的模板 注意判重边的时候只对父亲节点需要考虑 你就dfs的时候记录一下出现了多少条连向父亲的边就 ...
- webapi 文件下载输出接口
public async ask<HttpResponseMessage> GetGuidingPrincipleDownload(string name ) { bool status ...
- 7-17 Hashing(25 分)
The task of this problem is simple: insert a sequence of distinct positive integers into a hash tabl ...
- Hibernate环境搭建+struts整合
说明:本文档,是和struts2+hibernate的整合示例. lib下还有struts2的jar包,本示例没有显示.struts2的搭建参考struts2的环境搭建 一下载hibernate的ja ...
- 【转】VC++10(VS2010)IDE各种使用技巧
原文网址:http://www.cnblogs.com/sunrisezhang/articles/2802397.html 一个好的coder,他首先必须是一个熟练工.对于C++程序员来说,只有掌握 ...
- equals方法和==的区别
equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = &quo ...
- ruby的代码风格
http://stylesror.github.io/ 大部分同意,有小部分,不敢苟同.
- 再记录一次delete出错的经历
调试的时候进行到delete语句时出现问题,我做的操作是在函数体内用int*申请了N个内存空间,这让我十分纳闷,为什么不能delete呢? 回忆到之前delete出错也遇过一次问题 手动封装OpenC ...