当前位置: 首页 > news >正文

SQL语句-中级

 一、Mysql软件使用

1.启动/停止Mysql服务器

任务管理器

cmd命令:以管理员的身份打开cmd命令行

net start mysql80//开启net stop mysql80//停止 

2.连接与断开Mysql服务器

注意要在bin目录下执行:-u用户名root,-p密码

mysql -u root -p

可能出现的问题:

配置环境变量-右键此电脑——>点击属性——>高级设置——>系统属性——>用户变量新建——>复制Mysql的bin目录地址即可

 另一个是我遇到的,推荐这个博主文章:关于Can't connect to MySQL server on 'localhost:3306' (10061)问题-http://t.csdnimg.cn/gjGFK

退出:

quit;

 二、数据库与表结构操作

1.对数据库的操作

数据库的创建:

create database test;create schema test1;//与上一句都是创建数据库create database test2
character set=gbk;//创建时可设置编码格式-汉字编码create database if not exists test;//创建时可先进行判断

修改数据库:

 alter database 数据库名default character set gbk//修改字符集编码为gbkdefault collate gbk_chinese_ci;//修改字符集校对规则编码为gbk,字符集编码必须要一致

删除数据库:

 drop database 数据库名;

选择数据库:

use 数据库名;

2.数据类型

数据库中的数据类型对应C语言中的数据类型

tinyint---1个字节:-128~127;unsigned-0~255
smallint---2个字节:
int---4个字节:
bigint---8个字节:相当于long型
float(5,2)---4个字节:表示共5个数字长度,有2个小数位
unsigned表示无符号类型,即正数
char-定长字符类型,长度固定;varchar-变长字符串类型,按实际长度存储
tinytext--存储短文本字符串date---年月日YYYY-MM-DD;time---时分秒HH:MM:SS
datetime---date+time

3.表结构操作

alter table t_table1 add detail tinytext ;-- 添加新属性/字段
alter table t_table1 modify detail varchar(20) ; -- 修改属性类型/字段
alter table t_table1 change detail details varchar(20) ; -- 修改属性名/字段
alter table t_table1 drop column details;--  删除字段
rename table t_table1 to table1;-- 修改表名 
drop table if exists test;-- 删除表 

三、多表操作

1.多表设计

一对多:部门与员工

create table labor(
id int unsigned primary key auto_increment,
username varchar(20) not null,
gender tinyint unsigned not null,
departure_id int unsigned,
create_time datetime not null) comment '员工表';create table departure(
id int unsigned primary key auto_increment,
name varchar(10) not null unique,
create_time datetime not null
) comment '部门表';//对已建表添加联系/约束:一个部门对应多个员工
alter table labor add constraint c1(约束名可任意取) foreign key(departure_id) references departure(id);//创建表时添加联系/约束
create table managers( 
id int unsigned primary key auto_increment,
name varchar(20),
departure_id int unsigned,
labor_id int unsigned,
constraint m1 foreign key(departure_id) references departure(id)) comment '部门经理';//删除约束
alter table managers drop constraint c1(约束名);

一对一:用户与身份证-将单表进行拆分 

create table labor(
id int unsigned primary key auto_increment,
username varchar(20) not null,
gender tinyint unsigned not null,
departure_id int unsigned,
create_time datetime not null) comment '员工表';create table labor_card(
id int unsigned primary key auto_increment,
birthday date not null,
idcard char(18) not null,
labor_id int unsigned not null unique,//一定要加unique,否则不能实现一对一
constraint l1 foreign key (labor_id) references labor(id)
) comment '员工身份信息表';

多对多:学生与课程-借助中间表实现,分别关联两方主键

create table stu(
id int auto_increment primary key,
name varchar(20),
num varchar(10)
) comment '学生表';
insert into stu(name,num) values('湘城','20210133'),('源思','20210522'),('砂峮','20211344'),('信肆','20212345');create table course(
id int auto_increment primary key,
name varchar(20)
) comment '课程表';
insert into course(name) values('C'),('PHP'),('Java');create table stu_cour(
id int auto_increment primary key,
stu_id int not null,
cour_id int not null,
constraint s1 foreign key (stu_id) references stu(id),
constraint s2 foreign key (cour_id) references course(id)
) comment '中间表';
insert into stu_cour(stu_id,cour_id) values(1,2),(1,1),(2,2),(2,3);

