学点儿数据库_Day11_数据库简介、Sql单表、GROUP BY答疑

1 数据库简介

数据在内存:
优点:读写速度快
缺点:程序结束后数据丢失

保存到文件
优点:数据可以永久保存
缺点:
1、频繁的IO操作,效率不高
2、数据的管理非常不方便,需要把所有的数据整体都读取出来才能操作

数据库:
1、数据永久保存
2、数据管理非常方便

卸载:
1、控制面板-管理工具-服务,停掉MySql服务。
2、控制面板-程序和功能,卸载MySql
3、到C:\Program Files安装目录把MySql目录删除
4、C:\ProgramData删除MySql目录

数据库是以表为组织单位存储数据的。
在这里插入图片描述

2 单表

PRIMARY KEY 主键,不能重复,唯一确定一条记录 (unique+not null)
表中的任何列都可以作为主键,只要它满足一下条件:
1、任意两行都不具有相同的主键值
2、每一行都必须具有一个主键值(主键列不允许空置NULL)
3、主键列中的值不允许修改或更新
4、主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)
Duplicate entry '1' for key 'PRIMARY'

AUTO_INCREMENT 自动增长

varchar(10) char(10)区别:
相同点:都可以最大放10个字符
不同点:char(10)不管输入的是多少都会占10个字符,例如输入名字“张三”只有两个字符,
但是使用char(10)在数据库里面还是占10个字符的空间。
使用varchar(10)最大支持是10个字符,但是实际长度就是输入字符长度,例如输入名字“张三”只有两个字符,
那么在varchar(10)里面就只占两个字符。

select

数据库中以为组织单位存储数据。
表类似我们的Java类,每个字段对应类里面的属性。
那么用我们熟悉的java程序来与关系型数据对比,就会发现以下对应关系。
类--------------------表
类中属性-------------表中字段(列)
对象------------------记录(行)
字段(列)可以当成变量(类中属性时变量)
变量是可以计算(操作)的

1.1 数据库操作

在这里插入图片描述

-- 列出所有的数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE study DEFAULT CHARACTER SET utf8;
-- 删除数据库
DROP DATABASE study;
-- 切换数据库
USE study;

1.2 表基本操作

