MySQL单表

MySQL-课程介绍

MySQL-概述

概述-数据模型

SQL简介

MySQL-DDL

-数据库操作

MySQL-DDL-图形化工具

DDL-表结构操作

-创建

-数据类型

tinyint默认为有符号的,想要无符号的一般要在后面加上unsigned例如tinyint unsigned

由于变长字符串varchar要根据实际长度存储,多了一步判断长度,所以性能比char低

像电话号这种固定长度的就可以使用char(11)

像名字这种长度不固定的就可以用varchar(20)

date只有年月日,datetime有年月日和时分秒

创建-案例

-查询&修改&删除

show tables只查询到了表名

desc 表名查询到了表的结构

show create table 表名查询到了表的设定语句

选中表 ctrl+b可以在图形化界面中查看这个表

MySQL-DML

-添加数据insert

指定字段添加数据,是指挑选几个属性给一组元素赋值

这就是为所有属性中的几个属性添加几组数据,每组数据之间要用逗号隔开

这个相当于给整表赋值

id是primary key元素不可以重复,又是自增元素,所以可以写成null,让系统自增

在id设置为null的情况下,重复运行相同的语句可以重复添加相同的数据

在指定字段添加元素时,空着的元素会变成null

在全部字段添加数据的时候不能不写数据,否则会报错

-修改数据update

不加where语句的时候会默认把全表都改了

-删除数据delete

查询和存储的写法是相反的,存储(insert update delete)都是要先找到表在哪里才能存储

查询是要先确定查询什么才能能到表里查

MySQL-DQL

-基本查询

去除重复记录,如果有重复的自动去掉

获取表中的几列元素

字段就是属性,也就是列

获取整表

要查询的字段之间要用逗号隔开

两种方法都可以,但是实际开发中要用第一种,因为第二种性能低,而且不直观

起别名

起别名时,别名中有空格的要用单引号引起来

去除重复

如果用普通方法查的话,会得到一堆重复的内容

这时候要获得不重复的内容,就要用distinct

-条件查询---统计横行where

判断有没有用is null(没有)is not null(有)
is不能用来判断是否,is后面只能加null或者是not null

判断相等=,不等!= <>,大于小于要用>= > <= <

不等于 != <>
占位符

判断名字有几位用_判断时不知道名字有几位用%

in( , , , ) 判断数据是否是括号内的值之一

-聚合函数---统计竖列count()

count统计

统计非null的值

min求最小值

max求最大值

字符串也是可以比较的

avg统计平均值

字符串无法求平均值

sum求和

字符串也无法求和

-分组查询group by

where后面不能使用count函数

要对count函数做条件判断要用having

先执行where,再执行group by,最后再执行having

where筛选出去的元素不会执行分组

-排序查询order by

-分页查询limit ,

limit限制每页展示的数据个数,防止加载数据时间过长以及用户使用体验不好

第一个数字表示索引,从索引0开始是指从第一个数据开始,从索引1开始是指从第二个数据开始

第二个数字表示展示个数

-案例

相关推荐
山峰哥34 分钟前
查询优化案例:从慢查询到闪电般的查询速度
数据库·sql·性能优化·编辑器·深度优先
杨云龙UP40 分钟前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
微学AI1 小时前
一款数据库SQL防火墙:可以拦截99.99%,可以阻止恶意SQL
数据库·sql
2401_884563241 小时前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
haixingtianxinghai2 小时前
Redis真的是单线程吗?
数据库·redis·缓存
FirstFrost --sy2 小时前
MySQL复合查询
数据库·mysql
imuliuliang3 小时前
MySQL的底层原理与架构
数据库·mysql·架构
尽兴-3 小时前
Redis7 底层数据结构解析
数据结构·数据库·缓存·redis7
m0_730115113 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
qq_410194293 小时前
SQL语句性能优化
数据库·sql·性能优化