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

SQL语法基础汇总




三年前的存稿

默认端口号 3306
超级用户名 root
登录 mysql -uroot -p / mysql -uroot -proot
退出 exit / quit
服务器版本 SELECT VERSION();
当前日期 SELECT NOW();
当前用户 SELECT USER();
备份 mysqldump -uroot -p 数据库名称 > 保存的路径
还原 create database1->use database1 -> source 文件路径
启动 net start mysql
关闭 net stop mysql
注释 #
结尾 ;
创建数据库 CREATE DATABASE
修改数据库 ALTER DATABASE
删除数据库 DROP DATABASE
关键字与函数名称需全部大写;数据库、表、字段名均小写。为了方便理解记忆,笔记统一采用小写。


库操作

//查询所有数据库的名称
show databases;
//查询某个数据库的字符集
show create database sql1;
//查询当前正在使用数据库
select database();//创建数据库
create database sql2;
//当创建的数据库存在时,上述语句报错,故需要进行判断
create database if not exists sql3;
//创建一个数据库并设置字符集gbk
create database sql4  character set gbk;
//以上操作可合并
create database if not exists sql5 character set gbk;//修改数据库的字符集
alter database sql6 character set utf8;//删除数据库(删除一个不存在的会报错)
drop database sql5;
//删除时不存在判断
drop database if exists sql5;//使用数据库
use sql1;

表操作

//查询某个数据库中所有表名称
use sql1;
show tables;//查询表结构
desc tab1;//创建表(最后一列不加逗号)
create table stu1(id int,name varchar(32),age int,score double(4,1),brirthday data,insert_time timestamp
);
//常用type
int
double(4,2) //表示最大4位,小数保留2位
data
varchar(8) //表示最长长度为8个字符,monkey有6个字符,猴子有2个字符//复制创建一样的表
create table stu2 like stu1;//删除表
drop table tab1;
drop table if exists tab1;//修改表名
alter table tab1 rename to tab2;
//修改表字符集
alter table tab1 character set utf8;
//添加一列
alter table tab1 add listname type;
alter table stu1 add gender varchar(10); 
//修改列名
alter table tab1 change 列名 新列名 新数据类型;
alter table tab1 change gender sex varchar(20);
alter table tab1 modify sex varchar(10);
//删除列
alter table 表名 drop 列名;



增删改表中数据

//添加数据,除数字类型以外,其他类型需要单或双引号引起来
insert into 表名(列名1,列名2,...列名n) values(1,2,...值n);
insert into 表名 values(1,2,...值n);//删除数据
delete from 表名; //删除表中全部数据!!!(not safe)
truncate table 表名; //删除表,然后创建一个一样的空表(效率高)delete from 表名 [where 条件]
delete from stu where id=1;//修改数据
update 表名 set 列名1 =1,列名2 =2,...[where 条件];
//不加条件导致表中全部记录被改变

查询表中数据

