1、数据库
数据库(Database DB)是按照数据结构来组织、存储和管理数据的仓库(存储数据的仓库),它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
2、数据库分类
按照早期的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库(==前两者已经基本消失==)。而当今的互联网中,最常用的数据库模型主要是两种即 关系型数据库 和 非关系型数据库。
关系型数据库:关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。在关系数据库中,列是固定的 行可以动态添加。
常用的关系型数据库:
MySQL ----因为mysql免费 而且性能相对可以。Oracle 、SQLserver
非关系型数据库:非关系型数据库也被称为NoSQL数据库,
NoSQL的本意是“Not Only SQL”,指的是非关系型数据库的统称,而不是“No SQL”的意思(没有SQL语句?),因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NoSQL数据库在==特定的场景==下可以发挥出难以想象的高效率和高性能。
关系型数据库是行和列进行存储,非关系型数据库是以其他的形式进行存储
MySQL Oracle SQLserver Redis HBase MGDB
关系型数据库: MySQL Oracle SQLServer
非关系型数据库: Redis (作为关系型数据库的缓存服务应用、项目平台的共享数据库使用)
非关系型数据库:非关系型数据库也被称为NoSQL数据库,
NoSQL的本意是“Not Only SQL”,指的是非关系型数据库的统称,而不是“No SQL”的意思(没有SQL语句?),因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NoSQL数据库在==特定的场景==下可以发挥出难以想象的高效率和高性能。
关系型数据库是行和列进行存储,非关系型数据库是以其他的形式进行存储
MySQL Oracle SQLserver Redis HBase MGDB
总结:
1. 关系型数据库: 存储时都是以行和列的形式来存储,而这些行和列组成表,有一组表组合再一起成为数据库。 Mysql Oracle(有钱而且要求数据安全系数非常高 譬如银行 联通 电信 移动) SqlServer---C#
2. 非关系型数据库: Nosql 它不在是以行和列的形式来存储。
Redis:后期重点讲解
Hbase:针对的为大数据 Hadoop
Mongodb: 适合前端人员。
3、MySQL 简述
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改(阿里对mysql源码进行优化-mysql)。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
4、SQL语言
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
(1)、数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
(2)、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
3、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
4、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
(5)、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。
6、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
4、DDL语言
其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。
mysql是一个关系型数据库,库里面包含若干个表,而每一张表都是由行和列组成。
4.1关于数据库操作的命令
-- 创建数据库 create database 数据库名
create database mys1;
-- 切换到指定的数据库
use mys1;
-- 看到当前的数据库
show databases;
-- 删除数据库
drop database mys1;
4.2关于表的操作
-- 创建表
create table student(
id int primary key auto_increment,
name varchar(20),
age int,
address VARCHAR(20)
);
-- 查询表结构
desc student;
-- 显示当前数据库中具有的表
show tables;
-- 删除表
drop table student;
-- 在表中增加一列
alter table student add column sex int;
-- 修改表中列名
alter table student change column sex aaa int;
-- 修改列的数据类型
alter table student modify column aaa varchar(3);
-- 删除某一列
alter table student drop column aaa;
primary key: 表示该列为主键列。 特点该列的值不能为null 也不能重复。一张表中只能有一个primary key;
auto_increment: 表示该列的值可以递增。该列的类型必须为int类型。
5、DML语言
数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
5.1、添加 insert
-- 添加数据 注意:字符串必须用'' 不可以用""
-- 添加所有字段的数据 因为主键设置为递增模式,所以我们再添加数据时可以不为主键定值
insert into student(id,name,age,address) values(null,'小敏',18,'郑州');
-- 若是添加所有列的值,那么可以省略
insert into student values(null,'小明',22,'北京');
-- 添加部分列
insert into student(name,age) values('小红',30);
-- 添加多条记录
insert into student values(null,'张三',20,'杭州'),(null,'李四',18,'上海');
5.2、删除delete
-- 删除记录 delete
-- 根据条件删除 delete from 表名 where 条件
delete from student where id=2;
-- 修改记录 update 表名 set 列名='值', 列名=值 where条件
update student set name='王五',age=30 where name='张三';
--条件
--范围删除
delete from student where age<20;
-- 逻辑符连接多个条件 and or
delete from student where age <20 or name='张三';