知识回顾

简介: 知识回顾

DDL数据定义语言,数据库操作

创建数据库,数据表

查看数据库  show databases;

创建数据库 create database db_xx charset utf8;

修改数据库字符集 alter database db_xx charset utf8;   Windows装的时候用gbk

查看数据库的创建信息 show create database db_xx;

切换使用数据库 use db_xx;

查看当前工作数据库 select database();

删除数据库 drop database db_xx;


DDL数据定义语言,数据表操作

数据表操作

查看当前数据库中有哪些数据表 show tables;

常见数据表 create table t_xx(id int(显示宽度) primary key auto_increment,name char(储存的字符数) unique,address varchar(50) default '北京',gender enum(‘男’,‘女’) not null, cid int,foreign key(cid) references t_xxx(id));

ID 用unsigned修饰一下,无符号,就是全是正的

zerofill 零填充的意思(长度不够的都补上0,而且指定了zerofill的话,该字段自动被认为是unsigned的)

varchar 变长字符串

外键要关联的字段类型必须一致 int(5),那么都是int(5)

查看数据表的创建信息 show create table t_xx;

show create table t_xx \G

查看表结构 desc t_xx;

改-增字段 alter table t_xx add new_f_xx ty_xx;

改-修改字段类型 alter table t_xx modify f_xx new_ty_xx;

改-修改字段名 (同时可以修改字段类型) alter table t_xx change old_f_xx new_f_xx new_ty_xx;

改-删除字段 alter table t_xx drop f_xx;

删除数据表 drop table t_xx;


DML数据操作语言

主要完成 对数据的CUD

先使用数据库

先去借助一个查询语句,用来验证结果select * from t_xx;

插入数据

为所有字段插入单条数据 insert into t_xx value(v1,v2,v3,.....);

value 和values的区别是插入单条或多条时效率不同,单条前面效率高

为指定字段插入数据,要注意值得顺序和类型要和给定字段匹配

insert into t_xx(f_xx,f_xx,...) values(v_1,v-2,...);

插入多条数据 insert into t_xx(f_xx,f_xx,...) values(v_1,v-2,...),(v_1,v-2,...),....;

insert into t_xx values(v_1,v-2,...),(v_1,v-2,...),....;

修改更新数据 update t_xx set f_xx = v_xx;   对整表操作

update t_xx set f_xx = v_xx where f_xx = v=xx;  满足条件的记录进行修改

删除数据

删除整表,不经过事务,会重置auto_increment 编号

truncate t_xx;

不会重置编号,可以放到事务操作中的删除指令

delete from t_xx;  默认整表操作

delete from t_xx where f_xx = v_xx;  删除满足条件的数据


DQL数据查询语言

只实现查询操作select

查询所有数据select * from t_xx;

查询指定字段的数据 select f_xx,f_xx,..... from t_xx;  先去获取数据,再查询

给字段起别名 select f_xx as a_xx, f_xx a_xx,...... from t_xx as t_a_xx;

表也可以起别名

as可以写可以不写

数据的去重 select distinct f_xx from t_xx;  单字段去重;

select distinct f_xx,f_xx,..... from t_xx;  多字段去重,只有所有指定的字段值都相同,才认为是重复数据

条件查询 select * from t_xx where f_xx 条件运算符 v_xx;

关系运算符 >  , <  ,>=  ,<= ,  =  , !=  ,<>

逻辑运算符  and,or ,not

模糊查询  like, % 任意多个字符 ,_任意单个字符

范围查询  非连续值 in(v1,v2,....), 连续值between ..  and ...

判断空   不能使用等于个不等于

只能使用 is null  和  is not null

not f_xx is null 效率要慢一点,两个运算符进行计算

排序  select * from t_xx order by f_xx asc;  单字段排序,默认是asc,可以不写

select * from t_xx order by f_xx desc; 降序

select * from t_xx roder by f_xx asc | desc, f_xx ase |desc,......;    |代表或者

先以第一个主排序字段进行排序,如果有相同使用下一个