基础查询
//查询指定数据
select 字段1,字段2,...from 表名;
//查询所有字段
select * from 表名;
//☆distinct去除重复 //☆或者使用group by去重
select distinct 字段1,.. from 表名;
//计算列,null参与的计算进行判断
select 字段1,字段2,字段1 + ifnull(字段2,0) from 表名;
//列计算后列名的别名
select 字段1,字段2,字段1 + ifnull(字段2,0) as 别名 from 表名;条件查询
//
select * from 表名 where 条件;
select * from 表名 where age > 10;
select * from 表名 where age = 10;
select * from 表名 where age < 10;
select * from 表名 where age != 10;
select * from 表名 where age <> 10;//同上
select * from 表名 where age >= 20 and age <= 30;
select * from 表名 where age between 20 and 30;//同上
select * from 表名 where age = 19 or age = 20 or age = 21;
select * from 表名 where age in (19,20,21);//同上
//null不能用=或者!=判断
select * from 表名 where age is null;
select * from 表名 where age is not null;模糊查询
//查询姓'王'的有哪些人
select * from 表名 where name like '王%';
//查询第二个字是 云 的人
select * from 表名 where name like '_云%';
//查询名字是三个字的人
select * from student where name like '___';//这里3个_
//姓名中包含 云 的人
select * from 表名 where name like '%云%';排序查询
//学生表stu中math成绩
select * from stu order by math;//不指定方式默认为升序方式
select * from stu order by math asc;//asc升序
select * from stu order by math desc;//desc降序
//在数学成绩基础上排英语成绩
select * from stu order by math asc , english asc;
//升序排序asc可以省略,降序排列不能省略
//order by 后对所有排序字段有效,升序和降序要给每个字段单独设定
select * from stu order by gpa desc,age desc;聚合函数:纵向一列
//聚合排除null
//计算个数
select count(主键) from stu;
select count(name) from stu;
select count(ifnull(english,0)) from stu;//如果english为null,记为0,这样不会因为null而被排除个数在外//计算最大最小
select max(math) from student;
select min(math) from student;
//计算和
select sum(math) from student;//排除null
//计算平均
select avg(math) from student;分组查询
//按性别分组,分别查询男女的数学平均分,人数
select sex,avg(math),count(id) from stu group by sex;//指定位置取多条数据
limit n # 从第0+1条开始,取n条数据,是limit 0,n的缩写
limit m,n # 从第m+1条开始,取n条数据
limit n offset m # 从m+1开始,取n条数据
//例如:从表中读取前两条信息
select * from u_table limit 2;
select * from u_table limit 0,2;
select * from u_table limit 2 offset 0;分页查询
//每页显示三条内容,转到第一页
select * from stu limit 0,3;//第一页(3×0)
select * from stu limit 3,3;//第二页(3×1)
//通项:开始索引 = (当前页码 - 1)*每页显示条数



约束

//主键约束(非空且唯一,一张表只能有一个主键,+ primary key)
1.创建表时主键约束
create table stu (id int primary key,name varchar(20)
);2.创建完才添加主键
alter table stu modify id int primary key;3.删除主键
alter table stu drop primary key;4.自动增长:数值类型在添加数据时自动增长
create table stu (id int primary key auto_increment,name varchar(20)
);
insert into stu values(null,'b')//这里主键值可以用null因为有自动增长存在5.添加自动增长
alter table stu modify id int auto_increment;
6.删除自动增长
alter table stu modify id int;//非空约束(+ not null)
1.创建表时约束非空
create table stu(id int,name varchar(20) not null
);2.创建表时没有约束,后面要约束
alter table stu modify name varchar(20) not null;3.删除name的非空约束
alter table stu modify name varchar(20);//唯一约束(+ unique)
1.创建表时唯一约束(null可以同时存在)
create table stu(in int,phone_number varchar(20) unique
);2.创建表后添加唯一约束
alter table stu modify phone_number varchar(20) unique;3.删除唯一约束(注:跟非空约束删除不一样)
alter table stu drop index phone_number;//外键约束
create table stu(id int primary key, #主键name varchar(20) not null, #非空gender char(1) check(gender='男' or gender='女'), #检查seat int unique, #唯一age int default 18, #默认classId int,constraint class_id foreign key(classid) references classinfo(id) #外键#外键简单写法#foreign key (classid) references classinfo(id)
);
create table classinfo(id int primary,infor varchar(20)
);

多表关系

create table tab_category(cid int primary key auto_increment, #主键自动增长cname varchar(100) not null unique #非空且唯一
);
create table tab_route(rid int primary key auto_increment, #主键自动增长rname varchar(100) not null unique, #非空且唯一price double,rdate date,cid int, #外键foreign key (cid) references tab_category(cid)
);
create table tab_user(uid int primary key auto_increment,username varchar(100) unique not null,password varchar(30) not null,name varchar(100),birthday date,sex char(1) default '男', #默认是男telephone varchar(11),email varchar(100)
);
create table tab_favorite(rid int,uid int,date datetime,primary key(rid,uid), #复合键,同一用户不能收藏同一路线两次foreign key (rid) references tab_route(rid),foreign key (uid) references tab_user(uid)
);

数据库设计的范式




多表查询操作

select * from database1,database2;
//结果为笛卡尔积

