SQLite 语句基础

SQLite 语句基础

1. 数据定义语句(DDL:Data Definition Language)

/*!  
包括create和drop等操作
在数据库中创建新表或删除表(create table或 drop table)


 SQLite将数据划分为以下几种存储类型:
 integer : 整型值
 real : 浮点值
 text : 文本字符串
 blob : 二进制数据(比如文件)
*/



// 1.1 创表(create table)
create table  t_person (id integer, name text, age integer) ;
create table if not exists t_person (id integer, name text, age integer);   // 如果表不存在,才创建


// 1.2 删表(drop table)
drop table t_person;

drop table if exists t_person;    // 如果表存在,才删除





2. 数据操作语句(DML:Data Manipulation Language)
包括insert、update、delete等操作
上面的3种操作分别用于添加、修改、删除表中的数据


 // 2.1 插入数据(insert)
insert into t_person (id,name,age) values (1,'apple',35);  // 数据库中的字符串内容应该用单引号 ' 括住



// 2.2 更新数据(update)
update t_person set id = 5,name = 'iPhone', age = 10;   // 更改了表中所有属性值



// 2.3 删除数据(delete)
delete from t_person;



3. SQL 条件语句 where


 如果只想更新或者删除某些固定的记录,那就必须在DML语句后加上一些条件
 条件语句的常见格式
 where 字段 = 某个值 ;   // 不能用两个 =
 where 字段 is 某个值 ;   // is 相当于 =
 where 字段 !=  某个值 ;
 where 字段 is not 某个值 ;   // is not 相当于 !=
 where 字段 >  某个值 ;
 where 字段1 =  某个值 and 字段2 > 某个值 ;  // and相当于C语言中的 &&
 where 字段1 =  某个值 or 字段2 = 某个值 ;  //  or 相当于C语言中的 ||


// 3.1 where 的例子

update t_person set id=5,name=kaka,age=30 where id =1 and name !='jack’;





4. 数据查询语句(DQL:Data Query Language)


 可以用于查询获得表中的数据
 关键字select是DQL(也是所有SQL)用得最多的操作
 其他DQL常用的关键字有where,order by,group by和having



select * from t_person   //  查询所有的字段

select id,name,age from t_person where age = 23;



5.  起别名

/* 
 格式(字段和表都可以起别名)
 select 字段1 别名 , 字段2 别名 , … from 表名 别名 ;
 select 字段1 别名, 字段2 as 别名, … from 表名 as 别名 ;
 select 别名.字段1, 别名.字段2, … from 表名 别名 ;
*/
 
 示例
select name myname, age myage from t_person;
 给name起个叫做myname的别名,给age起个叫做myage的别名


 select p.name, p.age from t_person p;
 给t_person 表起个别名叫做p,利用p来引用表中的字段






6. 计算记录的数量
/*! 
 select count (字段) from 表名 ;
 select count ( * ) from 表名 ;
*/ 
 
 示例
 select count (*) from t_person;
 select count ( * ) from t_person where age>= 30;



7. 排序
/*!
 查询出来的结果可以用order by进行排序
 select * from t_student order by 字段 ;
 默认是按照升序排序(由小到大),也可以变为降序(由大到小)
 select * from t_student order by age desc ;  //降序
 select * from t_student order by age asc ;   // 升序(默认)
 */

select * from t_person order by age;

select * from t_person order by age desc;  // 降序排列


// 也可以用多个字段进行排序,   
//  按age倒序,id升序

select * from t_person order by age desc , id asc;





8. limit

/*!

 使用limit可以精确地控制查询结果的数量,比如每次只查询10条数据
 */



select * from t_person limit 2,2   // 跳过前面两天记录取后两条记录





9. 简单的约束


 Primary Key (主键,简称PK)用来唯一地标识某一条记录,主键字段默认就包含了not null 和 unique 两个约束 
 autoincrement 主键自动增长(必须是integer类型)

 not null :规定字段的值不能为null
 unique :规定字段的值必须唯一
 default :指定字段的默认值



//  创建表格 id 为主键自动增长,名字不能为空,性别不能为空 默认性别为’M'
create table t_student (id integer primary key autoincrement,name text not null unique,sex text not null default 'M’)



10. 外键约束


 利用外键约束可以用来建立表与表之间的联系
 外键的一般情况是:一张表的某个字段,引用着另一张表的主键字段



// 创建一个表,t_student 表的 class_id  引用  t_class 表的 id 
create table t_student (id integer primary key autoincrement, name text, age integer, class_id integer, constraint fk_student_class foreign key (class_id) references t_class (id));



### 关于 SQLite SQL 语法的概述 SQLite 是一种轻量级的关系型数据库管理系统,因其简单性和高效性被广泛用于移动应用、嵌入式系统和小型网站开发中。以下是 SQLite 中常用的 SQL 语句及其示例。 #### 数据定义语言 (DDL) 数据定义语言主要用于创建、修改或删除数据库中的对象,例如表、索引等。常见的 DDL 操作包括 `CREATE` 和 `DROP` 等命令。 - **创建表** 创建一张新表时可以指定列名、数据类型以及其他约束条件。以下是一个简单的例子: ```sql CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INT CHECK(age >= 0), email TEXT UNIQUE ); ``` 上述代码片段展示了如何创建名为 `users` 的表,并设置了主键自动增长功能以及一些基本的数据验证规则[^1]。 - **删除表** 如果不再需要某张表,则可以通过 DROP 命令将其移除: ```sql DROP TABLE IF EXISTS users; ``` #### 数据操作语言 (DML) 这部分涉及向数据库写入或者读取记录的操作,主要包括 INSERT INTO, UPDATE SET WHERE 及 DELETE FROM WHERE 这些关键字的应用。 - **插入数据** 向已存在的表格里添加新的行项: ```sql INSERT INTO users(name, age, email) VALUES ('Alice', 30, 'alice@example.com'); ``` - **更新现有数据** 修改特定条件下匹配到的一条或多条记录的内容: ```sql UPDATE users SET age = 28 WHERE name = 'Alice'; ``` - **删除符合条件的数据** 删除满足一定标准下的某些行: ```sql DELETE FROM users WHERE age < 18; ``` #### 数据查询语言 (DQL) 这是最常使用的部分之一,主要用来检索存储在关系型数据库里的信息。SELECT 是其中最重要的指令。 - **基础查询** 获取所有用户的姓名与电子邮件地址: ```sql SELECT name, email FROM users; ``` - **带条件过滤的复杂查询** 查找年龄大于等于25岁的用户列表: ```sql SELECT * FROM users WHERE age >= 25 ORDER BY age DESC; ``` 以上就是针对 SQLite 数据库的一些典型 SQL 语法说明及其实战案例展示。 #### 工具支持 对于初学者来说,除了学习理论知识外还需要借助图形界面工具来辅助实践练习过程。当完成安装配置之后进入新建查询模式即可开始尝试编写自己的第一条SQL脚本[^3]。 另外值得注意的是,在实际工程项目当中如果遇到复杂的SQL分析需求还可以考虑引入专门设计好的第三方插件比如基于 ANTLR4 构建而成的 SQLite 解析器解决方案能够极大地方便程序员们的工作流程效率提升显著[^2]。 ```python import sqlite3 conn = sqlite3.connect(':memory:') # 创建内存中的临时数据库连接 curs = conn.cursor() # 执行上述提到过的各种类型的SQL命令... try: curs.execute('''CREATE TABLE test(id integer primary key autoincrement, value text not null);''') curs.executemany('INSERT INTO test(value) VALUES (?) ', [('one',), ('two',)]) finally: conn.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值