-- 创建表
CREATE TABLE student(id INT,`name` CHAR(10),age INT,gender CHAR(1)
);
-- 查看所有表
SHOW TABLES;
-- 查看表的结构
DESC student; -- description
-- 删除表
DROP TABLE student;-- 修改表的结构 --
-- 添加字段
ALTER TABLE student ADD COLUMN address CHAR (10);
-- 删除字段
ALTER TABLE student DROP COLUMN addr;
-- 修改字段
ALTER TABLE student CHANGE address addr char(10);
-- 修改表的名字
ALTER TABLE student RENAME TO stu;
-- 创建表
CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,`name` CHAR(10),age INT,gender CHAR(1)
);
-- SELECT查询    *代表所有的字段(列)
SELECT * FROM student;
SELECT id,`name` FROM student;
SELECT `name` FROM student;
-- 插入数据
-- INSERT INTO student(id, `name`, age, gender) VALUES(1, '王五', 23, '女');
-- Duplicate entry '1' for key 'student.PRIMARY'
INSERT INTO student(`name`, age, gender) VALUES('王五', 23, '女');
INSERT INTO student(id, `name`, age, gender) VALUES(6, '王五', 23, '女');
INSERT INTO student VALUES(8, '王五', 23, '女');
-- INSERT INTO student VALUES('王五', 23, '女');
-- Column count doesn't match value count at row 1-- 一次插入多条数据
INSERT INTO student(`name`, age, gender) VALUES('王五1', 23, '女'), ('王五2', 23, '女');-- 修改数据
UPDATE student SET age = age + 1;
UPDATE student SET age = age + 1, `name` = 'ww' WHERE id = 8;-- 删除数据
DELETE FROM student;-- 删除表里面所有的数据,非常危险的操作 id 就那么个特点
DELETE FROM student WHERE id = 9;
DELETE FROM student WHERE age = 23;
TRUNCATE TABLE student;-- TRUNCATE删除表里面所有数据,自增的id会重新初始化为初始值1-- 查询数据
-- 显示所有列(字段)数据
-- 学习时候可以写*,但是在企业开发中需要什么字段就写什么字段,检索不需要的列会降低检索速度和应用程序的性能SELECT id,`name`,age,gender FROM student;
-- 查询指定列
SELECT `name`,age FROM student;
SELECT id,`name`,age,gender FROM student;
-- 查询的时候增加常量列
SELECT id,`name`,age AS '年龄','Java2403' AS 'classname' FROM student;
SELECT id,`name` '姓名',age '年龄','Java2403' AS '班级名' FROM student;
SELECT id,`name`,(php+java) AS '总成绩' FROM student;
SELECT DISTINCT address FROM student;-- 条件查询 where ,数据库表一般包含大量的数据,很少需要检索表中所有行
SELECT * FROM student WHERE gender='女';-- 逻辑条件: and(同时成立) or(只要有一个成立)
SELECT * FROM student WHERE `name`='王五';
SELECT * FROM student WHERE `name`='王五' AND gender='女';-- 比较运算: >  <  >=  <=  != 不等于也可以写成:<>
SELECT * FROM student WHERE java>=80 AND java<=99;
SELECT * FROM student WHERE java BETWEEN 80 AND 99;-- 包含等号
-- 查询address不是青岛的学生
SELECT * FROM student WHERE address!='青岛';
SELECT * FROM student WHERE address<>'青岛';-- 空值NULL:无值(no value),它与字段包含0、空字符串或紧紧包含空格不同
-- SELECT * FROM student WHERE address=NULL; -- IS NOT NULL
SELECT * FROM student WHERE address IS NULL; -- IS NOT NULL
SELECT * FROM student WHERE address IS NOT NULL; -- IS NOT NULL

1.3 聚合查询

-- 聚合查询
-- 聚合查询函数:sum(),avg(),max(),min(),count()
-- 统计学生php的总成绩(sum求和)
SELECT SUM(php) AS 'php总成绩' FROM student;-- 不存在 叫 计算列
-- 统计学生php的平均值
SELECT AVG(php) AS 'php平均值' FROM student;
-- 统计学生php的最大值
SELECT MAX(php) AS 'php最大值' FROM student;
-- 统计学生php的最小值
SELECT MIN(php) AS 'php最小值' FROM student;-- 统计学生表里面一共有多少学生
SELECT COUNT(*) AS '总人数' FROM student;-- 空不空都数
SELECT COUNT(id) AS '总人数' FROM student;-- 非空
SELECT COUNT(address) AS '总人数' FROM student;-- 非空
-- 注意:如果指定列名,则COUNT会忽略指定列的值为NULL的行,用*则不忽略。

1.4 查询排序

-- 查询排序 desc:descending asc:ascending
-- 语法:order by 字段  asc/desc  默认是asc升序,可以不写
SELECT * FROM student ORDER BY php;
SELECT * FROM student ORDER BY php ASC;
SELECT * FROM student ORDER BY php DESC;
-- 多个条件排序
-- 需求:先按照php降序,java升序(整体是按照php降序,如果php相同的数据再按照java标准排序)
SELECT * FROM student ORDER BY php DESC, java ASC;
-- order by要放在sql语句的最后

1.5 分组查询

-- 分组查询(group by)
-- 需求:查询男女分别有多少人
-- 性别 人数
-- 男 2
-- 女 1
SELECT gender AS '性别',COUNT(*) AS '人数'
FROM student GROUP BY gender;
SELECT gender AS '性别',COUNT(*) AS '人数'
FROM student GROUP BY gender HAVING COUNT(*)>1;-- 分组后不用whereSELECt gender,COUNT(gender)
FROM student GROUP BY gender;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/287320.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生靶场kebernetesGoat、Metarget

