sqlite

对已有表添加新的列: 

PRAGMA foreign_keys = 0;

CREATE TABLE sqlitestudio_temp_table AS SELECT *
                                          FROM Students;

DROP TABLE Students;

CREATE TABLE Students (
    Id    INTEGER PRIMARY KEY AUTOINCREMENT
                  NOT NULL,
    Name  STRING  NOT NULL,
    Age   INTEGER NOT NULL,
    Addr  STRING,
    Grade INTEGER NOT NULL
);

INSERT INTO Students (
                         Id,
                         Name,
                         Age,
                         Addr
                     )
                     SELECT Id,
                            Name,
                            Age,
                            Addr
                       FROM sqlitestudio_temp_table;

DROP TABLE sqlitestudio_temp_table;

PRAGMA foreign_keys = 1;

使用group by 分组查询

select Age,Max(Grade),MIN(Grade),AVG(Grade),SUM(Grade),COUNT(Grade)/COUNT(*) from Students  group by Age

以Age 为分组(相同的Age为一组) 显示每组中最高的分数和对应的年纪 

select COUNT(*) from Students

排序

select* from 表名 order by 列名  ACS/ DESC(降序) ,列名

高级数据过滤

1、名字以T 开头

select * from 表名 where name like 'T%'

2、名字以ke结尾

select* from 表名 where name like '%T'

3、名字中包含的

select * from 表名 where name like '%T%'

多值检测

Select age,name from Students where age = 1 or age = 18 or age = 23

Select age,name from Students where age in(1,18,23)

NULL 值检测 

select 1, 2,3 

select 1,2,3,4,6=6,null++1,null+null  与null 作任何运算都是null

限制查询结果

insert into Students (Name,Age,addr,grade) select Name,age,addr,grade from Students

将查询结果作为值插入表中 

select * from Students order by Id limit 3 offset 2 从第二行开始(0开始) 取最多三条数据 

select distinct Age from Students order by age limit 3

数据库表之间的关系 (外键)

Join 语句

select * from T_Authors a join T_books b where a.Id == b.authorid

select * from T_Authors a join T_books b on a.Id == b.authorid

select b.id as bookId from T_Authors a join T_books b on a.Id == b.authorid 

 表间多对多关系

select * from StudentsTeachersRealations r 

join Teachers t on r.TeacherId = t.id

join Students s on r.StudentId = s.id

where t.name == ''

MySQL 数据库

SQL 注入

避免SQL 字符串拼接,使用参数的方式

04-15
### SQLite 使用指南 SQLite 是一种轻量级的关系型数据库管理系统,广泛应用于嵌入式设备、移动应用程序以及小型项目开发中。以下是关于如何下载并使用 SQLite 的详细介绍。 #### 1. 下载与安装 可以从官方站点下载 SQLite 工具包[^1]。解压后会发现三个主要文件: - **sqldiff/sqldiff.exe**: 用于比较两个 SQLite 数据库之间的差异。 - **sqlite3/sqlite3.exe**: 这是 SQLite 的命令行客户端工具,可以用来执行 SQL 查询和管理数据库。 - **sqlite3_analyzer/sqlite3_analyzer.exe**: 提供数据表和索引的统计分析功能。 这些工具可以直接运行而无需额外配置。 #### 2. 初始化 SQLite 库 如果计划通过 C/C++ 接口访问 SQLite,则需先调用 `sqlite3_initialize()` 函数完成库初始化操作[^2]。此过程仅需执行一次即可覆盖整个程序生命周期: ```c #include <stdio.h> #include <sqlite3.h> int main() { int rc = sqlite3_initialize(); if (rc != SQLITE_OK) { fprintf(stderr, "Failed to initialize SQLite: %d\n", rc); return 1; } printf("SQLite initialized successfully.\n"); return 0; } ``` 上述代码片段展示了如何检测初始化状态,并处理可能发生的错误情况。 #### 3. Python 中集成 SQLite 对于喜欢脚本语言开发者来说,在 Python 环境下也能方便地利用 SQLite 存储结构化数据[^3]。下面是一个简单例子展示怎样将 Pandas DataFrame 转存至内存中的临时 SQLite 数据库里: ```python import pandas as pd from sqlalchemy import create_engine # 创建一个简单的DataFrame对象 data = {'Name': ['Tom', 'Nick', 'John'], 'Age': [20, 21, 19]} df = pd.DataFrame(data) # 构建SQLAlchemy引擎实例连接到SQLite engine = create_engine('sqlite://', echo=False) df.to_sql(name='users', con=engine, index=False) # 验证写入成功与否 result = engine.execute("SELECT * FROM users").fetchall() print(result) ``` 以上示例说明了从创建 DataFrame 到将其保存成名为 “users” 表格的过程,最后还验证了存储的内容是否正确无误。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值