Android 数据库
目录
数据库使用场景
有大量结构相似的数据需要保存的时候
【短信,联系人,聊天记录】
数据库分类
网状型数据库
层次型数据量
关系型数据库
特点:数据可以使用一个二维表来表示
- 需求分析 E-R图
常见关系型数据库产品:
- sql server 微软 中小型数据库产品
- oracle 甲骨文 大型数据库产品 银行 通信公司
- db2 IBM 大型数据库产品
- mysql
- SQLite android
MySQL的安装
该部分内容不是重点,自行百度安装即可。
如何访问MySQL Server
SQL语言
- Structured Query Language 结构化查询语言(每个单独的语句都会返回一个结果)
- 非过程性语言(例如:编程语言)
- SQL是用来存取关系型数据库语言,具有查询,操纵,定义和控制关系型数据库的四个方面功能
分类
- DDL (数据定义语言)数据定义语言 - Data Definition Language用来定义数据库的对象,如数据表、视图、索引等
- DML (数据操纵语言)数据处理语言 - Data Manipulation Language在数据库表中更新,增加和删除记录如 update, insert, delete
- DCL (数据控制语言)数据控制语言 – Data Control Language指用于设置用户权限和控制事务语句如grant,revoke,if…else,while,begin transaction
- DQL (数据查询语言)数据查询语言 – Data Query Language select
使用SQL操作数据库
启动数据库
mysql.server start
连接数据库
mysql -u root -p 密码
创建数据库
create database 数据库名称;
查看所有数据库
show databases;
安装好MySQL后会默认创建4个数据库
数据库一: information_schema
保存了跟mysql相关的元数据 (meta data) 表名字 字段名字
数据库二: mysql
保存了mysql 的用户信息 权限相关的信息
数据库三:performance_schema
保存了mysql再运行的时候产生的一些日志
数据库四:test
注意:前三个数据库 不要手动修改或者删除
删除数据库
drop database 删除数据库的名称;
切换数据库
use 切换数据库的名称;
查看当前使用哪一个数据库
select database();
MySQL常用的数据类型
- 字符串型
VARCHAR,CHAR
例如:varchar(20)
varchar和char区别:varchar如果输入的字段内容长度没有达到上限个数只会占用字段的长度所占用的长度。char(20)申明多少长度就会占用多少长度,不管当前字段占用多长。
- 大数据型
BLOB,TEXT
BLOB:非文本类型大数据
TEXT:文本类型大数据
- 数值型
TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE
TINYINT 等同byte
SMALLINT 等同 short
BIGINT 等同long
- 逻辑型
BIT
BIT 等同 boolean
- 日期型
DATE,TIME,DATETIME,TIMESTAMP
DATE:日期
TIME:时间
DATETIME:日期和时间
TIMESTAMP:时间戳(插入数据的时间)
使用SQL操作数据库表
- 创建表
create table 表名称{
字段 类型,
字段 类型
};
2. 参看表结构
show tables; 查看单前数据库所有的表
desc 表名称;
3. 删除表
drop table 表名称;
4. 参看当前数据库所有的表
show tables;
操作数据库表记录
- 插入记录
insert into 表名 values(要添加的值);
如果添加的字段数据类型是int类型,直接写值,
如果添加的字段数据类型是varchar类型和日期类型,要使用单引号把值包起来
- 修改记录
update 表名 set 字段名1=值1,字段名2=值2 where 条件;
- 删除记录
delete from 表名 where 条件;
delete from 表名 (删除所有表记录)
- 查询记录
select 字段名(*)as 别名 from 表名 where 条件;
- 去除表中重复的记录
select distinct * from 表名;
只是把查询到相同的去掉,并不是删掉表中的重复数据
使用案例:
MySQL的约束
-
非空约束 not null
- 表示数据不能为空
-
唯一性约束 unique
- 表中的记录不能重复
-
主键约束
- 表示非空,唯一性
- 自动增长 auto_increment
如图所示:
Where条件以及排序
- where 使用
1.运算符 <,>,>=,<=
2.in 在范围内 具体的某个值
3.and 条件同时满足
4.like 模糊查询
操作的表结构和数据:
>,<,>=,<= 以及in的使用
and 和 like的使用
百分号:任何字符
对查询的结果排序
1.order by 字段名 asc 升序
2.order by 字段名 desc 降序
聚合函数的使用
- count()函数;
例子:查看android > 70 的 有多少个
- sum()函数;
例子:计算android的总和
- avg()函数;
例子:平均数
- max()函数;
例子:最大值
- min()函数
例子:缺省。
分组查询【注意关键字】
使用的数据表:
- 分组求和
select sum(price),name from myordersgroup by
name;
相同的名字作为一组!
select sum(price),name from myorders group by name having
sum(price)>8000;
分组后的价格大于8000的!
limit关键字
可以控制查询结果返回的条目数量,实现分页查询!
- select * from myorders limit 2; //展示2条数据
- select * from myorders limit 3,3; //展示从第3+1条数据,显示3条
如下图:
mysql 图形界面工具
Mac版本 》》点击跳转