靶场 文章目录 靶场kebernetesGoat靶场安装Docker in DockerSSRF漏洞容器逃逸到主系统Docker CIS 基线分析Kubernetes CIS 安全基线分析分析被部署挖矿软件的容器镜像获取环境信息Hidden in layersRBAC最低权限配置错误使用 Sysdig Falco 进行运行时安全监控和检测 Metarget ke…

C++类和对象、面向对象编程 (OOP)

文章目录 一、封装1.抽象、封装2.类和对象(0)学习视频(1)类的构成(2)三种访问权限(3)struct和class的区别(4)私有的成员变量、共有的成员函数(5)类内可以直接访问私有成员&#xff0c;不需要经过对象 二、继承三、多态1.概念2.多态的满足条件3.多态的使用条件4.多态原理剖析5.纯…

负氧离子监测站:创造健康生活环境

TH-FZ5在蓝天白云之下&#xff0c;那一座座高耸的全彩屏负氧离子监测站&#xff0c;如同一支支科技的绿芽&#xff0c;静静破土而出&#xff0c;为这片土地带来了新的生命力。这些现代化的设备不仅美化了环境&#xff0c;更是我们呼吸健康守护者&#xff0c;它们的存在让我们的…

初识云原生、虚拟化、DevOps

文章目录 K8S虚拟化DevOpsdevops平台搭建工具大数据架构 K8S master 主节点&#xff0c;控制平台&#xff0c;Master节点负责核心的调度、管理和运维&#xff0c;不需要很高性能&#xff0c;不跑任务&#xff0c;通常一个就行了&#xff0c;也可以开多个主节点来提高集群可用度…

Arduino+ESP8266+华为云物联网平台实现智能开关

前言 最近在做一个物联网项目&#xff0c;涉及到智能开关的开发。目前已经实现简单的TCP通信远程控制&#xff0c;但是考虑到后期的设备管理以及设备通信所需要的技术和服务器的维护成本&#xff0c;我决定将设备接入云平台。本文将详细阐述如何利用华为云的物联网平台&#x…

CI/CD实战-jenkins流水线 6

现最新版本没有该问题的出现 基于RBAC的身份授权&#xff1a; 安装插件&#xff1a; 新建测试用户 修改默认授权策略 新建的用户就没有任何权限 新建角色并授权 添加用户角色身份 pipeline 安装ssh agent插件 由于最新版的插件是有问题的&#xff0c;会有以下报错&#xff…

Memcached分布式内存对象数据库

一 Memcached 概念 Memcached 是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数&#xff0c;从而提高动态、数据库驱动网站的速度。 二 在架构中的位置 Memcached 处于前端或中间件后…

使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)

一、前言 在业务系统开发过程中&#xff0c;我们必不可少的会使用数据库&#xff0c;在应用开发过程中&#xff0c;数据库连接信息往往都是以明文的方式配置到yaml配置文件中的&#xff0c;这样有密码泄露的风险&#xff0c;那么有没有什么方式可以避免呢&#xff1f;方案当然是…

怎样从录制好的视频中提取音频?分离音频只需几秒 音频提取

在当今数字化的世界中&#xff0c;视频与音频的结合已经成为我们生活中不可或缺的一部分。然而&#xff0c;有时我们可能只需要视频中的音频部分&#xff0c;这时候&#xff0c;如何从视频中提取音频就成了一个实用且常见的问题。本文将详细介绍几种常见的方法&#xff0c;帮助…

设计用于驱动12 V汽车接地负载,VN5E160ASTR、VND5E160MJTR、VND5E025AKTR、VND5E050ACKTR 单/双通道高侧驱动器

摘要 意法半导体VIPower系列高侧开关符合汽车应用要求&#xff0c;内嵌先进的控制功能&#xff0c;其新型保护机制适用于各种负载类型及额定功率。 此类开关是汽车系统的理想选择&#xff0c;如&#xff1a;接线盒、内部/外部照明、直流电机驱动等&#xff0c;并适用于任何需…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化

