申明:

1.创建一个数据库文件,File->New DataBase -> test.db

2.在数据库文件中创建一张数据表(一个数据库文件可以创建多张表),参考

在输入框中输入:CREATE TABLE test (Name varchar(128),Value int(10), age int(10));然后按下F9(执行)

注意:

http://www.w3school.com.cn/sql/sql_create_table.asp

2.1sql语句不区分大小写,也可以写成:create table test (Name varchar(128),Value int(10), age int(10));

2.2最后的分号可以不需要,但是最好加上。如果用sqlite3中的exec函数操作的话没有分号会报错。

2.3其中的Name为第一列的列名,后面的varchar为数据类型,表示边长的字符串,128表示长度

2.4Value为第二列的列名,int表示整数,10表示长度。age同理

3.插入数据 insert

INSERT INTO test VALUES (“测试”,2,3);        //()中的个数必须和表的列数相同,“”也可以是单引号(不对就自己试)INSERT INTO test (Name,Value,age) VALUES (“测试”, 5,3);    //前面的()表示列名,后面的()表示值,两者也必须相同。同时列名也必须是存在的

4.查找数据 select

select * from test      //*代表所有数据,test是表名。这句话相当于查找test中的所有数据select * from test where value = '2';     //查找value=2的所有内容,' '可以省略select columna,columnb from test;         //查诈列a,列表的数据select name from test where value = '2';    //查找value=2的所有name值

5.删除数据delete

delete from test where value = 4;       //将value值为4的记录删除delete from table_name;            //删除所有记录delete * from table_name;            //删除所有记录

6.修改数据 update

update test set name = "测试" where value = 4;          //将value = 4的记录中的name修改为“测试”update test set name = "账单",age = 100 where value = 4;    //可以同时修改多个记录

7.对搜索结果进行排序 order by

select lastname,firstname from persons order by firstname   //根据firstname进行排序
select lastname,firstname from persons order by firstname,lastname   //先根据firstname进行排序,再根据lastname进行排序
select lastname,firstname from persons order by firstname desc  //根据firstname进行倒序排序
select lastname,firstname from persons order by firstname desc,lastname asc  //根据firstname进行倒序排序,再根据lastname进行顺序排序

8.规定要返回记录的数目,并非所有的数据库都支持TOP limit

//注意,sqliteSPY不支持top,可以使用limit
select * from persons limit 3  //查找persons中的前三条记录

9.搜索列中的指定模式 like

select * from persons  where city like '%o%'   //搜索city中带有'o'字母的记录,%为通配符
select * from persons  where city not like '%o%'   //not用于反向选取(不包含)

10.通配符

%:代替一个或多个字符
_:代替一个字符
[charlist]:字符列表中任何一个字符
[^charlist]:不在字符列表中的任何一个字符,或者[!charlist]select * from persons  where city not like 'o%' //搜索以city为o开头的记录
select * from persons  where city not like '[ojbk]%'    搜索city以'ojbk'开头的记录

11.in 允许我们在where中规定多个值

select * from persons  where city in ('0','saffw') //选择city为0和saffw的记录
//和and和or差不多

12.between 选取介于两个值之间的数据范围

select * from persons  where city between 'new york' and 'saffw' //返回new york和saffw之间的数据,包含new york,不包含saffw
select * from persons not where city between 'new york' and 'saffw'    //不包含这个范围
//注意,不同的数据库的between有不同的作用,有的包含包含后面的搜索项,有的不包含后面的搜索项

13.为列名称指定别名 as

//不使用表别名称
select persons.city,persons.firstname,table_1.id from persons,table_1 where persons.lastname = 'laji' and table_1.name = '999'
//使用表别名
select t1.city,t1.firstname,t2.id from persons as t1,table_1 as t2 where t1.lastname = 'laji' and t2.name = '999'

14.根据两个或多个表中列之间的关系,从这些表中查询数据  inner join,left join, right join,full join

//sqliteSPY不支持right join和full join
//两个表中都含有link字段
//不使用join
select table_1.id,persons.firstname,persons.lastname from table_1,persons where table_1.link = persons.link
//使用inner join 会列出两个表中都存在的
select table_1.id,persons.firstname,persons.lastname from table_1 inner join persons on table_1.link = persons.link order by id
//使用left join 不仅会列出两个表中都存在的,还会列出左边的所有值
select table_1.id,persons.firstname,persons.lastname from table_1 left join persons on table_1.link = persons.link order by id
//使用right join 不仅会列出两个表中都存在的,还会列出右边的所有值
//使用full join会列出右边的所有值

