MySql数据库

一、概念

1.存储数据的仓库。

比如:用户信息、商品信息、订单信息、购物信息。

2.将数据按照指定的结构,存储在计算机的硬盘上。

硬盘:永久存储。

二、数据模型

1.网状模型

2.层次模型

3.关系模型:将数据以二维表格的形式来存储。

三、数据库操作

1.登录mysql DBMS

 mysql [-h主机:端口号] -u用户名 -p密码

 

2.查看管理的所有数据库

show databases; 

3.创建新数据库

create database 数据库名;

4.删除数据库

drop database 数据库名;

5.选择数据库(选择或切换管理的数据库)

use  数据库名; 

四、 表操作

1.数据类型

(1)数字型

int  整数型

double  双精度浮点数

decimal  浮点型,可以指定精度

(2)字符串型

CHAR(n)固定长度字符串

VARCHAR(n)可别长度字符串

TEXT  大文本

BLOB 二进制文件内容

注意:字符串类型的数据,必须加单引号

 (3)日期时间类型

DATE 存储日期:年月日

TIME  存储时间: 时分秒

YEAR 存储年份

DATETIME 存储日期时间:年月日时分秒

TIMESTAMP 存储时间戳

2.表的创建

create table 表名(

列名1  数据类型  [列级约束],

...

列名n  数据类型  [列级约束],

) ;

3.查询表

show  tables; 

4.查看表结构

desc  表名; 

5. 删除表

drop table 表名;

6.修改表结构

alter  table  表名  修改操作;

 

五、数据操作(CRUD)

1.新增数据

(1)插入一行所有列的数据

insert  into  表名  values (一行所有列的数据); 

(2)插入一行部分列的数据

insert  into  表名  (部分列)  values(一行部分列数据)

注意:

没有插入数据的列,系统自动插入缺省值null 

(2)插入多列数据

insert into 表名  values(...),

                                      (...)  ,

...

                                   (...);

2.查询数据

select  *  from  表名; 

3.删除数据

(1)delete 删除

delete  from  表名  [where  条件];

如果没有条件,表示清空表,删除所有行的数据。

如果有条件,删除满足条件的行。

(2)truncate 删除

truncate  table  表名;

清空表数据。

区别:

truncate 清空表,同时会删除索引。

delete 可以清空表,也可以删除部分记录,不会删除索引。

4.修改数据

update 表名 set 字段名=新的值,....... [where 条件];

如果没有条件,修改所有行。

如果有条件,修改满足条件的行。

六、单表查询

1.from  子句

select  *  from  表名;

select  *  from  表名1,表名2 ...

 2.where 子句

(1)使用比较运算符  = != > >= < <=

(2)多条件使用and 和 or 连接

(3)连续范围:

列名 between .. and ..

列名 not between .. and ..

 

(4)不连续范围:

列名 in(情况1,情况2.....)

列名 not in(情况1,情况2.....)

 

(5)模糊匹配:

like

not like

%表示:匹配0到多个字符

_表示:一个字符

 

(6)null判断:

null值,表示未知的值。

null和任何值都不相等,包括null。

使用:

列名 is null

列名 is not null

3.select 子句

筛选列。

*代表所有列。

也可以只选择部分列。

select * from 表名;

select 所有列名 from 表名

select 部分部分列名 from 表名

distinct作用:将结果集中重复的行合并为一条。

 

4.order  by  子句

对查询结果进行排序。

排序有两种方向:默认升序,asc;降序,desc。

语法:order by 字段名 方向

5.limit 子句

 从结果集中取出一部分数据。

语法:limit 结果集中的起始位置,长度

 

limit主要用于分页查询。

假如pageSie=2每页最多显示两条,共5页。

pageNum=1..5

每一页的起始位置start=(pageNum-1)*pageSize

最后,通过limit start,pageSize取出指定这一页的数据。

6.group  by  分组查询

(1)分组查询查,是查询到的是表中数据的统计信息。

统计:使用聚合函数。

 

count(列名)统计每组的数量。

sum(列名)统计每组该列总和。

avg(列名)统计每组该列的平均值。

max(列名)统计每组该列的最大值。

min(列名)统计每组该列的最小值。

(2)别名

可以给结果集中的列起别名,也可以给表名起别名。

 

表:是物理硬盘中的一个存储空间。永久存储。

结果集:是物理内存中的一个存储空间。临时存储。

(3)筛选满足条件的组

having 条件;

 

where和having区别:

where是分组之前,选择的是表中的行;

having是分组之后,选择满足条件的组。

七、查询执行顺序

1.书写语法顺序

select [distinct] *|列名

from 表名 ...

where 条件

group by 分组字段..

having 条件

order by 排序字段,排序方向

limit 起始位置,长度;

2.查询执行顺序

from

where

group by

select [distinct]

[having]

order by

limit

 八、多表查询

1.笛卡尔积

我们查询两张表。

查询结果是:依次拿a表的每一行和b的所有行进行数据的拼接。

2.多表查询的本质

本质:其实就是单表查询,把笛卡尔积作为我们查询的目标。

查询两张表,和查询笛卡尔积是一样的。

笛卡尔积中的列,是两张表的列的总和。

笛卡尔中的行数,就是两张表的行数相乘。

3.多表查询

(1)内连接查询

从笛卡尔积中,查询满足连接条件的数据行。

 

写法1:

select *  from 表1 , 表2  where 连接条件;

写法2:

select * from 表1 inner join 表2 on 连接条件;

(2)外连接查询

从笛卡尔积中,查询满足连接条件的数据行。

以及,两张表中不满足的行。

 

外连接分为:outer join

左外连接left join:从笛卡尔积中,查询满足连接条件的数据行。以及,左表中不满足条件的行。

右外连接right join:从笛卡尔积中,查询满足连接条件的数据行。以及,右表中不满足条件的行。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值