首页 > 数据库 >SQLITE

SQLITE

时间:2024-04-21 11:34:30浏览次数:30  
标签:SQLITE name SQLite table column1 SELECT column2

SQLITE

1.简介

1>DDL - 数据定义语言
命令描述
CREATE 创建一个新的表,一个表的视图,或者数据库中的其他对象。
ALTER 修改数据库中的某个已有的数据库对象,比如一个表。
DROP 删除整个表,或者表的视图,或者数据库中的其他对象。
2>DML - 数据操作语言
命令描述
INSERT 创建一条记录。
UPDATE 修改记录。
DELETE 删除记录。
3>DQL - 数据查询语言
命令描述
SELECT 从一个或多个表中检索某些记录。

2.命令

1>点命令
  • 命令提示符下键入一个简单的 sqlite3 命令,在 SQLite 命令提示符下,您可以使用各种 SQLite 命令获取

  • 可用的点命令的清单,可以在任何时候输入 ".help"

  • .show 命令,来查看 SQLite 命令提示符的默认设置

2>格式化输出
 sqlite>.header on    #开启头部显示
 sqlite>.mode column #左对齐列
 sqlite>.timer on #开启cpu定时器
 sqlite>
 ​
3>sqlite_master 表格

查看表概要

 sqlite>.schema sqlite_master

3.SQLite 语法

1>大小写敏感性

不区分大小写的,但也有一些命令是大小写敏感的,比如 GLOBglob 在 SQLite 的语句中有不同的含义。

2>注释

"--"或"/* */"

3>SQLite 语句

以任何关键字开始,以分号 ; 结束

ANALYZE:

 ANALYZE;
 ANALYZE database_name;
 ANALYZE database_name.table_name;

AND/OR:

 SELECT column1 FROM table_name WHERE CONDITIONN-1 {AND|OR} CONDITIONN2;

ALTER TABLE

 ALERT TABLE table_name ADD COLUMN  column_def;

ALTER TABLE 语句(Rename):

 ALTER TABLE table_name RENAME TO new_table_name;

ATTACH DATABASE

 ATTACH DATABASE 'DatabaseName'  AS 'Alias-Name';

BETWEEN

 SELECT column1, column2....columnN
 FROM   table_name
 WHERE column_name BETWEEN val-1 AND val-2;

COMMIT

 COMMIT;

CREATE INDEX

 CREATE INDEX index_name
 ON table_name ( column_name COLLATE NOCASE );

CREATE TABLE

 CREATE TABLE table_name(
    column1 datatype,
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
    PRIMARY KEY( one or more columns )
 );

COUNT

 SELECT COUNT(column_name)
 FROM   table_name
 WHERE CONDITION;

DELETE

 DELETE FROM table_name WHERE {CONDITION};

INSERT INTO

 INSERT INTO table_name( column1, column2....columnN)
 VALUES ( value1, value2....valueN);

IN

 SELECT column1, column2....columnN
 FROM   table_name
 WHERE column_name IN (val-1, val-2,...val-N);

Like

 SELECT column1, column2....columnN
 FROM   table_name
 WHERE column_name LIKE { PATTERN };

SELECT

 SELECT column1, column2....columnN
 FROM   table_name;

UPDATE

 UPDATE table_name
 SET column1 = value1, column2 = value2....columnN=valueN
 [ WHERE CONDITION ];

4.SQLite 数据类型

  • SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)

  • SQLite 没有一个单独的用于存储日期和/或时间的存储类,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。

5.SQLite 创建数据库

1>语法

 $ sqlite3 DatabaseName.db
 sqlite>.open test.db --.open 来建立新的数据库文件

2>实例

 $ sqlite3 testDB.db  
 sqlite>     -- sqlite3 命令在成功创建数据库文件之后,将提供一个 sqlite> 提示符
 sqlite>.databases   --.databases 命令来检查它是否在数据库列表中
 sqlite>.quit --.quit 命令退出 sqlite 提示符
 $
 $sqlite3 testDB.db .dump > testDB.sql -- .dump 点命令来导出完整的数据库在一个文本文件中

6.SQLite 附加数据库

 ATTACH DATABASE file_name AS  database_name;

打开的数据库和使用 ATTACH附加进来的数据库的必须位于同一文件夹下

7.SQLite 分离数据库

 DETACH DATABASE 'Alias-Name';

8.SQLite 创建表

 CREATE TABLE database_name.table_name(
    column1 datatype PRIMARY KEY(one or more columns), --主键
    column2 datatype,
    column3 datatype,
    .....
    columnN datatype,
 );
 ​
  • 使用 SQLIte 命令中的 .tables 命令来验证表是否已成功创建

  • 使用 SQLite .schema 命令得到表的完整信息

