数据库(sqlite)

一.基本SQL语句

SQLite将每个数据库都保存成一个文件
数据库中的数据被组织成的形式。
表由若干拥有相同字段的记录组成。 表可以为空,即拥有0条记录。
字段指的是记录中的数据域,它有不同的类型,可以是一个数值,也可以是字符串。
每个表中可以指定一个或多个字段为主键,表中所有记录的主键的值都不能重复。这种不重复是在插入记录时控制的,即如果向一个表中插入记录时,这个表中已有与插入记录具有相同主键的记录,则插入操作失败。

1.创建表

create table student(
    ID          INTEGER,
    name     TEXT,
    sex         TEXT,
    age         INTEGER,
    primary  key(ID)
);    

SQLite中的数据类型

NULL – The value is a NULL value.

INTEGER – The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

REAL – The value is a floating point value, stored as an 8-byte IEEE floating point number.

TEXT – The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16LE).

BLOB – The value is a blob of data, stored exactly as it was input.

2.删除表

用drop语句可以从数据库中删除指定的表

drop table student;

表被删除后,表中所存储的数据将全部丢弃

3.插入记录
用insert语句可以向表中插入一条新记录

insert into student values(1, 'Zhang', 'M', 18);

4.修改记录

用update语句可以可以修改表中的记录

update student set Sex = 'F', Age = 20 where Name = 'Zhang';

where及其后的部分表示一个过滤条件,如果省略where和它后面的部分,则语句的作用就是修改表student中的所有记录,将它们的Sex字段的值设为F,Age字段的值设为20。

5.删除记录
用delete语句可以删除表中的记录

delete from student where ID = 2;

如果没有where子句,则表student中的所有记录均被删除,成为空表。

#include <stdio.h>
#include <sqlite3.h>

int main()
{
	sqlite3 *db;
	int ret = sqlite3_open("student.db",&db);
	if (ret != SQLITE_OK)
	{
		printf ("数据库打开失败\n");
		return -1;
	}
	
	char *errmsg;
	const char *sql = "create table if not exists student(ID INTEGER,name TEXT,sex TEXT,age INTEGER,primary  key(ID))";
	ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg );
	if (ret != SQLITE_OK)
	{
		printf ("exec 失败: %s\n", errmsg);
		return -1;
	}
	
	int id = 1;
	char name[20] = "Zhang";
	char sex[10] = "M";
	int age = 18;
	
	char str[100];
	sprintf (str, "insert into student values(%d, '%s', '%s', %d)", id, name, sex, age);
	ret = sqlite3_exec(db, str, NULL, NULL, &errmsg );
	if (ret != SQLITE_OK)
	{
		printf ("exec 失败: %s\n", errmsg);
		return -1;
	}
	
	sqlite3_close(db);
	
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值