15.合并过个select语句的结果集 union

select firstname from persons union select firstname from table_1; //会忽略重复值
select firstname from persons union all select firstname from table_1; //不会忽略重复值

16.拷贝结果集到另一张数据表 select into

//sqlitespy不支持select into 语句
create table table_3 as select * from table_1

17.创建表时加入约束

//约束
//not null 强制不接受null值
//unique 约束唯一标识数据库的每条记录 每个表可以有多个unique约束,但是每个表只能有一个primary key约束
//primary key 主键必须包含唯一的值,主键不能包含NULL值,每个表都应该有一个主键,并且只能有一个主键
//forgien key 一个表中的forgien key指向另一个表中的primary key
//check 用于限制列中的值的范围
//default 用于向列中插入默认值

18.not null 约束

//如果不向字段添加值,就无法插入新记录或者更新记录
create table table_4(
id int not null,
name varchar(255) not null,
value varchar(255)
);

19.unique约束

//mysql 一个unique约束
create table table_4(
id int not null ,
name varchar(255) not null,
value varchar(255),
unique(id)
);//sql server/oracle/ms access 一个约束
create table table_4(
id int not null unique,
name varchar(255) not null,
value varchar(255)
);//多个约束 相当于unique中的两个值合起来在表中只能出现一次
create table table_4(
id int not null,
name varchar(255) not null,
value varchar(255),
constraint lll unique (id,name)
);//SQLite支持ALTER TABLE的有限子集。在SQLite中,ALTER TABLE命令允许用户重命名表,
或向现有表添加一个新的列。重命名列,删除一列,或从一个表中添加或删除约束都是不可能的

20.primary key

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)

21.foreign key

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

22.check 约束

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)

23.default

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

24.创建索引 create index

create index search on persons (link)
// search 为索引名字
// persons 为表名
// link 为列名

25.删除索引,表,数据库

//删除索引sqlite的做法,不同的数据库有不同的方法
drop index search//删除表
drop table persons//删除数据库
drop table my.db

26.添加,修改,删除列 alter table

//添加一个列
alter table table_5 add laji1 int default 0
//sqlite无法删除列
//sqlite无法修改列

27.INCREMENT 自动加1

//主键自动加1
create table table_6 (id integer primary key AUTOINCREMENT,name varchar(128));

28.视图 view

29.日期

30.NULL

//无法比较NULL,可以用is null
select * from table_6 where value is null

31.平均值函数 avg()

select avg(value) from as averagevalue table_4    //求平均值,将结果显示为averagevalue
select value as objk from table_4 where value >(select avg(value) from table_4)
//选取大于平均值的数据

32.匹配的行数 count()

select count(*) as jishu from table_4    //统计总共的行数
select count(distinct value) as jishu from table_4    //统计列中不同数的个数

33.返回第一个记录的值 first()

//无此函数

34.返回最后一个记录的值 last()

//无此函数

35.返回最大值 max

select max(value) from table_4

35.返回最小值 min

select min(value) from table_4

36.计算总和 sum

select sum(value) from table_4

37.对结果集进行分组 group by

SELECT name,sum(value) from table_5 group by name    //根据name对sum之后的值进行分组

38.增加条件 having

select name,sum(value) from table_3 where name = 'zhang' or name = 'wang' group by name
having sum(value) > 150 //选取结果集中大于150的数据

39.将数值字段舍入为指定的小数

SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products

40.创建一个临时表

该表建立后是存储在内存中,不会存在磁盘文件中。当关闭当前文件后,该表会消失。

1.临时表的作用可以用于原来的表的删除操作。因为sq3不支持删除一列,所有可以用临时表作为中间变量,将原表需要的列复制到临死表,删除原表,再重新建立原表,将临时表的内容复制到原表中。(突然想到一个问题,但是未验证。将原表的复制到临时表,删除原表后,突然断电,此时临时表会自动消失,而原表也没有了,那数据就都没有了。那就得先做好一个数据备份了,在进行删除原表的操作了)

2.就是用在某些时候,我们在修改数据后需要点击保存或者取消来确定是否真的要保存这些数据,这时候用临时表会是一个比较好的选择。

create temp table test(name int, id int);
//或者
create temporary table test (name int ,id int);