笛卡尔积:两个集合A,B,取两个集合的所有组成结果

//内连接查询
select id_list from tab1 [inner] join tab2 on 条件;
//外链接查询//子查询
1、男同学 列出:学号、姓名、系
ΠSno,Sname,Sdept(σSsex='男'(Student))2、男同学 列出:学号、课程号、成绩
ΠSno,Cno,Grade(σSsex='男'(Student∞SC))
ΠSno,Cno,Grade(σSsex='男'(Student)∞SC)3、CS系+男同学 列出:学号、姓名、课程号
ΠSno,Sname,Cno(σSsex='男'∧Sdept='CS'(Student∞SC))
ΠSno,Sname,Cno(σSsex='男'∧Sdept='CS'(Student)∞SC)4、CS系+数据库名称 列出:学号、成绩
ΠSno,Grade(σSdept='CS'∧Cname='数据库'(Student∞SC∞Course))
ΠSno,Grade(σSdept='CS'(Student)∞SC∞σCname='数据库'(Course))5、男同学 列出:课程号
ΠCno(σSsex='男'(Student∞SC))
ΠCno(σSsex='男'(Student)∞SC)
ΠSno,Cno(SC)÷ΠSno(σSsex='男'(Student))6、选择课程号C01 列出:学号、姓名
ΠSno,Sname(Student∞σCno='C01'(SC))
ΠSno,Cno(SC)÷ΠCno(σCno='C01'(SC))∞ΠSname(Student)7、没有选择课程号C01 列出:学号、姓名
ΠSno,Cno(SC)÷ΠCno(σCno<>'C01'(SC))∞ΠSname(Student)
ΠSno,Sname(Student)-ΠSno,Sname(Student∞σCno='C01'(SC))
1.供应工程j1零件的sno
Πsno(σjno='j1'(SPJ))2.供应工程j1零件p1的sno
Πsno(σjno='j1'∧pno='p1'(SPJ))3.供应工程j1为红色的sno
Πsno(σjno='j1'(SPJ)∞σcolor='红'(P))4.没有使用天津供应商生成的红色零件的jno
Πjno(SPJ)-Πjon(σcity='天津'(S)∞SPJ∞σcolor='红'(P))5.至少用了供应商s1供应的全部零件的jno
Πjno,pno(SPJ)÷Πpno(σsno='s1'(SPJ))

相关文章:

SQL语法基础汇总

三年前的存稿 默认端口号 3306 超级用户名 root 登录 mysql -uroot -p / mysql -uroot -proot 退出 exit / quit 服务器版本 SELECT VERSION(); 当前日期 SELECT NOW(); 当前用户 SELECT USER(); 备份 mysqldump -uroot -p 数据库名称 > 保存的路径 还原 create database1-…...

惠普星14Pro电脑开机不了显示错误代码界面怎么办?

惠普星14Pro电脑开机不了显示错误代码界面怎么办&#xff1f;有用户电脑开机之后&#xff0c;进入了一个错误界面&#xff0c;里面有一些错误代码。重启电脑之后依然是无法进入到桌面中&#xff0c;那么这个情况怎么去进行解决呢&#xff1f;我们可以重装一个新系统&#xff0c…...

顺序表的构造及功能

定义顺序表是一种随机存储都结构&#xff0c;其特点是表中的元素的逻辑顺序与物理顺序相同。假设线性表L存储起始位置为L(A)&#xff0c;sizeof(ElemType)是每个数据元素所占的存储空间的大小&#xff0c;则线性表L所对应的顺序存储如下图。顺序表的优缺点优点&#xff1a;随机…...

cesium: 绘制线段(008)

第008个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中绘制线段,左键点击开始绘制,右键点击取消绘制 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共139行)相关API参考:专栏目标示例效果 配置方式 1)…...

HTML、CSS学习笔记4(3D转换、动画)

目录 一、空间转换&#xff08;3D转换&#xff09; 1.空间位移 语法&#xff1a; 取值&#xff1a;&#xff08;正负均可&#xff09; 透视&#xff1a; 2.空间旋转 3.立体呈现 二、动画&#xff08;animation&#xff09; 1.动画的使用 先定义动画 再调用定义好的动画 …...