2.多表查询

//查询所有
select * from stu,course;-- 笛卡尔积:A、B所有组合情况 ,包括重复记录//内连接查询
select * from stu,course where stu.id=course.id; -- 隐式内连接查询:消除重复记录
select stu.name,course.name from stu,course where stu.id=course.id; -- 查询特定数据
select s.name,c.name from stu s,course c where s.id=c.id; --  给表起别名select * from stu  (inner) join course on stu.id=course.id --  显式内连接查询-inner可省略//外连接查询
select * from stu left join course on stu.id=course.id; -- 左外连接:查询stu表的所有数据及其对应course数据 
select * from stu right join course on stu.id=course.id; -- 右外连接:查询course表的所有数据及其对应stu表的数据 //子查询:嵌套查询
select * from stu where num>(select num from stu where name='湘城'); -- 单行单列
select * from course where id!=(select id from course where name='C')select * from stu where name='源思' or num=20210133 -- 多行单列查询
select * from stu where num in (20210133,20210522)select * from (select * from stu where num>20210522) t1,course where t1.id=course.id -- 多行多列,放在from后作为虚拟表进行查询

相关文章:

SQL语句-中级

一、Mysql软件使用 1.启动/停止Mysql服务器 任务管理器 cmd命令:以管理员的身份打开cmd命令行 net start mysql80//开启net stop mysql80//停止 2.连接与断开Mysql服务器 注意要在bin目录下执行:-u用户名root,-p密码 mysql -u root -p 可能出现的…...

巧用h2-database.jar连接数据库

文章目录 一 、概述二、实践三、解决办法 一 、概述 H2 Database是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2 Database提供了一个十分方便的web控制台用于操作和管理数据库内容。H2 Database还提供兼容模式&#…...

136.只出现一次的数字

136. 只出现一次的数字 - 力扣(LeetCode) 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且…...

mysql中遇到查询字段的别名与函数冲突问题

比如以下哎,我查询城市行业数量排名 select City, DENSE_RANK() over(ORDER BY COUNT(Id) DESC) rank, COUNT(Id) num,IndustrySubGroupName from base_companyinfo WHERE IndustrySubGroupName工业机器人 GROUP BY City 上面使用 DENSE_RANK() 函数来计算排名&am…...

直播获奖

题目描述 NOI2130 即将举行。为了增加观赏性, CCF 决定逐一评出每个选手的成 绩,并直播即时的获奖分数线。本次竞赛的获奖率为 𝑤% ,即当前排名前 𝑤% 的选手的最低成绩就是即时的分数线。 更具体地&#xff0c…...

选择适合自身业务的HTTP代理有哪些因素决定?

相信对很多爬虫工作者和数据采集的企业来说,如何选购适合自己业务的HTTP代理是一个特别特别困扰的选题,市面上那么多HTTP代理厂商,好像这家有这些缺点,转头又看到另外一家的缺点,要找一家心仪的仿佛大海捞针。今天我们…...

1.3 do...while实现1+...100 for实现1+...100

思路&#xff1a;两个变量&#xff0c;一个变量存储数据之和&#xff0c;一个变量实现自增就行 do...while int i, s;i 1;s 0;do{s 1;i;} while (i < 100);cout << s << endl; for int i, j0;for (i 1; i < 100; i){j 1;}cout << j << …...

react数据管理之setState与Props

react数据管理之setState与Props setState调用原理 setState 是 React 中用于更新组件状态&#xff08;state&#xff09;的方法。它的调用原理可以分为以下几个步骤&#xff1a; 状态的改变&#xff1a;当调用 setState 时&#xff0c;React 会将新的状态对象与当前状态对象…...

如何保护我们的网络安全

