数据库
2016-06-17 09:22
232 查看
一。SQLite:数据库
----------------------------------
【名词解释】
数据库(database):相当于excel文件,是若干个数据表的载体,内部可以存在若干数据表
数据表(table):相当于excel文件中的某个工作表,用于存储数据
列/字段(column):即一竖排
行(row):即一横排
【相关英文】
design:设计
unique:唯一的
execute:执行
insert:插入
into:到...里面
delete:删除
【SQL语句】
是一系列固定的语法,实现对数据库的所有内容进行管理。
【创建数据表】
语法:create table 表名 (字段设计列表)
字段设计列表语法:字段名 字段数据类型 字段约束
各字段之间使用英文的逗号进行分隔
示例:create table teachers (name varchar(8) not null unique, tel varchar(16), email varchar(50))
【增加数据】
语法:insert into 表名 (字段列表) values (值列表)
示例:
insert into teachers (name, tel, email) values ('王海涛', '13800138001', 'wanght@tedu.cn')
insert into teachers (email, name, tel) values ('chengheng@tedu.cn', '成恒', '13800138006')
insert into teachers (name) values ('张广')
【删除数据】
语法:delete from 表名 [where子句]
where子句的语法:where 字段 条件运算符 值 [关系运算符 字段 条件运算符 值]
条件运算符:= <> >= <=
关系运算符:and or not
示例:
delete from teachers // 删除teacher表中的所有数据
delete from teachers where name='王海涛' // 删除name字段的值为'王海涛'的数据
delete from teachers where tel='010-66778899' // 删除tel字段的值为'010-66778899'的数据
delete from teacher where name='成恒' and tel='10086' // 删除name字符的值为'成恒',并且tel字段的值为'10086'的数据,以上2个条件必须同时满足
delete from teachers where name='成恒' or tel='13800138007' // 删除name字符的值为'成恒',或者tel字段的值为'13800138007'的数据,以上2个条件满足其中任何1条均可
【修改数据】
语法:update 表名 set 字段赋值列表 [where子句]
字段赋值列表:字段名=字段值
示例:
update teachers set tel='010-66778899' // 设置每一条数据的tel字段的值为'010-66778899'
update teachers set email='zhangguang@tedu.cn' where name='张广' // 设置name字段的值为'张广'的数据的email字段值为'zhangguang@tedu.cn'
增(加) 删(除) (修)改 查(询)
二。具体用法
1.使用SQLiteOpenHelper创建数据库的类
public class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context) {
super(context, "tedu.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("tedu", "DBOpenHelper.onCreate()");
// 当创建数据库时,创建出数据表
String sql = "CREATE TABLE " + Database.Word.TABLE_NAME + " ("
+ Database.Word.FIELD_ID + " integer primary key autoincrement, "
+ Database.Word.FIELD_EN + " varchar(16) not null unique, "
+ Database.Word.FIELD_ZH + " varchar(32)"
+ ")";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 当升级版本时
}
}
2.在获得数据库对象
public class WordDao implements IDao {
private Context context;
public WordDao(Context context) {
this.context = context;
}
@Override
public long insert(Word word) {
// 获取DBOpenHelper对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
// 通过DBOpenHelper对象获取SQLiteDatabase对象
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 准备需要增加的数据
ContentValues values = new ContentValues();
values.put(Database.Word.FIELD_EN, word.getEn());
values.put(Database.Word.FIELD_ZH, word.getZh());
// 执行增加,并获取操作结果
long id = db.insert(Database.Word.TABLE_NAME, Database.Word.FIELD_ID, values);
// 关闭连接
close(null, db);
// 返回
return id;
}
@Override
public int delete(long id) {
// 1. 获取SQLiteDatabase对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 2.1. 准备必要数据
// (暂无)
// 2.2. 执行,并获取结果
int affectedRows = db.delete(Database.Word.TABLE_NAME, Database.Word.FIELD_ID + "=?", new String[] { id + "" });
// 2.3. 释放资源
close(null, db);
// 3. 返回结果
return affectedRows;
}
@Override
public int update(Word word) {
// 1. 获取SQLiteDatabase对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 2.1. 准备必要数据
ContentValues values = new ContentValues();
values.put(Database.Word.FIELD_ZH, word.getZh());
String whereClause = Database.Word.FIELD_ID + "=?";
String[] whereArgs = { word.getId() + "" };
// 2.2. 执行,并获取结果
int affectedRows = db.update(Database.Word.TABLE_NAME, values, whereClause, whereArgs);
// 2.3. 释放资源
close(null, db);
// 3. 返回结果
return affectedRows;
}
@Override
public List<Word> query(String[] columns, String whereClause, String[] whereArgs) {
// 1. 获取SQLiteDatabase对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 2.1. 准备必要数据
List<Word> words = new ArrayList<Word>();
// 2.2. 执行,并获取结果
String orderBy = Database.Word.FIELD_ID + " desc";
Cursor c = db.query(Database.Word.TABLE_NAME, columns, whereClause, whereArgs, null, null, orderBy);
if(c.moveToFirst()) {
for(; !c.isAfterLast(); c.moveToNext()) {
Word word = new Word();
word.setId(c.getLong(c.getColumnIndex(Database.Word.FIELD_ID)));
word.setEn(c.getString(c.getColumnIndex(Database.Word.FIELD_EN)));
word.setZh(c.getString(c.getColumnIndex(Database.Word.FIELD_ZH)));
words.add(word);
}
}
// 2.3. 释放资源
close(c, db);
// 3. 返回结果
return words;
}
----------------------------------
【名词解释】
数据库(database):相当于excel文件,是若干个数据表的载体,内部可以存在若干数据表
数据表(table):相当于excel文件中的某个工作表,用于存储数据
列/字段(column):即一竖排
行(row):即一横排
【相关英文】
design:设计
unique:唯一的
execute:执行
insert:插入
into:到...里面
delete:删除
【SQL语句】
是一系列固定的语法,实现对数据库的所有内容进行管理。
【创建数据表】
语法:create table 表名 (字段设计列表)
字段设计列表语法:字段名 字段数据类型 字段约束
各字段之间使用英文的逗号进行分隔
示例:create table teachers (name varchar(8) not null unique, tel varchar(16), email varchar(50))
【增加数据】
语法:insert into 表名 (字段列表) values (值列表)
示例:
insert into teachers (name, tel, email) values ('王海涛', '13800138001', 'wanght@tedu.cn')
insert into teachers (email, name, tel) values ('chengheng@tedu.cn', '成恒', '13800138006')
insert into teachers (name) values ('张广')
【删除数据】
语法:delete from 表名 [where子句]
where子句的语法:where 字段 条件运算符 值 [关系运算符 字段 条件运算符 值]
条件运算符:= <> >= <=
关系运算符:and or not
示例:
delete from teachers // 删除teacher表中的所有数据
delete from teachers where name='王海涛' // 删除name字段的值为'王海涛'的数据
delete from teachers where tel='010-66778899' // 删除tel字段的值为'010-66778899'的数据
delete from teacher where name='成恒' and tel='10086' // 删除name字符的值为'成恒',并且tel字段的值为'10086'的数据,以上2个条件必须同时满足
delete from teachers where name='成恒' or tel='13800138007' // 删除name字符的值为'成恒',或者tel字段的值为'13800138007'的数据,以上2个条件满足其中任何1条均可
【修改数据】
语法:update 表名 set 字段赋值列表 [where子句]
字段赋值列表:字段名=字段值
示例:
update teachers set tel='010-66778899' // 设置每一条数据的tel字段的值为'010-66778899'
update teachers set email='zhangguang@tedu.cn' where name='张广' // 设置name字段的值为'张广'的数据的email字段值为'zhangguang@tedu.cn'
增(加) 删(除) (修)改 查(询)
二。具体用法
1.使用SQLiteOpenHelper创建数据库的类
public class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context) {
super(context, "tedu.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("tedu", "DBOpenHelper.onCreate()");
// 当创建数据库时,创建出数据表
String sql = "CREATE TABLE " + Database.Word.TABLE_NAME + " ("
+ Database.Word.FIELD_ID + " integer primary key autoincrement, "
+ Database.Word.FIELD_EN + " varchar(16) not null unique, "
+ Database.Word.FIELD_ZH + " varchar(32)"
+ ")";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 当升级版本时
}
}
2.在获得数据库对象
public class WordDao implements IDao {
private Context context;
public WordDao(Context context) {
this.context = context;
}
@Override
public long insert(Word word) {
// 获取DBOpenHelper对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
// 通过DBOpenHelper对象获取SQLiteDatabase对象
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 准备需要增加的数据
ContentValues values = new ContentValues();
values.put(Database.Word.FIELD_EN, word.getEn());
values.put(Database.Word.FIELD_ZH, word.getZh());
// 执行增加,并获取操作结果
long id = db.insert(Database.Word.TABLE_NAME, Database.Word.FIELD_ID, values);
// 关闭连接
close(null, db);
// 返回
return id;
}
@Override
public int delete(long id) {
// 1. 获取SQLiteDatabase对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 2.1. 准备必要数据
// (暂无)
// 2.2. 执行,并获取结果
int affectedRows = db.delete(Database.Word.TABLE_NAME, Database.Word.FIELD_ID + "=?", new String[] { id + "" });
// 2.3. 释放资源
close(null, db);
// 3. 返回结果
return affectedRows;
}
@Override
public int update(Word word) {
// 1. 获取SQLiteDatabase对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 2.1. 准备必要数据
ContentValues values = new ContentValues();
values.put(Database.Word.FIELD_ZH, word.getZh());
String whereClause = Database.Word.FIELD_ID + "=?";
String[] whereArgs = { word.getId() + "" };
// 2.2. 执行,并获取结果
int affectedRows = db.update(Database.Word.TABLE_NAME, values, whereClause, whereArgs);
// 2.3. 释放资源
close(null, db);
// 3. 返回结果
return affectedRows;
}
@Override
public List<Word> query(String[] columns, String whereClause, String[] whereArgs) {
// 1. 获取SQLiteDatabase对象
DBOpenHelper dbOpenHelper = new DBOpenHelper(context);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 2.1. 准备必要数据
List<Word> words = new ArrayList<Word>();
// 2.2. 执行,并获取结果
String orderBy = Database.Word.FIELD_ID + " desc";
Cursor c = db.query(Database.Word.TABLE_NAME, columns, whereClause, whereArgs, null, null, orderBy);
if(c.moveToFirst()) {
for(; !c.isAfterLast(); c.moveToNext()) {
Word word = new Word();
word.setId(c.getLong(c.getColumnIndex(Database.Word.FIELD_ID)));
word.setEn(c.getString(c.getColumnIndex(Database.Word.FIELD_EN)));
word.setZh(c.getString(c.getColumnIndex(Database.Word.FIELD_ZH)));
words.add(word);
}
}
// 2.3. 释放资源
close(c, db);
// 3. 返回结果
return words;
}
相关文章推荐
- oracle创建用户
- mysql出现command not found
- 利用Redis撤销JSON Web Token产生的令牌
- mysql临时禁用触发器
- oralce record is locked by another user
- MySQL 关闭FOREIGN_KEY_CHECKS检查
- MySQL 关闭FOREIGN_KEY_CHECKS检查
- MySQL 关闭FOREIGN_KEY_CHECKS检查
- NoSQL之Morphia操作MongoDB
- 存储挂掉 重建oracle rac
- 分布式开源数据库_HBase入门介绍
- Oracle 内置函数
- mysql服务器的常规操作
- 数据库查询4
- Oracle11g/10g下载地址--多平台下的32位和64位
- MySQL5.6安装完没有在服务中出现解决方案
- memcache笔记
- 关于对MS SQLServer 实例的理解
- 关于Oracle asm 对4k sector size的支持情况
- DedeCMS 提示信息> Duplicate entry '7' for key 'PRIMARY'