3.临时表和普通表可以重名。如果重名,在执行删除操作时会先删除临时表,再次执行删除操作,才会删除普通表。添加数据时,两张表都会同时添加。除了删除操作,其他所有操作都将重名的两张表联系起来了。不过在sqlitespy中和实际通过代码编程时会有所不一样。请大家注意。

41.将一张表的数据复制到另外一张表中

 insert into MUsersTemp select null,Accid,Pwd,Ext from Users

MUserTemp为新表,已经创建的表。User为旧表,存在数据。null可以为自增的列。新表中有几列,则也应该插入几列。插入的列的数据类型应该和新表中的列对应相等

如需了解更多更细节的方面,可以参考网址

http://www.w3school.com.cn/sql/sql_create_table.asp

sqlitespy有好多语法、函数和sql server不一样。

使用SQLiteSpy用sql语句操作数据库相关推荐

  1. Labview_使用SQL语句操作数据库(Access)

    SQL 对大小写不敏感:SELECT 与 select 是相同的 空格一定要控制好,且在筛选某些列时,列名不需要用单引号,列名所对应数据类型为(字符串时),需要加单引号.在创建数据库时尽量不要删除ID ...

  2. java数据库返回表格中_Java中sql语句操作数据库及将数据库信息显示在表格中

    首先连接数据库,接着就可以对数据库进行操作了 创建Connection对象,建立与数据库的连接. ResultSet 对象是用来存放操作结果的,也就是SQL查询语句对数据库的查询操作将返回一个Resu ...

  3. Sql语句操作数据库(修改表,修改数据库)

    修改字段名称: sp_rename '表名.原字段表名','表名.新字段表名' 例如我想把Card_Info表里面的OnDate改为Date:  sp_rename 'Card_Info.OnDate ...

  4. 使用T—SQL语句操作数据库

    --数据库的增删改查---------------- use master go if exists (select * from sysdatabases where name='studentdb ...

  5. 使用SQL语句操作数据库

    创建数据库 create database mydb on (name=mydb_data1, filename='f:\sqldb\mydb_data1.mdf', size=5mb, filegr ...

  6. django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  7. django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  8. MySQL数据库https接口_第三章 mysql 数据库接口程序以及SQL语句操作

    mysql  数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...

  9. oracle 查看用户日志,Oracle查看用户操作sql语句以及数据库日志

    --查看日志文件 select member from v$logfile; --查看表空间使用情况 SELECT SUM(bytes) / (1024 * 1024) AS free_space, ...

最新文章

  1. Educational Codeforces Round 78 (Rated for Div. 2)B~C[前缀和]
  2. 微信小程序引入字体图标
  3. 软件不可靠,服务是王道
  4. FileProvider 在 Android N 上的应用
  5. CVPR 2020 运行SGMN遇到的问题及解决办法
  6. 正则表达式注意事项以及常用方法
  7. Android 编程下快捷图标的创建
  8. OpenCV学习(27) 直方图(4)
  9. JeeSite 4.0 规划(二)
  10. css sprite 介绍和实例
  11. OpenCV-Python实战(20)——OpenCV计算机视觉项目在Web端的部署
  12. 单例初始化(MRC模式之autorelease)
  13. 50多款51单片机程序源码原理图编程源代码
  14. 3D深度相机调研【史上最全,不服来战】
  15. html 前端分页代码怎么写,纯JavaScript实现的前端分页代码
  16. 南澳大学计算机科学专业学费,2020年南澳大学学费(本科及研究生)及学费支付方式解析!...
  17. WINDOWS 7 PRO X64 2015年9月增量补丁包微软官方下载地址
  18. Gram格拉姆矩阵在风格迁移中的应用
  19. Uva 10559 消除方块
  20. 50款巧夺天工的PSD按钮素材

热门文章

  1. 关于win10激活工具KMSpico安装失败,卡住不动!
  2. UVA12096 - The SetStack Computer(set + map映射)
  3. SQL DUMB Series-3 4 通关过程分享(sql注入学习DAY2)
  4. 个人app开发之找亮点
  5. ChatGPT办公应用:制作PPT大纲
  6. 优雅地实现一个高效、异步数据实时刷新的列表
  7. cocos2dx-是男人就坚持20s 练手项目
  8. 揭秘,两个大西瓜竟然能合成它...
  9. Tansat XCO2数据下载
  10. 华为模拟器配置S5700交换机OSPF案例