一、数据库介绍和概述
(一)数据库(DataBase,DB)
指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。
(二)数据库管理系统(DataBase Management System,DBMS)
指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
(三)数据库的特点
a.可以实现数据的共享,用户可以同时存取数据库中的数据。
b.减少大量重复的数据,减少数据的冗余,维护数据的一致性。
c.数据的独立性,使数据库中逻辑结构和应用程序相互独立。
d.数据实现集中控制。
e.数据的一致性(保证多个用户同一时间对数据的增删查改,保证数据的正确性)和可维护性,确保数据的安全性(如:数据的丢失,越权使用)和可靠性。
二、关系数据库和非关系数据介绍
MySQL:免费的数据库系统。被广泛用于中小型应用系统。体积小、速度快、总体拥有成本低,开放源代码。2008
年被
SUN
收购,
2009
年
SUN
被
Oracle
收购。
Oracle:目前比较成功的关系型数据库管理系统。运行稳定、功能齐全、性能超群、技术领先。主要应用在大型的企业数据库领域。
SQL Server:
Microsoft
的产品。软件界面友好、易学易用,在操作性和交互性方面独树一帜。
Redis
是一个开源的、使用 C
语言编写的
NoSQL
数据库。
Redis(非关系型数据库)
:基于内存运行并支持持久化,采用
key-value
(键值对)的存储形式,是目前分布式架构中不可或缺的一环。
三、SQL 的概念
SQL(
Structured Query Language
)
:结构化查询语言。
(一) SQL作用:
a.是一种所有关系型数据库的查询规范,不同的数据库都支持;
b.通用的数据库操作语言,可以用在不同的数据库中;
c.不同的数据库
SQL
语句有一些区别
(二) SQL分类:
DDL(
Data Definition Language
):数据定义语言,用来定义数据库对象:库、表、列等
create(创建)
, drop(删除),
alter(修改)
DML(
Data Manipulation Language
):数据操作语言,用来操作数据库表中的记录(数据)
insert(增加)
, update(修改),
delete(删除)
DQL(
Data Query Language
):数据查询语言,用来查询记录(数据)
select
DCL(
Data Control Language
):数据控制语言,用来定义访问权限和安全级别
grant
,
if
四、dos连接数据库的命令
mysql -u 用户名 -p 密码
mysql -u 用户名 -P 端口号 -p 密码
五、数据类型
常用的数据类型
数据类型 | 含义 |
int | 整型 |
varchar | 字符串 |
double | 浮点型 |
datetime | 日期 |
六、数据库的使用
(一)创建数据库
create database 数据库名;
-- 如果已存在,则不创建;如果存在,则创建
create database if not exists 数据库名;
-- 创建数据库时指定字符集
create database 数据库名 character set 字符集;
(二)查看数据库
-- 查看所有数据库
show databases;
-- 查看指定的数据库
show create database 数据库名;
(三)修改数据库
alter database 数据库名 default character set 字符集;
(四)删除数据库
drop database 数据库名;
-- 删除指定数据库,如果存在,则删除;如果不存在,则不操作
drop database if exists 数据库名;
七、数据表的操作
(一)三大范式
1第一大范式:保证每列的原子性
2.第二大范式:一张表只能描述一件事
3.第三大范式:决定某个字段值的必须是主键
(二)创建表
create table 表名(
字段名1 数据类型1,
字段名1 数据类型1,
字段名1 数据类型1,
.................
);
(二)向表中插入数据
insert into 表名(字段名) values(数据值);
(三)查看表中所有的数据
select *|字段名 from 表名;
(四)修改表中的数据
update 表名 set 字段名 = 字段值 where 条件表达式;
(五)修改表
-- 修改表结构,实现修改字段
alter table 表名 modify column 字段名 数据类型;
-- 修改表结构,实现添加字段
alter table 表名 add column 字段名 数据类型 位置(after在哪个之后);
-- 修改表结构,实现删除字段
alter table 表名 drop column 字段名;
(六)删除表
drop table 表名;
(七)查看表
show create table 表名;
八、蠕虫复制jiu
-- 将已存在的一张的表重新创建一次(只有字段)
create table 表名2 like 表名1;
-- 将已存在的表中数据复制到新表
insert into 表名2 select * from 表名1;
九、去重
-- distinct
select distinct 字段名 from 表名;
十、别名
-- as
select 字段名1 as 别名1, 字段名2 别名2 from 表名 别名;
十一、常用聚合函数
聚合函数 | |
count | 计数 |
max | 求最大值 |
min | 求最小值 |
sum | 求和 |
avg | 求平均值 |
-- 查询当前表有多少学生
select count(*) from student;
select count(1) from student;
-- 查询多少学生的id不为空
select count(id) from student;
-- 查询速度
count(*) > count(1) > count(字段名)
-- 查询学生表中年龄最大的学生
select max(age) from student;
-- 查询学生表中的年龄总和
select sum(age) from student;