数据库01

Posted albieh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库01相关的知识,希望对你有一定的参考价值。

数据库概念

数据库是指长期存储在计算机内、有组织的数据集合。简而言之,数据库就是一个存储数据的地方。表是数据库中存储数据的基本单位,数据按照分类存储到不同的表中,能够非常高效的查询其 中的数据

关系型数据库RDBMS

  • 当前主要使用两种类型的数据库:关系型数据库、非关系型数据库,我们主要学习主流的关系 型数据库
  • 所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概 念和方法来处理数据库中的数据

关系型数据库的主要产品

oracle:在以前的大型项目中使用,银行,电信等项目
mysql:web时代使用最广泛的关系型数据库 ms sql
server:在微软的项目中使用
sqlite:轻量级数据库,主要应用在移动平台

关系型数据库核心元素

数据行(一条记录)
数据列(字段)
数据表(数据行的集合)
数据库(数据表的集合,一个数据库中能够有 n 多个数据表)

SQL

  • 在数据库中进行操作的语言,称为sql,结构化查询语言,当前关系型数据库都支持使用sql语言进 行操作,也就是说可以通过 sql 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
  • SQL 是一门特殊的语言,专门用来操作关系数据库 不区分大小写
  • 重点是查询

MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购, Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品

特点

  • 支持多种操作系统,如Linux、Windows、AIX、FreeBSD、HP-UX、MacOS、 NovellNetware、OpenBSD、OS/2 Wrap、Solaris等
  • 开源 免费 使用范围广 支持多平台
  • 是学习数据库开发的首

数据类型与约束

为了更加准确的存储数据,保证数据的正确有效,需要合理的使用数据类型和约束来限制数据 的存储。

常用数据类型

  • 整数:int,有符号范围(-2147483648 ~2147483647),无符号范围(0 ~ 4294967295)
  • 小数:decimal,如decimal(5,2)表示共存5位数,小数占2位,整数占3位
  • 字符串:varchar,范围(0~65533),如varchar(3)表示最多存3个字符,一个中文或一个字 母都占一个字符
  • 日期时间: datetime,范围(1000-01-01 00:00:00 ~ 9999-12-31 23:59:59),如‘2020-01-01 12:29:59‘

    约束

  • 主键(primary key):物理上存储的顺序 (int类型, 无符号, 自动递增, 唯一的标识一条记录)
  • 非空(not null):此字段不允许填写空值
  • 惟一(unique):此字段的值不允许重复
  • 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准
  • 外键(foreign key):维护两个表之间的关联关系

查询数据

鼠标左键点击某个数据库下面的查询按钮,然后点击新建查询
在打开的查询编辑器中,输入下面的SQL查询语句
select * from students
然后点击运行按钮,既显示查询的结果

Ctrl + /注释
Ctrl + Shift + /取消注释

创建表

create table 表名( 字段名 类型 约束, 字段名 类型 约束 ... )

例:创建学生表,字段要求如下:
姓名(长度为10)

create table students(    name varchar(10) )

例:创建学生表,字段要求如下:
姓名(长度为10), 年龄

create table students(    name varchar(10),    age int unsigned )

例:创建学生表,字段要求如下:
姓名(长度为10), 年龄,身高(保留小数点2位)

create table students(    id int unsigned primary key auto_increment,    name varchar(10),    age int unsigned,    height decimal(5,2) )

删除表

格式一:drop table 表名

格式二:drop table if exists 表名

例:删除学生表
drop table studentsdrop table if exists students

简单查询

select * from 表名
例:查询所有学生数据 select * from students

添加数据

  • 添加一行数据

格式一:所有字段设置值,值的顺序与表中字段的顺序对应
说明:主键列是自动增长,插入时需要占位,通常使用0或者 default 或者 null 来占位,插入 成功后以实际数据为准
insert into 表名 values(...)

例:插入一个学生,设置所有字段的信息
insert into students values(0,‘亚瑟‘,22,177.56)

格式二:部分字段设置值,值的顺序与给出的字段顺序对应
insert into 表名(字段1,...) values(值1,...)

例:插入一个学生,只设置姓名

insert into students(name) values(‘老夫子‘)

  • 添加多行数据

方式一:写多条insert语句,语句之间用英文分号隔开
insert into students(name) values(‘老夫子2‘); insert into students(name) values(‘老夫子3‘); insert into students values(0,‘亚瑟2‘,23,167.56)

方式二:写一条insert语句,设置多条数据,数据之间用英文逗号隔开

格式一:insert into 表名 values(...),(...)...
例:插入多个学生,设置所有字段的信息 insert into students values(0,‘亚瑟3‘,23,167.56),(0,‘亚瑟4‘,23,167.56)

格式二:insert into 表名(列1,...) values(值1,...),(值1,...)...
例:插入多个学生,只设置姓名
insert into students(name) values(‘老夫子5‘),(‘老夫子6‘)

修改

格式:update 表名 set 列1=值1,列2=值2... where 条件
例:修改id为5的学生数据,姓名改为 狄仁杰,年龄改为 20
update students set name=‘狄仁杰‘,age=20 where id=5

删除

格式:delete from 表名 where 条件

例:删除id为6的学生数据
delete from students where id=6

逻辑删除:对于重要的数据,不能轻易执行delete语句进行删除,一旦删除,数据无法恢复,这时可以进行逻辑删除。

1、给表添加字段,代表数据是否删除,一般起名isdelete,0代表未删除,1代表删除,默认值为0
2、当要删除某条数据时,只需要设置这条数据的isdelete字段为1
3、以后在查询数据时,只查询出isdelete为0的数据

例:
1、给学生表添加字段(isdelete),默认值为0,如果表中已经有数据,需要把所有数据的isdelete字段更新为0
update students set isdelete=0
2、删除id为1的学生 update students set isdelete=1 where id=1 3、查询未删除的数据 select * from students where isdelete=0

以上是关于数据库01的主要内容,如果未能解决你的问题,请参考以下文章

重新加载时刷新片段

如何将字符串数据从活动发送到片段?

从 Android Studio 中的片段将数据写入 Firebase

这两个代码片段有啥区别?

用片段替换某些东西

为啥此代码片段返回意外结果?