java的分布式锁

什么是分布式锁 分布式锁是指分布式环境下&#xff0c;系统部署在多个机器中&#xff0c;实现多进程分布式互斥的一种锁。为了保证多个进程能看到锁&#xff0c;锁被存在公共存储&#xff08;比如 Redis、Memcache、数据库等三方存储中&#xff09;&#xff0c;以实现多个进程并…...

17- TensorFlow实现手写数字识别 (tensorflow系列) (项目十七)

项目要点 模型创建: model Sequential()添加卷积层: model.add(Dense(32, activationrelu, input_dim100)) # 第一层需要 input_dim添加dropout: model.add(Dropout(0.2))添加第二次网络: model.add(Dense(512, activationrelu)) # 除了first, 其他层不要输入shape添加输出…...

Polkadot 基础

Polkadot Polkadot联合并保护了一个不断增长的专业区块链生态系统&#xff0c;称为parachains。Polkadot上的应用程序和服务可以安全地跨链通信&#xff0c;形成真正可互操作的去中心化网络的基础。 真正的互操作性 Polkadot支持跨区块链传输任何类型的数据或资产&#xff0c;…...

spring源码编译

spring源码编译1、安装gradle2、拉取源码3、配置gradle文件来源及镜像仓库4、预编译5、验证6、可能遇到的报错6.1、jdk.jfr不存在6.2、checkstyleMain6.3、org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()Ljava/lang/String6.4、其他jdk&#xff1…...

防盗链是什么?带你了解什么是防盗链

目录 什么是防盗链 防盗链的定义 防盗链的产生 防盗链的实现 什么是防盗链 防盗链其实就是采用服务器端编程&#xff0c;通过url过滤技术实现的防止盗链的软件。 比如&#xff1a;photo.abc.com/video.mp4 这个下载地址&#xff0c;如果没有装防盗链&#xff0c;别人就能轻…...

Linux基础命令-fdisk管理磁盘分区表

文章目录 fdisk 命令介绍 命令格式 基本参数 1&#xff09;常用参数 2&#xff09;fdisk菜单操作说明 创建一个磁盘分区 1&#xff09;创建分区 2&#xff09;创建交换分区 参考实例 1&#xff09; 显示当前分区的信息 2&#xff09; 显示每个磁盘的分区信息 命令…...

(四)K8S 安装 Nginx Ingress Controller

ingress-nginx 是 Kubernetes 的入口控制器&#xff0c;使用NGINX作为反向代理和负载均衡器 版本介绍 版本1&#xff1a;Ingress NGINX Controller(k8s社区的ingres-nginx) 以 NGINX 开源技术为基础&#xff08;kubernetes.io&#xff09;&#xff0c;可在GitHub的 kubernet…...

高频面试题

MyISAM和InnoDB是MySQL两种常见的存储引擎&#xff0c;它们之间有以下几点区别&#xff1a; 事务支持&#xff1a;MyISAM不支持事务处理&#xff0c;而InnoDB支持事务处理。 行级锁&#xff1a;MyISAM只支持表级锁&#xff0c;而InnoDB支持行级锁&#xff0c;可以避免并发访问…...

js 字节数组操作,TCP协议组装

js字节数组&#xff0c;进制转换js基础知识数组 Array扩展操作符三个点&#xff08;...&#xff09;ArrayBufferslice() 数组复制reduce 对数组中的每个元素执行一个提供的函数,将其结果汇总为单个返回值splice 数组删除&#xff0c;添加&#xff0c;替换js 字节数组转数字以及…...

JavaScript的引入并执行-包含动态引入与静态引入

JavaScript的引入并执行-包含动态引入与静态引入 JavaScript引入方式 html文件需要引入JavaScript代码&#xff0c;才能在页面里使用JavaScript代码。 静态引入 行内式 直接在DOM标签上使用 <!DOCTYPE html> <html lang"en"> <head><meta ch…...

第四阶段01-酷鲨商城项目准备

