学习与理解SQL数据库

本文详细介绍了SQL语言在互联网中的重要性,包括其在数据存储和操作中的角色,以及数据库、数据模型、MySQL数据类型、SQL分类(DDL、DML、DQL、DCL)和操作等。此外,还涵盖了约束、数据完整性与分页查询等内容。
摘要由CSDN通过智能技术生成

前言:

SQL语言在我们当今社会被广泛应用,无处不在。我们消费的每一笔支付记录,收集的每一条用户信息,发出去的每一条消息,都会使用数据库或者与其相关的产品来存储,而操控数据库的语言正是SQL!
对于互联网公司来说,掌握SQL几乎是不可或缺的技能。如果不懂SQL,可能会无法完成很多工作。可以把SQL视为一种工具,利用它我们能够完成工作并创造价值。

数据库介绍

数据库:是存储数据的仓库,有组织的进行存储存储,全称为(Database),简称为DB。

数据库管理系统:是管理数据库的大型软件,全称为(Database Management System),简称为DBMS。

SQL:是操作关系型数据库的编程语言,定义了操作所有关系数据库的统一标准,全称为(Structured Query Language),简称为SQL,是一种结构化查询语言。

关系图如下:

MySQL的数据类型:

关系型数据库:关系型数据库是建立在关系模型的基础上的数据库,关系型数据库是由多张能互相链接的“二维表”组成的数据库。

优点:1.都使用表结构,格式一致,易于维护。

           2.使用通用的SQL语言操作,使用方便,可用于复杂查询。

           3.数据都存储于磁盘中安全。

例1: 表一

订单编号订单项目负责人
001项目A负责人A
002项目B负责人B

例2:表二

负责人客户名称联系电话
负者人A客户A133XXXXXXX
负责人B客户B155XXXXXXX

MySQL数据模型:

SQL的简介:

1.结构化查询语言,一门操作关系型数据库的编程语言。

2.定义所有关系型数据库的统一标准。

3.对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称之为(方言)。

SQL的分类:

SQL分为四类分别为:DDL(Data Definiton Language)数据定义语言,DML(Data Manipulation Language)数据操作语言,DQL(Data Query Langu)数据查询语言,DCL(Date Control Language)数据控制语言。

DDL(数据定义语言):用于操作数据库和表结构。

DML(数据操作语言):用于对表中的数据进行增加、删除、修改。

DQL(数据查询语言):用于对表中的数据进行查询。

DCL(数据控制语言):用于对数据库的访问权限进行控制。

DDL操作数据库:

1. 查询

SHOW DATABASES 查询当前所有的数据库对象

2.创建
-- 创建数据库

CREATE  DATABASE + 数据库名称;

-- 创建数据库(判断,如果不存在则创建)

 CREATE DATABASE IF NOT EXISTS + 数据库名称;

3.删除
-- 删除数据库

DROP DATABASE + 数据库名称;

-- 删除数据库(判断,如果存在则删除)

DROP DATABASE + IF EXISTS数据库名称;

4.使用数据库
-- 查看当前使用的数据库

SELECT DATABASE();

-- 使用数据库

USE 数据库名称;

数据库查询示例: SHOW DATABASES 查询

 创建数据库示例: CREATE DATABASE db1;

删除表示例: DROP DATABASE db1;

查看当前使用的数据库示例: SELECT DATABASE();

使用数据库代码示例:USE + 数据库名称;

DDL 操作表介绍:

1.创建表

-- 创建表

CREATE TABLE 表名(

字段名1,数据类型1,

字段名2,数据类型2,

字段名n,数据类型n

);

//注意最后一行不要加逗号

2.修改表

-- 修改表名

ALTER TABLE + 表名 RENAME TO + 新的表名;

--添加一列

ALTER TABLE + 表名 ADD + 列名 + 数据类型;

-- 修改数据类型

ALTER TABLE + 表名 + MODIFY 列名 新的数据类型;

--修改数据类型和列名

ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

-- 删除表

ALTER TABLE 表名 DROP 列名;

创建表代码示例: 

表一:

S_id

S_name

S_age

nullnullnull

修改表代码示例:

添加一列代码示例:

修改数据类型代码示例:

删除类代码示例:

DML添加数据介绍:

1.给指定的列添加数据:

--给指定的列添加数据
INSERT INTO 表名(列1,列2,......)VALUES(值1,值2,....);

2.给全部列添加数据

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

3.批量添加数据 

-- 表名后面有列名可以准确添加

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

--也可以批量添加,省略列名

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

给指定的列添加数据示例:

给全部列添加数据代码示例:

批量添加数据代码示例:

DML修改数据介绍:

1.修改表中数据

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

注意:修改语句中,如果不加条件所有的值都会被修改。

2.删除表中数据

DELETE FROM 表名 [ WHERE 条件];

注意:没有条件将全部删除。

修改表中数据代码示例:

删除表中数据代码示例:

DQL基础查询介绍:

1.查询多个字段
-- 查询多个字段

SELECT 字段列表 FROM 表名;

-- 查询全部字段 *代表所有

SELECT * FROM 表名;

2.查询时去除重复记录

SELECT DISTINCT 字段列表 FTROM 表名;

3.其别名 

AS 名字; 

注意: as可以省略。

查询多个字段代码示例:

查询全部字段代码示例:

假设表中有俩条记录重复 如图:

查询时去除重复记录代码示例:

起别名代码示例:     可以让信息更佳清晰的展示

DQL条件查询介绍:

SELECT 字段列表 FROM 表名 WHERE 条件列表;

代码含义

BETWEEN....AND.....

在某个范围内都包含
IN(......)多选一
LIKE模糊查询 ”-“单个任意字符 ”%“多个任意字符
IS NULL是NULL
IS NOT NULL不是NILL
AND 或 &&并且
OR 或 ||或者

NOT 或 !

非,不是

DQL排序查询介绍:

1.排序查询

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

排序方式: ASC:升序方式(默认)    DESC:降序排序 

注:如果有多个条件,当前边的条件值一样时,才会根据第二条件进行排序

假设表一学号排序是乱序如图:

 分组查询代码如图:

通过学号字段升序排序:

通过学号字段降序排序:

where和having区别:

执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。

可判断的条件不一样:where不能对聚合函数进行判断,having可以。

执行顺序 : where > 聚合函数 >having

DQL分组查询:将一列数据作为一个整体,进行纵向运算

聚合函数的分类:

函数含义
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值

聚合函数的语法: SELECT 聚合函数名(列名)FROM表;

注:NULL值不参与所有聚合函数

聚合函数代码示例:

DQL分组查询介绍:

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

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

假设需要统计db2表里面的男生,女生的总人数,表如图:

 查询男女生分别的总人数代码如下:

SQL分页查询介绍:

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

注:1.起始从零开始。 2.计算公式: 起始索引 = (当前页码-1)* 每页显示的条数

Tip: 分页查询limit 是MySQL 的方言

         Orcide 分页查询用的是rownumber

          SQL server 分页查询使用TOP

分页查询: //查询条件 查询第一页,每页显示三条数据

DQL小结:

SELECT 字段列表

FROM 表名列表

WHERE 条件列表

GROUP BY分组字段

HAVING 分组之后的条件

ORDER BY 排序字段

LIMIT 分页限定 

约束

约束的概念

1.约束是作用于表中列上的规则,用于限制加入表的数据。

2.约束的存在保证了数据库中的正确性,有效性和完整性。

约束含义函数
非空约束保证列中所有数据不能有null值NOT NULL
唯一约束保证列中所有数据名不相同UNIQUE
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
检查约束保证例中的值满足某一条件CHECK
默认约束保存数据时,未指定值则采用默认值DEFAULT
外键约束外键用俩个表的数据之间建立链接保证数据的一致性和完整性FOREIGN KEY

Tip:MySQL不支持检查约束。

1.添加约束

-- 创建表时添加约束

CREATE TABLE 表名(

 列名1,数据类型2  NOT NULL(约束类型),

 列名n,数据类型n  NOT NULL(约束类型)

);

-- 建完表之后添加约束

ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL(约束类型);

-- 删除约束

ALTER TABLE 表名 MODIFY 字段名 数据类型;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值