保护网络安全是至关重要的&#xff0c;尤其是在今天的数字化时代。以下是一些保护网络安全的基本步骤&#xff1a; 1、使用强密码&#xff1a;使用包含字母、数字和特殊字符的复杂密码。不要在多个网站上重复使用相同的密码。定期更改密码。 2、启用双因素认证 (2FA)&#xff…...

springboot 制造装备物联及生产管理ERP系统

springboot 制造装备物联及生产管理ERP系统 liu1113625581...

Google zxing 生成带logo的二维码图片

环境准备 开发环境 JDK 1.8SpringBoot2.2.1Maven 3.2 开发工具 IntelliJ IDEAsmartGitNavicat15 添加maven配置 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.0</version> </…...

使用Python计算平面多边形间最短距离

要计算平面多边形间的最短距离&#xff0c;首先需要导入Excel表格中的多边形数据&#xff0c;然后使用GJK&#xff08;Gilbert-Johnson-Keerthi&#xff09;算法来判断两个多边形是否重叠。如果两个多边形不重叠&#xff0c;可以计算它们之间的最短距离。 以下是一个基本的Pyt…...

【Python】Python语言基础(中)

第十章 Python的数据类型 基本数据类型 数字 整数 整数就是整数 浮点数 在编程中&#xff0c;小数都称之为浮点数 浮点数的精度问题 print(0.1 0.2) --------------- 0.30000000000000004 ​​1.可以通过round()函数来控制小数点后位数 round(a b)&#xff0c;则表示…...

观察者模式、订阅者发布者模式、vtk中的观察者模式

文章目录 什么是观察者模式vtk是如何实现的观察者模式.AddObserver什么时候使用观察者模式&#xff1f;什么使用订阅发布者模式?观察者模式的实现订阅发布者的实现总结知识补充: 什么是观察者模式 用于在对象之间建立一对多的依赖关系&#xff0c;当一个对象的状态发生变化时…...

关于element-ui中,页面上有多个el-table并通过v-if、v-else等控制是否显示时,type=selection勾选框失效或不显示的问题

刚开始是勾选框那一列直接空了什么都不显示&#xff0c;搜索了一下说是给el-table标签增加id&#xff0c;加了之后是显示了&#xff0c;但是点击任何选框都会直接取消全部选中效果&#xff0c;翻了半天源码也没发现到底是哪里事件冲突了还是怎么回事&#xff0c;烦了&#xff0…...

Stewart六自由度正解、逆解计算-C#和Matlab程序

目录 一、Stewart并联六自由度正解计算 &#xff08;一&#xff09;概况 &#xff08;二&#xff09;Matlab正解计算 1、参考程序一 2、参考程序二 &#xff08;三&#xff09;C#程序正解计算 1、工程下载链接 2、正解运行计算 &#xff08;四&#xff09;正程…...

C语言 驼峰命名法和下划线命名法

在C语言中&#xff0c;变量命名遵循以下规则&#xff1a; 变量名只能由字母、数字和下划线组成。变量名必须以字母或下划线开头。变量名不能使用C语言中的关键字。变量名中不能出现连续的两个下划线。变量名区分大小写&#xff0c;例如&#xff0c;count和Count被视为两个不同…...

大数据学习(8)-hive压缩

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博>主哦&#x…...

[sqoop]hive导入mysql,其中mysql的列存在默认值列

一、思路 直接在hive表中去掉有默认值的了列&#xff0c;在sqoop导入时,指定非默认值列即可&#xff0c; 二、具体 mysql的表 hive的表 create table dwd.dwd_hk_rcp_literature(id string,literature_no string,authors string,article_title string,source_title string…...

Stream流中的常用方法(forEach,filter,map,count,limit,skip,concat)和Stream流的特点

1、forEach方法 该方法接收一个Consumer接口是一个 消费型 的函数式接口&#xff0c;可以传递Lambda表达式&#xff0c;消费数据用来遍历流中的数据&#xff0c;是一个 终结 方法&#xff0c;遍历 之后就不能继续调用Stream流中的其他方法 package com.csdn.stream; import jav…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...