MySql最最最最基础的通俗易懂的知识,数据库简介及常见的数据库类型,简单分类,内、外、全连接,多表联查(三表联查)等最简单例子语句,耐心看完学习~

目录

一、Mysql简介:

*简单来说呢就是存储数据库的一个仓库,可以存储图片,视频,文字... 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

 二、常见的数据库类型:

 三、mysql安装和卸载

常见指令:

四、MySQL的使用

五、SQL语句分类

六、常用字段

七、常见类型

八、 简单的数据库语句

8.1创建数据库student:(创建一个表名为'student'的数据库)

8.2使用数据库:

8.3创建表:

8.4修改编码:

8.5新增数据;单条添加:

8.6新增数据;多条添加:

8.7修改数据:

8.8查询—全查:

8.9条件查询:

8.10模糊查询:

8.11排序—升序:

8.12排序—降序:

8.13分组查询:

九、多表联查

9.1内连接 

9.2外连接

         9.3全连接   full join = left join + union + right join  

9.4三表联查

9.5子查询:一个表的查询的结果作为另一个表的条件


一、Mysql简介:

MySQL是一种开放源代码关系型数据库管理系统
1.MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。
2.MySQL使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
3.MySQL是开放源代码的,任何人都可以下载并根据个性化的需要对其进行修改。
4.MySQL因为其速度、可靠性和适应性而备受关注,MySQL是管理内容最好的选择。

*简单来说呢就是存储数据库的一个仓库,可以存储图片,视频,文字... 数据库(Database)是按照数据结构组织、存储和管理数据的仓库

 二、常见的数据库类型:

    大型:oracle,db2
    中型:mysql,sqlserver...
    小型:sqlite

 三、mysql安装和卸载

MySQL官网下载地址:MySQL :: MySQL Downloads

MySQL安装教程MySQL的安装与配置——详细教程 - Winton-H - 博客园

常见指令:

①安装服务:mysqld --install
②初始化: mysqld --initialize --console
③开启服务:net start mysql
④关闭服务:net stop mysql
⑤登录mysql:mysql -u root -p
   Enter PassWord:(密码)
⑥修改密码:alter user 'root'@'localhost' identified by 'root';(by 接着的是密码)
⑦标记删除mysql服务:sc delete mysql
 删除对应的文件夹
 删除注册表(mysql)

四、MySQL的使用

1:黑窗口cmd
2:使用工具 navicat(下载地址:Navicat | 支持 MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL 的数据库管理)等等...,工具很多自行选择自己喜欢用的,顺手就行,怎么方便怎么来啦~

五、SQL语句分类

数据定义语言DDL         create(创建),drop(删除),alter(修改),truncate(清空表,截断表)
数据查询语言DQL         select(查询)
数据操纵语言DML         insert(插入),delete(删除),update(修改)
数据控制功能DCL         grant (授权), revoke(回收)

六、常用字段

主键primary key  
自增auto_increment
null
默认default
唯一unique
外键foreign

 七、常见类型

    int   
    float
    double
    char      固定长度     
    varchar   长度变              
    text
    date
    time
    datetime

八、 简单的数据库语句

8.1创建数据库student:(创建一个表名为'student'的数据库)

create DATABASE student

8.2使用数据库:

 use student

8.3创建表:

create table student(
id int PRIMARY key auto_increment,
sname VARCHAR(20),
sex VARCHAR(2),
age int,
score FLOAT(4,2)
)

8.4修改编码:

 alter database student CHARSET=utf8

 8.5新增数据;单条添加:

INSERT into student(id,sname,sex,age,score) VALUES(1,"大哥1","男",24,99.5)

8.6新增数据;多条添加:

INSERT into student VALUES(2,"大哥2","男",25,90.5),(3,"大哥3","女",22,89),(4,"大哥4","女",22,99)

 8.7修改数据:

修改数据格式例如:update 表名 set 字段=修改的数据  where 字段=值
                         UPDATE student set sname='大哥大'    where      id=

 8.8查询—全查:

select * from +表名
select * from student

8.9条件查询:

select * from student where id=1 or id =2                          (id为1或2)
select * from student where id in(1,2,3,4)                          (id为1,2,3,4)    
select * from student where id BETWEEN 1 AND 4          (id在1和4之间‘包括1和4’)

8.10模糊查询:

SELECT * from student where sname like '大%'             like'大%'     :将搜索以‘大‘开头的所有字符串(如 大哥)
SELECT * from student where sname like '%哥'             like'%哥'     :将搜索以‘哥‘ 结尾的所有字符串(如 大哥)
SELECT * from student where sname like '%哥%'          like'%哥%'  :将搜索包含'哥' 的所有字符串(如 大哥大)

8.11排序—升序:

select * from student ORDER BY score                升序:order by

8.12排序—降序:

select * from student ORDER BY score  desc          降序:order by desc

8.13分组查询:

select count(*) from student GROUP BY sex HAVING sum(score)>=85           GROUP BY:以其中一个字段的值来分组

注意:

1、HAVING必须在GROUP BY面,

2、使用了HAVING必须使用GROUP BY,但是使用GROUP BY不一定使用HAVING!

3、GROUP BY必须得配合聚合函数来用,分组之后

常用聚合函数:

  • count()  AS 计数
  • sum()    AS 求和
  • avg()     AS 平均数
  • max()    AS 最大值
  • min()     AS 最小值

4、如果有where限制条件语句

where在前GROUP BY,注意GROUP BY紧跟在where最后一个限制条件后面,不能被夹在where限制条件之间

where在前GROUP BY的原因:要先用where过滤掉不进行分组的数据,然后在对剩下满足条件的数据进行分组

完整例子如下:

关键字group by 、 Having的 用法 - 双间 - 博客园

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name; 

九、多表联查

    内连接   inner join..on
    外连接   left join..on ,right join..on
    全连接   full join (不适用mysql,适用oracle)   = left join + union + right join
 

9.1内连接 

 

*给表取名字时as可以写!也可以省略

select * from 表1 as 表1名称 inner join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段

举例如下:

select * from student as sss inner join class as ccc on sss.id = ccc.id

select * from student sss inner join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同) 

9.2外连接

1、左连接:

select * from 表1 as 表1名称 left join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段

select * from student as sss left join class as ccc on sss.id = ccc.id (左边为主表,右边有则填充,没有用null)           

select * from student sss left join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同) 

 

2、右连接:

select * from 表1 as 表1名称 right join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段

select * from student as sss right join class as ccc on sss.id = ccc.id(右边为主表,左边有则填充,没有用null)

select * from student sss right join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同) 

 

9.3全连接   full join = left join + union + right join  

1、select * from 表1 as 表1名称 full join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段

2、select * from 表1 as 表1名称 left join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段 UNION select * from 表1 as 表1名称 right join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段

select * from student as sss full join class as ccc on sss.id = ccc.id 

select * from student sss full join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同) 

select * from student as sss left join class as ccc on sss.id = ccc.id UNION select * from student as sss right join class as ccc on sss.id = ccc.id

select * from student sss left join class ccc on sss.id = ccc.id UNION select * from student sss right join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同) 

 

9.4三表联查

select * from 表1 as 表1名称 inner join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段 inner join 表3 as 表3名称 on 表1名称.字段 = 表3名称.字段

举例如下:

select * from student as sss inner join class as ccc on sss.id = ccc.id inner join school as sc on sss.id = sc.id

select * from student sss inner join class ccc on sss.id = ccc.id inner join school sc on sss.id = sc.id(as可以省略!!!!和上一行内容相同) 

9.5子查询:一个表的查询的结果作为另一个表的条件

举例如下:

SELECT city from school where school ='北京'
SELECT classroom from class where city=(SELECT city from school where school ='北京')

@希望能帮到大家!~有什么疑问可以评论或私信我,喜欢就多多支持我8.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值