工程项目管理软件是现代项目管理中不可或缺的工具&#xff0c;它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件&#xff0c;该软件采用先进的Vue、Uniapp、Layui等技术框架&#xff0c;涵盖了项目策划决策、规划设计、施工建设到竣工交付…

机器学习笔记(4)—逻辑回归(Logistic Regression)

文章目录 逻辑回归&#xff08;Logistic Regression&#xff09;分类问题假说表示判定边界代价函数简化的成本函数和梯度下降多类别分类&#xff1a;一对多 逻辑回归&#xff08;Logistic Regression&#xff09; 分类问题 分类问题中&#xff0c;我们要预测的变量 y y y是一…

Hive入门

什么是hive&#xff1f; - Hive是Facebook开发并贡献给Hadoop开源社区的。它是建立在 Hadoop体系架构上的一层 SQL抽象&#xff0c;使得数据相关人 员使用他们最为熟悉的SQL语言就可以进行海量数据的处理、 分析和统计工作 - Hive将数据存储于HDFS的数据文件映射为一张数据库…

【笔记】MJ Prompt

参数 --chaos 10 or --c 10, 0-10, defalut 0 --quality 1 or --q, 0.25-1, defalut 1 --iw 2, 0.5-2, --stylize 100 or --s 100, 0-1000, defalut 100 --cref URL --cw 100, 0-100stylize 风格化&#xff0c;MJ不同的出图模式&#xff0c;有默认的艺术风格&#xff0c;该值…

【jenkins+cmake+svn管理c++项目】windows修改jenkins的工作目录

jenkins默认的存放源码的workspace是&#xff1a; C:\Users\用户\AppData\Local\Jenkins\.jenkins\workspace。由于jenkins会拉取大量的源代码以及编译生成一些文件&#xff0c;我希望我能自己指定目录作为它的工作空间&#xff0c;放在这里显然不太合适。 那么修改目录的方式有…

跟张良均老师学大数据人工智能——数据挖掘集训营开营

集训营特色&#xff1a; 知识点深入浅出&#xff0c;实现以学促用 以业务内容为主线&#xff0c;数据挖掘技能嵌入 多行业项目实战&#xff0c;全面提升职业素养 全程线上辅导&#xff0c;助力熟练掌握技能 惊喜优惠&#xff1a; 限时“六折”&#xff01; 师傅带练 方向…

宋仕强论道之华强北科技创新说

宋仕强论道之华强北科技创新说&#xff0c;“创新”是深圳市和华强北灵魂&#xff0c;创新再加上敢想敢干永不言败&#xff0c;造就了深圳市经济奇迹和华强北财富神话&#xff01;首次在深圳市落槌的“土地拍卖”&#xff0c;华强北“一米柜台”赋予独立经营权&#xff0c;把最…

TCP(socket 套接字)编程 1

一、TCP套接字编程架构如下 二、相关代码实现 1、服务器端代码 package com.company;import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket;public class Main {public static void main(String[] args) {…

本地大模型(免安装绿色版)

上一篇文章我们讨论了如何在本地运行大模型 。 安装本地大模型 大部分软件都需要安装&#xff0c;今天是免安装绿色版。 很多人下载不了原版&#xff0c;所以我放百度网盘了。 下载 下载&#xff1a;llava-1.5大模型(7b参数,流量警告:4G) 运行&#xff1a;.\llava-v1.5-7b-…

FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。

demo演示地址 FlyControls 是 THREE.js 中用于实现飞行控制的类&#xff0c;它用于控制摄像机在三维空间中的飞行。 入参&#xff1a; object&#xff1a;摄像机对象&#xff0c;即要控制的摄像机。domElement&#xff1a;用于接收用户输入事件的 HTML 元素&#xff0c;通常…