做网站图片需要什么格式,做任务用手机号登录网站,怎么买网站域名,微信小程序怎么开通一、SQL 语言概述
数据库就是指数据存储的库#xff0c;作用就是组织数据并存储数据#xff0c;数据库如按照#xff1a;库 - 表 - 数据三个层级进行数据组织#xff0c;而 SQL 语言#xff0c;就是一种对数据库、数据进行操作、管理、查询的工具#xff0c;通过…一、SQL 语言概述
数据库就是指数据存储的库作用就是组织数据并存储数据数据库如按照库 - 表 - 数据三个层级进行数据组织而 SQL 语言就是一种对数据库、数据进行操作、管理、查询的工具通过SQL 语言可以完成对数据的增删改查等操作。
数据库软件就是提供库 - 表 - 数据这种数据组织形式的工具软件也称之为数据库管理系统常见的数据库软件有 Oracle 、 MySQL 、 SQLServer 、 PostgreSQL 、 SQLite 本文使用MySQL 软件进行学习同时用第三方图形化工具DBeaver操作 MySQL。
SQL 全称是“ Structured Query Language ”即“结构化查询语言”用于访问和处理数据库的标准的计算机语言。SQL 语言 1974 年由 Boyce 和 Chamberlin 提出并首先在 IBM 公司研制的关系数据库系统 SystemR 上实现经过多年发展 SQL 已经成为数据库领域统一的数据操作标准语言几乎市面上所有的数据库系统都支持使用 SQL 语言来操作。
MySQL安装手把手教你安装MySQL(最新版本安装)_哔哩哔哩_bilibili
DBeaver安装【黑马程序员python教程8天python从入门到精通学python看这套就够了】 【精准空降到 03:06】 https://www.bilibili.com/video/BV1qW4y1a7fU/?p130share_sourcecopy_webvd_sourceb7e4ae388f33cefa375c8fb8789aa3bct186
二、SQL基础语法
2.1 SQL 的语法特征 SQL 的语法特征
大小写不敏感字符串的值必须要用单引号包围起来可以单行或多行书写最后以分号 ; 号结束SQL 支持注释 单行注释 -- 注释内容 -- 后面一定要有一个空格单行注释 # 注释内容 # 后面可以不加空格推荐加上多行注释 /* 注释内容 */
我们打开DBeaver来验证一下
首先打开编辑器如下图所示。 输入“SHOW DATABASES;”查看数据库如下图所示无论是大写小写还是大小写混杂得到的输出结果相同证明SQL 确实大小写不敏感。 运用3种注释方式运行正常 2.2 SQL 语言的分类
由于数据库管理系统数据库软件功能众多不仅仅是存储数据还包含数据的管理、表的管理、库的管理、账户管理、权限管理等等。所以操作数据库的 SQL 语言也基于功能可以划分为 4 类
数据定义 DDL Data Definition Language 库的创建删除、表的创建删除等数据操作 DML Data Manipulation Language 新增数据、删除数据、修改数据等数据控制 DCL Data Control Language 新增用户、删除用户、密码修改、权限管理等数据查询 DQL Data Query Language 基于需求查询和计算数据
2.2.1 DDL数据定义
2.2.1.1 DDL库管理
基础语法 SHOW DATABASES; # 查看数据库 USE 数据库名称; # 使用数据库 CREATE DATABASE 数据库名称 [CHARSET UTF8]; # 创建数据库方框[ ]的意思是里面的内容是可选的 DROP DATABASE 数据库名称; # 删除数据库 SELECT DATABASE() # 查看当前使用的数据库 我们在DBeaver中应用一下DDL库管理基础语法
1.创建数据库test
create database test charset utf8;-- 创建数据库test
运行后 2.创建数据库后我们接着查看数据库验证数据库test是否已存在。
create database test charset utf8;-- 创建数据库test
show databases;-- 查看数据库
运行后 3.使用数据库test再查看当前使用的数据库是否是test
create database test charset utf8;-- 创建数据库test
show databases;-- 查看数据库
use test;-- 使用数据库test
select database ();-- 查看当前使用的数据库
运行后 4.删除数据库test后我们接着查看数据库验证数据库test是否已不存在。
create database test charset utf8;-- 创建数据库test
show databases;-- 查看数据库
use test;-- 使用数据库test
select database ();-- 查看当前使用的数据库
drop database test;-- 删除数据库test
show databases;-- 查看数据库
运行后 2.1.1.2 DDL表管理
基础语法 SHOW TABLES; # 查看表需要先选择数据库 CREATE TABLE 表名称 列名称 列类型, 列名称 列类型, …… ; # 创建表 DROP TABLE 表名称; # 删除表 DROP TABLE IF EXISTS 表名称; # 删除表 其中在创建表时提到了列类型列类型有
int --整数float --浮点数varchar(长度) --文本长度为数字作最大长度限制data --日期类型timestamp --时间戳类型
我们在DBeaver中应用一下DDL表管理基础语法
1.在前面建立的数据库test中建立表student然后查看。
use test;# 一定先选择数据库
create table student(id int,name varchar(10),age int
);
show tables;运行后 2.在左边数据库导航栏中打开表student查看。 3.删除表student在2.2.1DDL中我们只学习基础语法在后面学习添加数据 注意在第2步中打开了表student要关闭表student后才能删除。
2.2.2 DML数据操作
关键字
插入 INSERT删除 DELETE更新 UPDATE
基础语法 # 数据插入 INSERT INTO 表[(列1列2列3列4……列N)] VALUES(值1值2值3值 4……值N)[(值1值2值3值4……值N)……(值1值2值3值4……值N)]; #方框[ ]的意思是里面的内容是可选的 # 数据删除 DELETE FROM 表名称 [WHERE 条件判断]; #数据更新 UPDATE 表名称 SET 列值 [WHERE 条件判断]; 条件判断列 操作符 值 操作符 、、 、 、 、 ! DML语法应用
1.在数据库test表student中插入数据。
use test;
create table student(ID int,name varchar(10),age int
);
# 插入全部列数据
insert into student (ID,name,age) values(01,加菲猫,3),(02,欧迪,2),(03,乔恩,23);
# 仅插入ID列数据
insert into student (ID) values(04),(05);
运行后在左边数据库导航栏中打开表student查看可以看到2次插入数据成功仅插入的ID数据“04”和“05”所对应的name和age为空。 如果我们要插入的数据每组都包括表中所有属性可以写得更简便。
# 插入全部列数据
insert into student (ID,name,age) values(01,加菲猫,3),(02,欧迪,2),(03,乔恩,23);
可以写成
# 插入全部列数据
insert into student values(01,加菲猫,3),(02,欧迪,2),(03,乔恩,23);
这也是列名加上了方括号的原因。
2.在表student中删除数据。
use test;
create table student(ID int,name varchar(10),age int
);
# 插入全部列数据
insert into student (ID,name,age) values(01,加菲猫,3),(02,欧迪,2),(03,乔恩,23);
# 仅插入ID列数据
insert into student (ID) values(04),(05);
#删除name为乔恩的数据
delete from student where name乔恩;
#删除age3的数据
delete from student where age3;
运行后 注意 # 数据删除 DELETE FROM 表名称 [WHERE 条件判断] 在数据删除的语法中“WHERE 条件判断”在方框内是可选的如果我们不选就会删除全部数据。 3.更新表student中的数据。
use test;
create table student(ID int,name varchar(10),age int
);
# 插入全部列数据
insert into student (ID,name,age) values(01,加菲猫,3),(02,欧迪,2),(03,乔恩,23)
#将ID03的name修改为Mary
update student set nameMary where ID03;
运行后 2.2.3 DQL(数据查询)
下面我们将从基础查询、分组聚合、排序分页3个方面认识DQL。
我们先建立一个表info
use test;
create table info(ID int,name varchar(10),sex varchar(10),age int
);
insert into info(ID,name,sex,age) values(01,张三,男,26),(02,李四,女,16),(03,王五,男,56),(04,小明,男,6),(05,coco,女,36);
生成的图表 下面的操作基于此表。
2.2.3.1基础查询
通过 SELECT 关键字开头的 SQL 语句进行数据的基础查询语法如下 SELECT 字段列表 |* FROM 表; #从FROM表中选择SELECT 某些列进行展示 SELECT 字段列表 |* FROM 表 WHERE 条件判断; #从FROM表中选择SELECT 某些符合条件的列进行展示 也称为过滤 基于表info进行查询 代码
#查询name和age两个列
select name,age from info;
#查询全部列
select ID,name,sex,age from info;
#查询全部列的简便写法
select * from info;
过滤查询 代码
#查询ID和name两个列年龄30岁
select ID,name from info where age30;
#查询全部列name为coco
select ID,name,sex,age from info where namecoco;
#简便写法
select * from info where namecoco;
2.2.3.2分组聚合
分组聚合应用场景非常多如统计班级中男生和女生的人数。按需要分组并统计每个组的人数这就称之为分组聚合。
基础语法 SELECT 字段 | 聚合函数 FROM 表 [WHERE 条件判断] GROUP BY 列; 聚合函数
SUM(列) 求和AVG(列) 求平均值MIN(列) 求最小值MAX(列) 求最大值COUNT(列 | *) 求数量
基于表info进行分组查询 注意SELECT 中除了聚合函数外 GROUP BY后面出现了哪个列哪个列在能出现SELECT 中。
代码
#按照性别分组统计各组人数
select sex ,count(*) from info group by sex;
#按照性别分组统计平均年龄
select sex,avg(age) from info group by sex;
#按照性别分组统计最大最小年龄
select sex,max(age),min(age) from info group by sex;2.2.3.3排序分页
使用 ORDER BY 关键字可以对查询的结果指定某个列进行排序。
语法 SELECT 字段 | 聚合函数 FROM 表 WHERE 条件判断 GROUP BY 列 ORDER BY 列 [ASC|DESC]; 基于表info进行查询并对查询结果进行排序
代码
#按照年龄升序排列结果
select * from info order by age asc;
#按照ID降序排列结果
select * from info order by ID desc;
使用 LIMIT 关键字可以对查询结果进行数量限制或分页显示。
语法 SELECT 字段 | 聚合函数 FROM 表 WHERE 条件判断 GROUP BY 列 ORDER BY 列 [ASC|DESC] LIMIT n [,m]; 基于表info进行查询并对查询结果进行限制 代码
#查询结果只保留3条
select * from info limit 3;
#找出年龄最大的2个人
select * from info order by age desc limit 2;
#从第3条开始取后面2条
select * from info limit 3,2;
注意
关键字WHERE 、 GROUP BY 、 ORDER BY 、 LIMIT 均可按需求省略。SELECT 和 FROM 是必写的。执行顺序FROM - WHERE - GROUP BY 和聚合函数 -SELECT - ORDER BY - LIMIT