数据库

一. 数据库的简介

  1. 数据库系统解决的问题: 持久化存储,优化读写,保证数据的特征
  2. 数据库的分类:
    1)文档型:eg: sqlite, 就是一个文件,通过对文件的复制完成数据库的复制
    2) 服务型: eg:mysql ,postgre, 数据库存储在一个物理文件中,但是需要使用终端以tcp/ip 协议连接,进行数据库的读写操作。
  3. E-R 模型
    E: entry : 实体 , R : relationship 关系
    一个实体转化成数据库中的一个表,关系描述两个实体之间的对应规则: 一对一,一对多,多对多.
  4. 在数据库中定义的一些规范: 称作是范式。
    第一范式: 列不可拆分
    第二范式: 唯一标识
    第三范式: 引用主键
    说明: 后一个范式都是在前一个范式的基础上建立的
  5. MySQL
    是一个关系型数据库管理系统,由瑞典MySQLAB 公司开发

二. MySQL 数据库的基本操作

(一) 数据库的操作

  1. 创建数据库
    create database 数据库名 charset = utf8 (能识别中文,如果不加这个,创建出来的数据库中如果有中文,那么会乱码)

  2. 删除数据库
    drop database 数据库名

  3. 切换数据库
    use 数据库名

  4. 查看当前选择的数据库
    select database()

(二) 数据库中表的操作

1. 对创建好的数据库中的表的操作
1)查看当前数据库中的所有表: show tables
2) 创建表 : create table 表名(列及类型)
3) 修改表: alter table 表名 add / change / drop 列名 类型
4) 删除表: drop table 表名
5) 查看表结构: desc 表名
6) 更改表的名称 : rename 原表名 to 新表名
7) 查看表的创建语句: show create table ‘表名’

2. 表创建的特性: ------数据的完整性
一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中。
在表中为了更加准确的存储数据,保证数据的有效性,可以在创建表的时候为表添加一些强制性的验证,包括数据字段的类型,约束

3. 字段的类型
数字: int , float , decimal
字符串: varchar (可变长字符串)
日期: datetime
布尔: bool
4. 约束
主键: primary key
非空: not null
唯一: unique
默认: default
外键: foreign key
自动增长 : auto_increment

5. 对数据的操作
1) 查询: select * from 表名
2) 增加: 全列插入:insert into 表名 values(…)
缺省插入: insert into 表名(列1…) values(…)(…)
同时插入多条数据: insert into 表名 values(…)(…) // insert into 表名(列1…) values(值1…)(值1…)
3) 修改 : update 表名 set 列1 = 值1 …where 条件
4) 删除 ; delete from 表名 where 条件
5)逻辑删除,本质就是修改操作update
alter table 表名 isdelete bit default 0
update 表名 isdelete 1 where 条件

6. 数据的备份和恢复
备份: mysql -uroot -p 数据库名 > 备份文件.sql
数据恢复: mysql -uroot -p 数据库名 < 备份文件.sql

(三) 查询操作

1. 基本语句
select * from 表名
1) from 后面写的是表名,表示数据来自于这张表
2) select后面写的是表的列名
3) 在select 后面的列名可以用 as 来起别名
4)如果查询多个列,那么中间用逗号隔开
2. 消除重复行
在select 后面使用 distinct 可以消除重复的行
eg select distinct gender from students

3. 条件句
select * from 表名 where 条件
优先级: 小括号,not ,比较运算符,逻辑运算符, and 比or 优先
在这里插入图片描述

4. 分组
1) 按照字段分组 , 表示此字段相同的数据会被放到一个组里面
2)分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中。
3)可以对分组后的数据进行统计
select 列1 , 列2 , 聚合。。。 from 表名 group by 列1,列2, 列3…

分组后的筛选: having
having 和where 的区别:
where 是对from 后面指定的表进行数据筛选,属于对原始数据的筛选
having 是对grop by 的结果进行筛选

5. 聚合

在这里插入图片描述
6. 排序
asc : 是从小到大的升序排列
desc: 是从大到小的降序排列
一般默认是从小到大排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值