9.SQLite 删除表

一旦一个表被删除,表中所有信息也将永远丢失

 DROP TABLE database_name.table_name;

10.SQLite Insert 语句

1>向数据库的某个表中添加新的数据行

 INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
 VALUES (value1, value2, value3,...valueN);
 INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

2>使用一个表来填充另一个表

 INSERT INTO first_table_name [(column1, column2, ... columnN)] 
    SELECT column1, column2, ...columnN
    FROM second_table_name
    [WHERE condition];

11.SQLite Select 语句

1>获取数据

从 SQLite 数据库表中获取数据,以结果表的形式返回数据

 SELECT column1, column2, columnN FROM table_name;   --column1, column2...是表的字段,他们的值即是您要获取的
 SELECT * FROM table_name; --获取所有可用的字段
2>设置输出列的宽度
 sqlite>.width 10, 20, 10
3>Schema 信息

因为所有的点命令只在 SQLite 提示符中可用,所以当您进行带有 SQLite 的编程时,您要使用下面的带 sqlite_master 表的 SELECT 语句来列出所有在数据库中创建的表:

 sqlite> SELECT tbl_name FROM sqlite_master WHERE type = 'table';

12.SQLite 运算符

逻辑运算符

image-20240312113935554

13.SQLite 表达式

1> 布尔表达式
 sqlite> SELECT * FROM COMPANY WHERE SALARY = 10000;
2>数值表达式

有几个内置的函数,比如 avg()、sum()、count(),等等,执行被称为对一个表或一个特定的表列的汇总数据计算。

 sqlite> SELECT COUNT(*) AS "RECORDS" FROM COMPANY; 
 RECORDS = 7
3>日期表达式

返回当前系统日期和时间值

 sqlite>  SELECT CURRENT_TIMESTAMP;
 CURRENT_TIMESTAMP = 2013-03-17 10:43:35

14.Where,Update ,Delete,Like 子句

where,update

 UPDATE table_name
 SET column1 = value1, column2 = value2...., columnN = valueN
 WHERE [condition];

Delete

 DELETE FROM table_name
 WHERE [condition];

Like

百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。

 

15.GLOB

大小写敏感

  • *:匹配零个、一个或多个数字或字符。

  • ?:代表一个单一的数字或字符。

  • [...]:匹配方括号内指定的字符之一。例如,[abc] 匹配 "a"、"b" 或 "c" 中的任何一个字符。

  • [^...]:匹配不在方括号内指定的字符之一。例如,[^abc] 匹配不是 "a"、"b" 或 "c" 中的任何一个字符的字符。

16.Limit

限制由 SELECT 语句返回的数据数量。

语法

 SELECT column1, column2, columnN 
 FROM table_name
 LIMIT [no of rows] OFFSET [row num]

实例

image-20240313162318255

17.ORDER BY

 SELECT
    select_list
 FROM
    table
 ORDER BY
    column_1 ASC,
    column_2 DESC;
  • ASC 默认值,从小到大,升序排列

  • DESC 从大到小,降序排列

17.GROUP BY

  • 来对相同的数据进行分组

  • GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前

    语法

 SELECT column-list
 FROM table_name
 WHERE [ conditions ]
 GROUP BY column1, column2....columnN
 ORDER BY column1, column2....columnN

实例

image-20240313163427553

18.HAVING

  • 允许指定条件来过滤将出现在最终结果中的分组结果

  • WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件

语法

 SELECT column1, column2
 FROM table1, table2
 WHERE [ conditions ]
 GROUP BY column1, column2
 HAVING [ conditions ]
 ORDER BY column1, column2

实例

image-20240313163831910

19.DISTINCT

消除所有重复的记录,并只获取唯一一次记录

语法

 SELECT DISTINCT column1, column2,.....columnN 
 FROM table_name
 WHERE [condition]

20.*高级教程

SQLite 的 PRAGMA 命令是一个特殊的命令,可以用在 SQLite 环境内控制各种环境变量和状态标志。一个 PRAGMA 值可以被读取,也可以根据需求进行设置。

21.Python接口

1>Python sqlite3 模块 API

image-20240313164903725

image-20240313164954989

2>连接数据库
 import sqlite3
 conn=sqlite3.connect('test.db')

如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。

3>创建表
 import sqlite3
 conn=sqlite3.connect('test.db')
 c=conn.cursor()
 c.execute('''CREATE TABLE COMPANY
  (ID INT PRIMARY KEY NOT NULL,
  NAME TEXT NOT NULL,
  ADDRESS CHAR(50),
  SALARY REAL);''')
 conn.commit()
 conn.close()
