MySQL的基础

数据库—基础—整理

一、概念:数据库就是存储和管理数据的仓库,
通常情况下,一个网站的中的所有数据会 存放在一个数据库中。
1、数据库有哪些分类?
早期的 层次型数据库,网络型数据库
当下 流行的 关系型数据库,非关系型数据库
2、什么是关系型数据库?
底层以二维表的形式保存数据的库就是关系型数据库

3、什么是非关系型数据库?NOSQL
底层 以键值对存储,且结构不固定
4、什么是表?
一个数据库中可以创建多张表,每张表用于存储一类信息(数据库)。
5、SQL到底是干啥的?
SQL是一门用于操作关系型数据库的通用的语言(使用SQL可以操作所有的关系 型数据库)
使用SQL可以操作数据库、表、表记录
(1)创建数据库、删除数据库、修改数据库、查询数据库
(2)创建表、删除表、修改表、查询表
(3)新增表记录、删除表记录、修改表记录、查询表记录
6、链接数据库 —

二、基础的SQL语句
提示:
(1)SQL语句对大小写不敏感。推荐关键字使用大写,自定义的名称(库 名,表名,列名等)使用小写
(2)并且在自定义名称时,针对多个单词不要使用驼峰命名,而是使用下划线连接。(例如:tab_name,而不是 tabName )
1、查看当前服务器中的所有数据库
Show databases;
2、进入某一数据库
Use + 库名
3、查看某数据库的所有表
Show tables;
4、查看某张表的详细信息
Desc + 表名;
查询表中的所有记录
Select * from + 表名;
5、修改某条表记录;
Update + 表名 set + 列=值 + where字句。
6、增加某条表记录;
Insert into + 表名(列名,列名,列名) value(值,值,值);
8、删除某条表记录
Delete from + 表名 + where判断字句;
9、创建一个表
Drop table if exists + 表名;
Create table + 表名(列名 数据类型
列名 数据类型
列名 数据类型);
先判断,如果有就删除,避免重复,出错。

10、删除某一个表
Drop table if exist + 表名;先判断,如果有就删除,避免删除的表不在出现错误。
11、创建一个库
Create database + 库名 + charset utf8; 先判断,如果有就删除,避免重复,出错。
12、删除某一个库
Drop database if exists + 库名;先判断,如果有就删除,避免删除的库不在出现错误。

三、WHERE子句
WHERE子句查询
1、用法:SELECT 列名称 | * FROM 表名称 WHERE 列 运算符 值
WHERE子句后面跟的是条件,条件可以有多个,多个条件之间用连接词(or | and)进行连接
2、Where子句中使用WHERE
1)、= 等于
2)、< >或者 != 不等于
3)、< 小于
4)、> 大于
5)、>= 大于等于
6)、<+ 小于等于
7)、<= 或者 >= 大于等于,小于等于
8)、BETWEEN between在某个范围之内
9)、LIKE like 像 搜索某种模式 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