1. 关于csmall-product项目 这是“酷鲨商城”大项目中的“商品管理”项目&#xff0c;是一个后台管理项目&#xff08;给管理员&#xff0c;或运营人员使用的项目&#xff0c;并不是普通用户使用的&#xff09;&#xff0c;并且&#xff0c;只会涉及与发布商品可能相关的功能开…...

Uncaught ReferenceError: jQuery is not defined

今天在拉取项目部署到本地的时候遇到了一个问题特此记录一下 &#xff08;以后闭坑&#xff09; 我和同事同时拉取了一样的代码&#xff0c;结果同事的页面加载正常而我的页面像被狗啃了一样&#xff0c;知道是js的问题但是不知道问题出在哪里&#xff1f;后来还是同事帮我解决…...

面试阿里测开岗,被面试官针对,当场翻脸,把我的简历还给我,疑似被拉黑...

好家伙&#xff0c;金三银四一到&#xff0c;这奇葩事可真是多&#xff0c;前两天和粉丝聊天&#xff0c;他说前段时间面试阿里的测开岗&#xff0c;最后和面试官干起来了。 我问他为什么&#xff0c;他说没啥&#xff0c;就觉得面试官太装了&#xff0c;就爱问一些虚而不实的…...

2. 驱动开发--驱动开发环境搭建

文章目录前言一、Linux中配置编译环境1.1 linux下安装软件的方法1.2 交叉编译工具链的安装1.2.1 测试是否安装成功1.3 设置环境变量1.3.1 将工具链导出到环境变量1.4 为工具链创建arm-linux-xxx符号链接二、 搭建运行开发环境2.1 tftp网络方式加载内核和设备树文件2.2 nfs网络方…...

《数据库系统概论》学习笔记——第四章 数据库安全

教材为数据库系统概论第五版&#xff08;王珊&#xff09; 这一章简单记一下那几条sql的用法和两种存取控制和审计&#xff08;今年期末考了&#xff09;吧&#xff0c;不知道有啥好考的 数据库安全性 问题的提出 数据库的一大特点是数据可以共享数据共享必然带来数据库的安全…...

山洪径流过程模拟及洪水危险性评价

目录 1.洪水淹没危险性评价方法及技术讲解 2.GIS水文信息提取与分析(基于ArcGIS软件) 3.洪水淹没模拟水文分析&#xff1a;洪峰流量估算 4.洪水淹没模拟水力学分析&#xff1a;Hec-RAS实例操作 GIS水文分析&#xff08;ArcHydro、Spatial Anlysist等模块&#xff09;是流域…...

LeetCode HOT100 (23、32、33)

目录 23、合并K个升序链表 32、最长有效括号 33、搜索旋转排序数组 23、合并K个升序链表 思路&#xff1a;采用顺序合并的方法&#xff0c;用一个变量 ans 来维护以及合并的链表&#xff0c;第 i 次循i 个链表和 ans合并&#xff0c;答案保存到 ans中。 代码&#xff1a; …...

电力监控仪表主要分类

电力监控仪表是电工仪表行业的一个新兴、细分行业&#xff0c;类别属于安装式数字仪表&#xff0c;从模拟指针式仪表和电量变送器演变而来。随着计算机技术的发展&#xff0c;电力监控仪表已应用到电力系统的发、输、变、配、用的各个环节&#xff0c;实现对电网电参量的测量、…...

山野户外定位依赖GPS或者卫星电话就能完成么?

每当有驴友失联的新闻报道&#xff0c;很多的户外“老鸟”和“菜鸟”都在讲&#xff1a;为什么不带卫星电话&#xff0c;不带GPS……云云&#xff01;提一个小小的问题&#xff1a;如果你拿着卫星电话、GPS或者其他即时通信的其他设备&#xff0c;你就能准定位你所处的位置么&a…...

SAP 应收应付重组配置

应收应付重组是为了使资产负债表真实的反映资产及负债的真实情况&#xff0c;需要对应收、应付账款的余额时行实际调整。即将“应收账款”的贷方余额和“应付账款”的借方余额分别调整至“预收账款”与“预付账款”账户中。 应收应付重组SAP系统是按照公司代码、客户/供应商、…...

算法练习(八)计数质数(素数)

