数据库
管理数据的软件,可以提供远程服务,也称为数据库服务器。
数据库的特点:数据具有完整性、数据共享性好、数据独立性高、冗余度底
数据库分类
数据库分为关系型数据库和非关系型数据库
关系型数据库:采用关系模型来组织数据的数据库。在关系模型中数据的逻辑结构就是一张二维表。常见的关系型数据库有:Oracle、MySQL、SQL Server、DB2。(关系数据库文件中的各条记录前后顺序可以任意颠倒)
非关系型数据库:不规定基于SQL实现,更多是指NoSQL数据库。非关系型数据库有:redis、memcached、hbase、mongodb、neo4j。
关系型数据库和非关系型数据库区别:
关系型数据库使用SQL语言,提供事务支持、支持复杂操作,但海量读写操作效率低,基本结构基于表和列,结构固定,使用于业务方面的OLTP(联机事务处理)系统。
非关系型数据库一般不基于SQL实现,不提供事务支持,不支持复杂操作,海量读写操作效率高、结构灵活性比较高、用于数据的缓存或基于统计分析 的OLAP(联机分析处理)系统。
SQL分类
SQL是介于关系代数和关系演算之间的语言,充分体现了关系数据库语言的特性和优点。包括:DDL数据定义语言,用来维护存储数据的结构;DML数据操纵语言,用来对数据进行操作;DCL数据控制语言,主要负责权限管理和事务。
MySQL数据库
数据库的操作:
显示数据库:show databases;
创建数据库:create database if not exists test character set utf8mb4;
使用数据库:use 数据库名;
删除数据库:drop database if exists test;
表操作:
查看表结构: desc 表名;
创建表:create table student (id int,name varchar(20),hight decimal(4,1));
注:日期类型:timestamp
删除表:drop table if exists student;
表的增删改查:
插入:insert into student (id,name,hight) values (1,'小马',120.5),(2,'小明',114.3);
insert into student values (1,'小马',120.5);
查询:select * from student; select name,hight from student;
select hight+10 from student;(这样的查询,数据库服务器硬盘的数据没有发生改变,再次查询hight,此时的结果是之前的。因为MySQL是一个客户端——服务器结构的程序)
别名:select hight+10 as 身高 from student;
去重:select distinct math from exam;
排序:select name,math from exam [where...] order by math ASC(升序)/DESC(降序);
分页查询: select * from student [where...] [order by ...] limit n;(从0开始筛选n条结果)
select * from student [where...] [order by ...] limit s,n;(从s开始筛选n条结果)
select * from student [where...] [order by ...] limit n offset s;
修改:update student set hight = hight -2;
删除:delete from student while name='小明';
delete from student;(表还在,数据没了)
条件查询 where:> < ... ,and ,or, between...and...,like,null
select name,math from exam where name like '孙%'; (包括孙悟空、孙权,孙,匹配任意多个字符)
select name,math from exam where name like '孙_'; (包括孙权,匹配严格的一个任意字符)