MySQL简介及SQL入门

一、MySQL概述

MySQL是一个关系型数据库管理系统,内部管理着关系型数据库。关系型数据库是由多张表组成的数据库。
关系型数据库具有以下优点:

  • 使用表结构,格式一致,易于维护
  • 使用通用的SQL进行操作,学习成本低,通用性强,也可用于复杂的查询
  • 数据存储在磁盘中,安全
    在这里插入图片描述

MySQL是一个开源的关系型数据库管理软件,也有用于商业的付费版本。MySQL创建数据库服务器,包含数据库管理系统,数据库。数据库管理系统管理数据库,数据库中又存在着数据表,表中存储着数据。

二、SQL

Structured Query Language,结构化查询语言,是操作关系型数据库的标准语言,但是对于不同的数据库操作可能存在一些差异。

2.1 通用语法

1、SQL语句可以单行可以多行,以分号结尾。没有以分号结尾的多行实际会被看做一行语句。
2、SQL语句不区分大小写,关键词建议大写
3、注释

  • 单行注释
    – 注释内容,或#注释内容(MySQL特有)
    需注意的是–添加单行注释的时候后面必须有一个空格,#则没这要求
  • 多行注释
    /注释/

2.2 SQL分类

  • DDL(Data Definition Language):数据定义语言,用于定义大户局库对象,可理解为操作数据库和数据表。
  • DML(Data Manipulation Language):数据操作语言,对数据表中的数据进行增删改。
  • DQL(Data Query Language):数据查询语言,查询数据表中数据。
  • DCL(Data Control Language):数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。

2.3 数据类型

MySQL支持多种数据类型,可以分为三类:
1、数值型

tinyint:小整型,占一个字节
int:大整型,占四个字节
double:浮点类型(总长度,小数点后保留的位数)

2、日期

date:日期值,只包含年月日
datetime:混合日期和事件,包含日月日时分秒

3、字符串

char:定长字符段,长度固定。优点是存储性能高,缺点是浪费空间,可能固定长度未用完。
varchar:边长字符串,根据字符数来定。优点是节约空间,当小于设定值时,根据实际的字长确定,缺点是性能低。

2.4 DDL语句

2.4.1 DDL操作数据库

1、 查询
查询所有的数据库

SHOW DATABASES;

2、创建数据库

CREATE DATABASE 数据库名称;

如果所创建的数据库已经存在,则会报错。
可以使用带判断的创建,如果该数据库不存在则创建。

CREATE DATABASE IF NOT EXISTS 数据库名称;

3、删除数据库

DROP DATABASE 数据库名称;

和创建数据库相同的问题,如果数据库不存在,则会报错。
处理方法也相同,在删除之前进行判断。

DROP DATABASE IF EXISTS 数据库名称;

4、使用数据库
使用数据库,使用后才能对数据库进行操作,如增删改查。

USE 数据库名称;

可以使用以下语言查看当前使用的数据库

SELECT DATABASE();

database()是一个内置函数。

2.4.2 DDL操作表

1、查询表
查询当前数据库下所有的表的名称

SHOW TABLES;

2、查询表结构

DESC 表名称;

在这里插入图片描述
表结构会显示表中的字段和数据类型等信息。
3、创建表

CREATE TABLE 表名 (
	字段1 数据类型1,
	字段2 数据类型2,
	字段3 数据类型3
)

在这里插入图片描述

需要注意的是最后一个字段没有逗号,有会报错。
在这里插入图片描述
4、删除表

DROP TABLE 表名;

判断表是否存在再删除表

DROP TABLE IF EXISTS 表名;

5、修改表

  • 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
  • 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
  • 修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
  • 修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
  • 删除列
ALTER TABLE 表名 DROP 列名;

2.5 DML语句

2.5.1 添加数据

1、添加数据

INSERT INTO 表名(列名1,列名2,...) VALUES (值1,2,...

2、给全部列添加数据

INSERT INTO 表名 VALUES(1,2,...);

3、批量添加数据

INSERT INTO 表名(列名1,列名2,...) VALUES(1,2,...),(1,2,...),(1,2,...)...;
INSERT INTO 表名 VALUES(1,2,...),(1,2,...),(1,2,...)...;

2.5.2 修改数据

1、修改表数据

UPDATE 表名 SET 列名1=1,列名2=2,... [WHERE 条件];

如果不加条件的话,会修改表中所有数据。

2.5.3 删除数据

DELETE FROM 表名 [WHERE 条件];

2.6 DQL语句

2.6.1 查询完整语句

SELECT
	字段列表
FROM
	表名列表
WHERE
	条件列表
GROUP BY
	分组字段
HAVING
	分组后条件
ORDER BY
	排序字段
LIMIT
	分页字段

2.6.2 基础查询

查询多个字段

SELECT 字段列表 FROM 表名; --查询多个字段,不同字段用逗号隔开
SELECT * FROM 表名; --查询所有数据

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

起别名

AS: AS 也可以省略

2.6.3 条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;
符号功能
>大于
<小于
>=大于等于
<=小于等于
=等于
<>或!=不等于
BETWEEN…AND…在某个范围之内
IN(…)多个条件符合其中一个
LIKE 占位符模糊查询,_单个字符,%多个字符
IS NULL为Null
IS NOT NULL不为Null
AND或&&
OR或||
NOT或!

2.6.4 排序查询

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2];

排序方式有两种:

  • ASC:升序排序
  • DESC:降序排列

如果有多个排序条件,只有前一个条件一样时,才会根据后面的进行排序。

2.6.5 聚合函数

聚合函数将一列数据作为一个整体进行纵向的计算。

函数名功能
count(列名)统计数量,为null的不统计
max(列名)一列中最大值
min(列名)一列中最小值
sum(列名)求和
avg(列名)平均值
SELECT 聚合函数名(列名) FROM;

注意:NULL值不参与所有聚合函数的运算

2.6.6 分组查询

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

where 和 having 区别:

  • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
  • 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。

2.6.7 分页查询

SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;

从上面的练习推导出起始索引计算公式:

起始索引 = (当前页码 - 1) * 每页显示的条数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值