Android学习之SQL基础使用

本文介绍了SQLite数据库的基础知识,包括其轻量级特性、数据类型以及在Android中的使用。讲解了如何创建表、使用约束、执行DML和DDL语句。在Android中,通过继承SQLiteOpenHelper创建数据库帮助类,实现数据的读写操作。同时,对比了getReadableDatabase()和getWritableDatabase()的区别。
摘要由CSDN通过智能技术生成

SQLITE 构化查询语言 (Structured Query Language)

是什么

SQLite是一个轻量型的数据库。

怎么样

  • 轻量级 : SQLite数据库是一个轻量级的数据库, 适用于少量数据的CURD;
  • 文件本质 : SQLite数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动;
  • 数据读写 : SQLite数据库打开只是打开了一个文件的读写流, 如果有大数据量读写, 需要高并发存储, 那么就不应该使用SQLite;
  • 它在android中适合保存个人设置等没有大量数据的信息,

怎么用

用之前,先了解SQL基础知识

SQLite的数据类型

  • null:空值相当于java中的null
  • integer:带符号的整型,相当于java中的int
  • real:浮点数字,相当于java中的float/double
  • text/varchar:字符串文本,相当于java中的String
  • blob:二进制对象,相当于java中的byte数组,用于存放图片

提醒:sql中不区分大小写

Sqlite3中的约束

约束就是限定数据库字段的条件

NOT NULL :非空

UNIQUE:唯一

PRIMARY:主键

CHECK:条件检查

DEFAULT:默认

可对表里的结构和字段进行约束限定,将约束条件放在需要约束的字段之后

创建表

数据库是数据库,数据表是存放在数据库中存放信息的容器,

create table 表名(字段名 类型 长度 约束条件,….)

其中,长度和约束条件可根据实际情况添加

eg:create table student(
    "+"id INTEGER PRIMARY KEY AUTOINCREMENT,"
     +"name VARCHAR(20) NOT NULL,"
     +"cid INTEGER,"
     +"age INTEGER CHECK(age>18 and age<60),"
     +"gender BIT DEFAULT(1),"
     +"score REAL");

重要事项

  • SQL 对大小写不敏感
  • SQL 语句后面的分号,分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。
  • 星号(*)是选取所有列的快捷方式。
  • 引号的使用。SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

SQL DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

sql语句

语法

SELECT 列名称 FROM 表名称
eg:SELECT LastName FROM Persons

表示从Persons表里面获取名为LastName的列

SELECT DISTINCT 语句

DISTINCT:取唯一不同的值
语法:

SELECT DISTINCT 列名称 FROM 表名称
eg:SELECT DISTINCT Company FROM Orders 

表示从Orders表中选取唯一的Company

WHERE 子句

WHERE 子句用于规定选择的标准。如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法

select 列 from 表名称 where 列 运算符 值
eg:SELECT *FROM PERSONS WHERE City='beijing'

表示从PERSONS表中选取居住在北京的人

AND & OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

AND

eg:SELECT*FROM Persons WHERE FirstName='Thomas'**AND** Lastname='Carter'

OR

eg:SELECT * FROM Persons WHERE firstName='Thomas'**OR** lastName='Carter'

结合 AND 和 OR 运算符

使用圆括号来组成复杂的表达式

eg:SELECT * FROM Persons WHERE (FirstName='Thomas' OR 
   FirstName='William')
  AND LastName='Carter'

ORDER BY 子句

ORDER BY 语句用于对结果集进行排序。

  • ORDER BY 语句用于根据指定的列对结果集进行排序
  • ORDER BY 语句默认按升序对记录进行排序
  • 如果想按降序,可以使用DESC,升序使用ASC,但几乎没什么用,因为默认升序
eg1:
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值