1、问题描述&#xff1a; 给定整数 n &#xff0c;返回 所有小于非负整数 n 的质数的数量 。 2、示例如下&#xff1a; 3、代码如下&#xff1a; 第一种&#xff1a;比较暴力的算法 class Solution {public int countPrimes(int n) {int count1;if(n<2) return 0;for(in…...

用反射模拟IOC模拟getBean

IOC就是spring的核心思想之一&#xff1a;控制反转。这里不再赘述&#xff0c;看我的文章即可了解&#xff1a;spring基础思想IOC其次就是java的反射&#xff0c;反射机制是spring的重要实现核心&#xff0c;今天我看spring的三级缓存解决循坏引用的问题时&#xff0c;发现一个…...

【Ap AutoSAR入门与实战开发02】-【Ap_s2s模块01】: s2s的背景

总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 1 s2s的背景?2 AUTOSAR 方法应支持车辆的无缝开发2.1 面向服务的ECU的解读2.2 面向信号的ECU的解读2.3 通过网关ECU实现转换1 s2s的背景? Cp AutoSAR基于传统的can,lin,flexray总线的通信,一般是面向信号设…...

C语言数据结构(3)----无头单向非循环链表

目录 1. 链表的概念及结构 2. 链表的分类 3. 无头单向非循环链表的实现(下面称为单链表) 3.1 SListNode* BuySListNode(SLTDateType x) 的实现 3.2 void SListPrint(SListNode* plist) 的实现 3.3 void SListPushBack(SListNode** pplist, SLTDateType x) 的实现 3.4 voi…...

Android 实现菜单拖拽排序

效果图简介本文主角是ItemTouchHelper。它是RecyclerView对于item交互处理的一个「辅助类」&#xff0c;主要用于拖拽以及滑动处理。以接口实现的方式&#xff0c;达到配置简单、逻辑解耦、职责分明的效果&#xff0c;并且支持所有的布局方式。功能拆解功能实现4.1、实现接口自…...

个人做网站的注意事项/网站上做推广

nacos 不好用&#xff0c;可以借用一下pig的 nacos 添加链接描述...

贵阳建设企业网站/百度官网认证申请

人生苦短&#xff0c;我用python 若想利用python删除windows里的文件&#xff0c; 这里需要使用os模块 那接下来就看看利用os模块是如何删除文件的吧~ 具体实现方法如下&#xff01; 更多学习资料:点击此处跳转文末名片获取 os.remove(path) 删除文件 path. 如果path是一…...

阿里云的云服务器做网站用哪种/百度推广总部客服投诉电话

如果懂位的运算&#xff0c;看到下面这2个程序执行的结果&#xff0c;会很容易理解&#xff0c;如果像我这样的菜鸟&#xff0c;刚接触开始肯定也觉得晕晕的&#xff0c;| 这是什么运算符&#xff1f; |就是位的或运算符&#xff0c;下面还是用上面的程序来讲解一下&#xff0c…...

深圳做针织衫服装的网站/以品牌推广为目的的广告网络平台

【题目描述】 【代码思路】这又是一个深度优先的例子&#xff0c;先解读一下题干&#xff0c;其实就是想从左至右的找到一颗树的所有叶结点&#xff0c;而遍历一棵树的所有结点&#xff0c;有深度优先和广度优先&#xff0c;这道题显然是深度优先更合适&#xff0c;因为广度优先…...

东莞网站建设优化东莞/正规拉新推广平台有哪些

序言&#xff1a; 1.本文摘自网络&#xff0c;看控件命名像是4.0以前的版本&#xff0c;但控件属性配置仍然可以借鉴&#xff08;不足之处&#xff0c;以后项目用到时再续完善&#xff09;。 Ext.form.TimeField: 配置项&#xff1a; maxValue&#xff1a;列表中允…...

吉林长春有做网站的吗/万能推广app

原文地址:http://casatwy.com/iosying-yong-jia-gou-tan-wang-luo-ceng-she-ji-fang-an.html iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 动态部署方案 iOS应用架构谈 本地持久化方案前言 网络层在一个App中也是一个不…...