mysql入门知识整合
学习数据库之前,我一直有以下几个疑问。
为什么写程序要用到数据库?数据库的定义是什么?关系型数据库和非关系型数据库有什么区别?
抱着这样的疑问,我开始了学习数据库入门之旅
查阅了一下资料,总结了一下这些疑问点。1,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
2,J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个"数据库集合。
3,关系型数据库通过外键管理来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据中,也就是键值方式存储,而对象之间的关系通过每个对象的自身属性来决定。非关系型数据库中,我们查询一条数据,结果出来一个数组,关系型数据库中,查询一条数据结果是一个对象。关系型数据库SQLite、Oracle、mysql。非关系数据库MongoDb、redis、HBase
因为现在我目前只使用的是关系型数据库mysql,这里就总结一下mysql的基本知识,用的是navicat数据库连接工具
先从基础的建开始:
DDL 数据库定义语言
查询 : show databases; 查询所有数据库
删除数据库:drop database 数据库名称
创建数据库 create database 数据库名称
修改数据库:alter database 数据库名称 + 修改内容 set 修改后内容
DML 数据库操作语言
Insert into
增加内容: insert into 表名(字段名) values (值)(表名后跟了字段名时,值要与表名后字段名的数据类型对应,不跟字段名时,要添加每一个的值)
Delete
删除整个表内容:delete from 表名(只删除数据,不能删除约束)
Update
修改字段某个的值:update 表名 set 字段名 = 新值 where 字段名 = 旧值
DQL 数据库查询语言
条件查询 where select * from 表名 where 条件
分页查询 limit select * from 表名 limit a,b
模糊查询 like select * from 表名 where 字段 like 条件
排序查询 order by select * from 表名 order by 字段 desc (默认 降序) 字段 Asc 升序
分组查询 group by select * from 表名 group by 字段
范围查询:select * from 表名 where 字段 between 值1 and 值2
聚合查询 sum(求和) avg 平均 count 统计个数
子查询: 一条数据查询的结果用来做另一个数据查询的条件
其实数据库的基础知识,需要多加练习才可以
另外补充一些主键和外键的作用:主键 指定某个字段的值不能重复 ,外键 保证数据的完整性和一致性
还有一些数据库的高级应用,等以后学完在总结