4>INSERT 操作
 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")
5>SELECT 操作
 cursor=c.execute("SELECT id,name from COMPANY")
 for row in cursor:
  print"ID= ",row[0]
  print"NAME= ",row[1]
6>DELETE操作
 c.execute("DELETE from COMPANY where ID=2;")
 

标签:SQLITE,name,SQLite,table,column1,SELECT,column2
From: https://www.cnblogs.com/liudan050501/p/18148719

相关文章

  • Delphi10.3开发的SQLite3的图形操作小软件
    链接:https://pan.baidu.com/s/1Glye61WgYd_wC0uOfx9ZoQ提取码:dqd9关键部份FDConnection1.GetTableNames('','','',ListBox1.Items);StringGrid1.Cells[1,i+1]:=FDMetaInfoQuery1.FieldByName('COLUMN_NAME').AsString;......
  • Sqlite数据库使用教程
    1、在官网下载sqlite文件,然后在C盘创建一个文件夹C:\sqlite,将下载到的文件解压在此目录下,再将sqlite3加入环境变量,win+r,在命令提示框中输入sqlite3,查看环境是否完成。  sqlite3数据库环境完成后,开始学习命令操作。1、使用 .open命令创建数据库,并使用.databases查......
  • Qt使用Sqlite数据库-2
        上一篇文章介绍了sqlite数据库在Qt中基本使用方法(链接:Qt使用Sqlite数据库-1(入门级)-CSDN博客)。今天继续学习数据库常用的语法。1.删除数据库内容voiddeleteData(){QStringSql;//拼接sql语句Sql="DELETEFROMPerson_TableWHEREName='张......
  • qt 6 使用sqlite进行加密
    在做项目时使用的sqlite,但是这个数据库没有自带的密码设置,查了好多资料,终于解决了,感谢这个博主大佬的资料qtsqlite数据库加密和navicat实现互连互通_qtsqliteaes_128_cbc-CSDN博客下面仅供个人记录做参考1.https://codeload.github.com/devbean/QtCipherSqlitePlugin/zip/re......
  • Qt使用Sqlite数据库-1(入门级)
    1.在Pro文件中加入sql资源QT+=coreguisql    这是第一步也是最重要的一步,没有加入sql资源。在包含数据库文件时会报错找不到该文件。2.创建链接及打开数据库//包含数据库头文件#include<QSqlDatabase>#include<QSqlError>#include<QSqlQuery>//创建链接......
  • SQLite数据库文件格式(十五)
     返回:SQLite—系列文章目录   上一篇:SQLite4.9的虚拟表机制(十四)下一篇:SQLite—系列文章目录   ► 目录本文档描述和定义磁盘上的数据库文件自SQLite以来所有版本使用的格式版本3.0.0(2004-06-18).1. 数据库文件SQLite数据库的完整状态通常是包......
  • 用sql语句获取SQLite建表语名及字段
    --sqlite通过sql语句得到建表的DDLSELECTsqlFROMsqlite_masterWHEREtype='table'ANDname='doctorDetails';--在SQLite中,您可以使用以下SQL查询来获取表中所有索引的名称:返回数据库中所有索引的列表SELECTnameFROMsqlite_masterWHEREtype='index';--如果您想针......
  • 布署到centos7.9时,ModuleNotFoundError No module named ‘_sqlite3‘
    先下载编译sqlite3wgethttp://www.sqlite.org/sqlite-3.5.6.tar.gzcdsqlite-3.5.6./configure--disable-tclmake&&makeinstall注意addLIBDIRtothe‘LD_LIBRARY_PATH’environmentvariable,这是sqlite建议添加环境变量。所以:echoexportLD_LIBRARY_PATH=/usr/......
  • SQLite下一代查询规划器(十)
     返回:SQLite—系列文章目录   上一篇:SQLite查询优化器概述(九)下一篇:SQLite的架构(十一)1. 引言“查询规划器”的任务是弄清楚找出完成SQL语句的最佳算法或“查询计划”。从SQLite 版本3.8.0 (2013-08-26)开始,查询规划器组件已重写,使其运行得更快并生成更好的......
  • Android操作sqlite数据库
    Sqlite数一种轻量级的关系型数据库,android里面可以用来持久化存储一些用户数据。一、SQLiteOpenHelper方式SQLiteOpenHelper是原生的数据库帮助类,继承这个类,用来创建,更新数据库的操作publicclassMySqliteOpenHelperextendsSQLiteOpenHelper{privatestaticfinal......