数据库管理系统【MySQL】基础知识归纳

前言介绍

数据库: 一个有序集合,它存储了结构化数据,并可以通过各种数据模型(如关系模型、面向对象模型等)进行组织和访问,主要负责数据的存储、检索和管理,

数据库系统:由数据库、数据库管理系统、应用程序、硬件平台和操作系统等组成的综合系统;提供了更为全面的功能,包括数据的定义、操纵、控制和通信等;

数据库管理系统:是一种软件,它用于定义、建立、维护和管理大量数据库。

三者之间的联系:数据库是最基本的元素,用于存储和管理数据;数据库系统是一个更广泛的概念,包括了与数据库相关的整个系统;数据库管理系统是用于管理和维护数据库的工具和软件。

1、数据库的分类

        1.1、关系型数据库(二维表的方式存储):Oracle、DB2 、MySQL 、PostgreSQL、SQL Server等

        1.2、非关系数据库:Redis 、MongoDB、HBASE、Graph

2、数据库的类型

类型描述大小
tinyint十分小的数据1个字节
smallint较小的数据2个字节
mediumint中等大小的数据3个字节
int整数4个字节
bigint较大的数据8个字节
float浮点数4个字节
double浮点数8个字节
decimal

精确小数

如 decimal(5,2)表示共5位数,小数占2位

char字符串固定大小0~255
varchar可变字符串0~65535
date日期格式YYYY-MM-DD
time时间格式HH:mm:ss
datetime最常用的时间格式YYYY-MM-DD HH:mm:ss
timestamp时间戳,1970.1.1到现在的毫秒数
year表示年份

3、数据库的约束

        3.1、主键(primary key):能唯一标识表中的每一条记录的属性值

主键约束基本语法:   字段名 数据类型 primary key;

       3. 2、非空(not null)

字段名 数据类型 NOT NULL;

        3.3、唯一(unique)

字段名 数据类型 UNIQUE;

       3. 4、默认值(default)

字段名 数据类型 DEFAULT 默认值;

       3. 5、外键(foreign key):一个表中的一个字段引用另一个字段的主键

-- 在创建数据表时语法如下:
CONSTRAINT 外键名 FOREIGN KEY (从表外键字段) REFERENCES 主表 (主键字段)
-- 将创建数据表创号后语法如下:
ALTER TABLE 从表名 ADD CONSTRAINT 外键名 FOREIGN KEY (从表外键字段) REFERENCES 主表 (主键字段);

-- 删除外键

alter table 从表名 drop foreign key 外键名;

4、SQL语言分类

       4.1、数据定义语言(DDL):用来定义数据库的对象,如数据表、视图、索引等。
操作数据库
创建数据库create database 数据库名称;
删除数据库drop database 数据库名;
查看数据库show databases;
切换数据库use 数据库名;
查看当前使用的数据库select database();
将数据库的字符集修改为gbkalter database 数据库名 character set gbk;
操作表

创建表

 create table 表名(
         字段1 字段类型,
         字段2 字段类型,
         …
         字段n 字段类型
);
查看表结构desc 表名  或 describe 表名
查看表的基本信息show create table 表名
复制表结构create table 新表名 like 旧表名
查看当前数据库中所有表show tables;
修改表名alter table 旧数据表名 rename to 新数据表名;
修改字段名alter table 数据表名 change 旧字段名 新字段名 类型名;
修改字段数据类型alter table 数据表名 modify 字段名 数据类型;
增加字段alter table 数据表名 add 新增字段名 类型名;
删除字段alter table 数据表名 drop 字段名;
删除数据表drop table 表名;
        4.2、数据操纵语言(DML):用来在数据库表中更新,增加和删除记录。
在表中增加数据
向数据表中全部字段添加数据insert into 表名 values(值1,值2,值3);
向数据表中部分字段添加数据insert into 表名(字段, 字段, 字段...)  values(值1,值2,值3);
修改表中数据
修改表中的某一字段全部的记录update  表名 set 字段 = 值;
修改表中符合条件的记录update  表名 set 字段 = 值 where 条件;
删除表中数据
删除表中全部的记录delete from 数据表名;
删除表中符合条件的记录delete from 数据表名 where 条件;
        4.3、事务控制语言(TCL):用来做数据库中的事务管理。
        4.4、数据控制语言(DCL):用来控制数据库的用户权限。
        4.5、数据查询语言(DQL):用来查询数据库中的数据。
                4.5.1、单表查询
查询表中全部数据select * from 表名;
查询指定列名select 字段1,字段2 from 表名;
别名查询select字段1 as 别名,字段2 as 别名 from 表名 as 表别名;
去除重复值select distinct 字段1,字段2 from 表名;
查询结果参与计算select 字段 + 固定值 from 表名 select 字段1+字段2 from 表名;
                 4.5.2、条件查询
条件作用
>大于
<小于
<>不等于
!=不等于
=等于
<=小于等于
>=大于等于
or
and而且
is null内容为空
is not null内容不为空
like模糊查询
in判断某个字段是否存在给定的元组中
between...and...

判断范围

limit限制查询结果数量
                 4.5.3、排序查询 order by

celect 字段名 from 表名 [where 条件] order by 字段名 [asc | desc]

                 4.5.4、分组查询 group by

select 字段1,字段2...from 表名 group by 分组字段 [having字段]

-- where和having的对比
1.having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
2.having语句中可以使用聚合函数,where后面不可以使用聚合函数

                 4.5.5、聚合函数 
函数作用
sum()计算指定列的数值和,如果指定列类型不是数值类型则计算结果为0
avg()计算指定列的平均值,如果指定列类型不是数值类型则计算结果为0
max()计算指定列的最大值,如果指定列是字符串类型则使用字符串排序运算
min()计算指定列的最小值,如果指定列是字符串类型则使用字符串排序运算
count()

统计表中数据的行数或者统计指定列其值不为NULL的数据个数

                  4.5.6、多表内外连接查询 

隐式内连接:
select 字段名 from  表1,表2 where 条件

显式内连接:
select * from 表1 inner  join 表2 on 条件

左外连接:左表数据全部显示,右表按照连接条件显示有关联的数据
select * from 左表 left outer join 右表 on 条件

右外连接:
select * from 右表 right outer join 左表 on 条件

MySQL不支持全外连接

自连接:左表右表都是同一张表

                   4.5.7、子查询

语法:select 字段,... from 表名  where 字段  运算符 (子查询)
单行子查询:(子查询的结果返回一行一列,要是用单行运算符)
= > >= < <= != 
多行运算符:(子查询的结果返回多行一列,要是用多行运算符)
in、any、all
子查询用在from后,当做表(通常子查询查回多列)这种子查询必须起别名
多列子查询:
子查询结果是多列的,肯定在from后面当做表来使用
select  查询字段  from(子查询) 表别名 where 条件

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值