四、基础查询的几种方式
1、模糊查询 :可以和通配符(%、)配合使用,其中"%“表示0或多个任意的字符。”"表示 一个任意的字符。
语法: select 列名/* from 表名 where 列名 like 值
2、多行函数查询 :多行函数也叫做聚合(聚集)函数,根据某一列或所有列进行统计。 常见的多行函数有:
多行函数 作用
COUNT( 列名 | * ) 统计结果集中满足条件的数量
MAX( 列名 ) 统计结果集中某一列值中的最大值 MIN( 列名 ) 统计结果集中某一列值中的最小值 SUM( 列名 ) 统计结果集中某一列所有值的和
AVG( 列名 ) 统计结果集中某一列值的平均值
语法:
select count(*) from + 表名:
误区 :
Select 列名,max(列名) from +表名
它产生的结果,时错的。因为 它的到的结果 是 前者的第一个,
后者的 最大值。而不是 最大值,及其对应的 值。

2.1、多行函数需要注意的问题
多行函数和是否分组有关,如果查询结果中的数据没有经过分组,默认整 个查询结果是一个组,多行函数就会默认统计当前这一个组的数据。产生 的结果只有一个。
如果查询结果中的数据经过分组(分的组不止一个),多行函数会根据分 的组进行统计,有多少个组,就会统计出多少个结果。
3、分组查询 group by 语句 :根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT,SUM,AVG,MAX,MIN等函数。
语法:
select * from + 表名 + where 子句 + group by 列;

Select avg(*) from +表名 + group by gender;
他会产生两个结果,因为 他将这一结果集分成了两个组。故而 这个平均值会对两组分别取值,会返回两个值。男的 ,女的。

4、排序查询 order by 将结果集中记录根据指定的列排序后再返回
ASC (一般是默认的)升序, DESC 降序 从高到底。
语法: select 列名 from 表名 order by 列名[ ASC/DESC ].
5、分页查询 limit
Limit(页码-1)* 每页的显示记录数,每页显示记录数。
三、MYSQL的名字段约束
1、主键约束:primary key—添加主键约束
主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点 是唯一且不能为空。
主键的作用: 作为一个唯一标识,唯一的表示一条表记录(作用类似于人的身份 证号,可以唯一的表示一个人一样。)

2、主键自增
如果主键是数值类型,为了方便插入主键(并且保证插入数据时,主键不会因 为重复而报错),可以设置一个主键自增策略。
主键自增策略是指:设置了自增策略的主键,可以在插入记录时,不给id赋值, 只需要设置一个null值,数据库会自动为id分配一个值(AUTO_INCREMENT
Auto_increment变量,默 认从1开始,后面依次+1),这样既可以保证id是唯一的,也省去了设置id的麻烦。
3、非控约束 not null :如果为一个列添加了非空约束,那么这个列的值就不能为空,但可 以重复。

4、唯一约束:unique:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的 (即不能重复),但可以为空。

5、外键约束 foreign key(添加的外键名) references +表名(列名)

show create table + 表名
查看外键约束是否添加成功||

外键约束的作用:要求数据库知道两张表的关系,进而帮我们维护这两张表的关系。
(1)、如果是要表示两张表的数据之间存在对应关系,只需要在其中的一张表中 添加一个列,保存另外一张表的主键,就可以保存两张表数据之间的关系。 但是添加的这个列(dept_id)对于数据库来说就是一个普通列,数据不会知道 两张表存在任何关系,因此数据库也不会帮我们维护这层关系。
(2)、如果将dept_id列设置为外键,等同于通知数据库,部门表和员工表之间存 在对应关系,dept_id列中的数据要参考部门的主键,数据库一旦知道部门和员工表 之间存在关系,就会帮我们维护这层关系型。
(3)删除外键的方法
a、首先通过“show create table + 表名” 查询含有外键表的建表语句
b、找到建表是,数据库为外键约束指定的名字,删除这个名字的就可以删除外键关系了
c、Alter table + 表名 drop foreign key + 外键约束的名字

五、表的关系
1、一对多、多对一。

2、一对一

3、多对多

六、多表查询
基于多张数据表的关系,进行详细查询。
1、连接查询()
Select * from 表1,表2;
由于着这样查询会出现大量错误数据,一般不用。
我们大多数使用的是笛卡尔查询。
笛卡尔积查询:所谓笛卡尔积查询就是指,查询两张表,其中一张表有m条记录,另一张表有n条记录,查询的结果是m*n条。
虽然笛卡尔积查询中包含大量错误数据,但我们可以通过where子句将错误数据剔除,保留下来的就是正确数据。
select * from 表1,表2
where 表1主键=表2主键;
2、内连接查询
Select * from 表1名 inner join 表2名
on 表1主键=表2主键

3、左外连接查询: 可以将左边表中的所有记录都查询出来,右边表只显示和左边相对应的数据,如果左边表中的某些记录在右边没有对应的数据,右边显示为null即可。(用于查询某一表单的所有数据,对应的 右连接查询)
select * from 表1 left join表2 on 表1主键=表2主键

4、右外连接查询:可以将右边表单中的所有记录都查询出来,边表只显示和左边相对应的数据,如果左边表中的某些记录在右边没有对应的数据,右边显示为null即可
select * from 表1 right join表2 on on 表1主键=表2主键

基于上面的方法,可以使用union 将左外连接查询的结果和右外连接查询的结果合并在一起,并且去除重复的记录。
select * from 表1 left join表2 on 表1主键=表2主键
union
select * from 表1 right join表2 on on 表1主键=表2主键

注意:无论在什么时候在对数据库更改,或者执行SQL语句时,一定要注意SQL语句中的删除 、更改操作。有条件时
一定要对数据库进行备份。

级联删除,级联更新:
其他函数;
日期函数;

下一节准备::::::基础数据库面试题详细分析。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值