分页 limit

select * from t_xx limit 起始索引,显示条数;

默认起始索引从0开始,可以不写

第n页的其实索引计算公式   (n-1) * count

聚合函数  sum()  avg()  min() max()  count()  group_concat()

count()可以写*强制统计空值,其他除了grope_concat()都统计的非空值

一般情况下,聚合函数要和分组配合使用

分组 group by

select f_xx,f_xx from t_xx group by f_xx,f_xx; 分组时使用了那个字段进行分组,那么就只能查询哪个字段

分组可以实现去重的作用,但是比distinct更加强大

select 后除了分组字段外,只能写聚合函数

分组筛选条件

select f_xx from t_xx group by f_xx having f_xx =v_xx;

where 和 having的区别

where一般先于分组执行,而having是后与分组执行,就是对分组后的数据进行筛选。

相关文章
|
6月前
|
存储 算法 Go
go语言中的延迟执行函数
【5月更文挑战第13天】`defer`是Go语言中用于延迟执行函数的关键字,尤其适用于资源管理,如文件关闭和锁的释放。它在函数返回前按照LIFO顺序执行,确保资源在任何返回路径下都能正确释放。`defer`可以拦截`panic`并在函数返回前执行,但无法阻止某些致命的`panic`。此外,`defer`可用于修改返回值、输出调试信息和还原变量值。尽管在某些场景下可能影响性能,但Go的优化使得其在多数情况下性能表现良好,特别是在资源清理方面。在Go 1.20及以后的版本,`defer`的性能已显著提升,尤其是在高计算量的场景下。
274 2
|
6月前
|
网络协议 Linux
Linux如何查询端口被占用?
在Linux环境中,查询端口占用可使用`netstat`、`lsof`和`ss`命令。`netstat -tulnp | grep 80`显示TCP/UDP监听端口,`lsof -i:80`列出使用80端口的进程,而`ss -tuln | grep 80`是`netstat`的现代替代选项。若需解决端口占用问题,先找出占用进程的ID,然后用`kill -9`命令终止它,或调整服务配置以避免冲突。
178 1
|
6月前
|
SQL 关系型数据库 MySQL
慢SQL(面试题)
慢SQL(面试题)
103 1
|
6月前
|
设计模式 程序员 测试技术
LabVIEW在面向对象编程中利用硬件抽象层(HAL)设计1
LabVIEW在面向对象编程中利用硬件抽象层(HAL)设计1
73 0
|
6月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进-论文笔记】RFAConv:感受野注意力卷积,创新空间注意力
【YOLO目标检测专栏】探索空间注意力局限,提出感受野注意力(RFA)机制,解决卷积核参数共享问题。RFAConv增强大尺寸卷积核处理能力,不增加计算成本,提升网络性能。已在YOLOv8中实现,详情见YOLO目标检测创新改进与实战案例专栏。
|
Docker 容器
Docker容器、镜像、TAR转换
Docker容器、镜像、TAR转换
172 0
|
6月前
|
SQL 存储 数据挖掘
Serverless数据仓库实践,助力企业敏捷数据分析
现代的云原生数据仓库架构传统的云数据仓库需要用户购买一个预置的数据资源进行7*24的长时间运行;这种方式对于当下崇尚敏捷创业者来说使用负担较大,对于探索类或成长型业务缺少灵活的使用模式以满足低成本数据分析诉求;随着这个问题被越来越多的企业关注,Serverless的使用方式开始逐渐被各大厂商提及,B...
Serverless数据仓库实践,助力企业敏捷数据分析
|
机器学习/深度学习 人工智能 自然语言处理
国科大抢课避坑+选课指南+教务系统操作
国科大抢课避坑+选课指南+教务系统操作
725 0
国科大抢课避坑+选课指南+教务系统操作
|
Android开发
ndk-build.cmd‘‘ finished with non-zero exit value 2
ndk-build.cmd‘‘ finished with non-zero exit value 2
661 0
ndk-build.cmd‘‘ finished with non-zero exit value 2