初识SQL数据库

1.SQL 结构化查询语言
2.操作数据库:
 2.1创建数据库:CREATE DATABASE 数据库名 ;
 2.2删除数据库:DROP DATABASE 数据库名 ;
 2.3修改数据库名:RENAME DATABASE 旧数据库名 TO 新数据库名 ;
2.4使用数据库: 
 USE 数据库名
   在出现Database changed信息后,代表我们进入了该数据库,然后我们可以查看此数据库中的表:
 SHOW TABLES ;
3.操作表:
 3.1创建表:CREATE TABLE 表名 (字段名称 字段类型,字段名称 字段类型...) ;
 常用字段类型:
 整型:int
 字符型:char(size) 固定长度字符串  255
  varchar(size) 可变长度字符串 255
  TEXT
 浮点型:decimal(size,d)/numberic
 日期:date(yyyyMMdd)date(yyyyMMdd HH:mm:ss) year(yyyy)
 
 查看表的字段结构:DESCRIBE 表名;或 DESC 表名;

 3.2删除表:DROP TABLE 表名;

 3.3修改表名:ALTER TABLE 表名 RENAME 新表名 ;

 3.4向表中增加一列字段:ALTER TABLE 表名 ADD 字段名 字段类型;

 3.5修改字段类型:ALTER TABLE 表名 MODIFY 字段名 字段类型 ;

 3.6修改字段名(同时也可以修改类型):ALTER TABLE 表名 CHANGE COLUMN 旧字段名 新字段名 新段类型 ;
 
 3.7删除某字段:ALTER TABLE 表名 DROP COLUMN 字段名(列名) ;

 3.8修改列位置:ALTER TABLE 表名 MODIFY 字段名1 字段1类型 AFTER 字段2 ;
 将字段1 修改到字段2的后面。 

4.操作数据:
 4.1插入数据:
 4.1.1插入所有字段:INSERT INTO 表名 VALUES (字段1的值,字段2的值...);
 4.1.2插入部分字段:INSERT INTO 表名(字段2,字段5...) VALUES(字段2的值,字段5的...);

 

 

4.1创建和打开数据库

  在Android中创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在则创建一个数据库:创建成功则返回一个SQLiteDatebase对象,否则抛出异常FileNotFoundException。

下面我们来创建一个名为Test的数据库,并返回一个SQLiteDatabase对象mSQLiteDatabase。

mSQLiteDatabase=this.openOrCreateDatabase("Test",MODE_PRIVATE,null);

4.2创建表

  通过execSQL方法来执行一条SQL语句。

String CREATE_TABLE="create table 表名(列名,列名,……)";
mSQLiteDatabase.execSQL(CREATE_TABLE);

  创建表的时候总要确定一个主键,这个字段是64位整型,别名_rowid。其特点就是自增长功能。当到达最大值时,会搜索该字段未使用的值(某些记录被删除_rowid会被回收),所以要唯一严格增长的自动主键必须加入关键字autoincrement。

4.3删除表

mSQLiteDatabase("drop table 表名");

4.4修改数据

4.4.1 插入记录

可以使用insert方法来添加数据,但是insert方法要求把数据都打包到ContentValues中,ContentValues其实就是一个Map,Key值是字段名称,Value值是字段的值。通过ContentValues的put方法就可以把数据放到ContentValues对象中,然后插入到表中去。具体实现如下:

复制代码
ContentValues cv=new ContentValues();
cv.put(TABLE_NUM,1);
cv.put(TABLE_DATA,"测试数据库数据");
mSQLiteDatabase.insert(Test,null,cv);

//同样可以使用execSQL方法来执行一条“插入“的SQL语句

String INSERT_DATA="insert into 表名(列名,……) values (值,……)";
mSQLiteDatabase.execSQL(INSERT_DATA);
复制代码

4.4.2 更新记录

复制代码
ContentValues cv=new ContentValues();
cv.put(TABLE_NUM,3);
cv.put(TABLE_DATA,"修改后数据");
mSQLiteDatabase.update(Test,cv,"num"+"="+rowId,null);

//同样可以使用execSQL方法来执行一条“更新”的SQL语句

String UPDATE_DATA="update 表名 set 列名=xxx where xxx;
mSQLiteDatabase.execSQL(UPDATE_DATA);
复制代码

update 表名 set 列名=xxx [where条件]

4.4.3 删除记录

 

//要删除数据可以使用delete方法
mSQLiteDatabase.delete("Test","WHERE _id="+0,null);

//也可以通过execSQL方法执行SQL语句删除数据
mSQLiteDatabase.execSQL("delete from 表名 where 条件");

 

 

4.5查询

SELECT 列名 FROM 表名 WHERE 条件

例如在联系人中保存3个联系人,data表如下:

 查询1

查询data1值为10086的项

 查询2

对查询条件和返回值稍做修改

查询3

LIKE的使用

Like经常和 %或者 _ 搭配使用。

%可与任意0个或者多个字符匹配,_可与任意单个字符匹配。

 查询4

 

 查询5

GLOB的使用

Glob与like非常相似,常与 * 搭配。

 查询6

限定和排序

关键字:order、limit、offset。

Order分为asc(默认升序),desc(降序)。

 查询7

 查询8

限定个数

 查询9

指定偏移

 查询10

 

内连接:通过表中两个字段进行连接,找出两个集合的交集。

  select  xxx from 表名1 inner join 表名2 on 表名1.列名 = 表名2.列名

左外连接:左表的所有项和内连接项。

  select  xxx from 表名1 left outer join 表名2 on 表名1.列名 = 表名2.列名

查询11

 

查询12

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值