mysql与sql语句
mysql
mysql数据类型
varchar:变长字符串
char:定长字符串
int:
bigint:long
data:短日期类型
datetime:长日期类型
clob:长字符串,存文章
blog:图片、视频、声音等流媒体数据,这时插入需用IO流。
创建表:
creat table student(
no int,
name varchar(32),
age int(3),
sex char(1),
email varchar(255)
);
删除表:
drop table student;不存在报错
drop table student if exists;
SQL语句
以分号;结尾
不区分大小写
增删改简单,查最麻烦,尤其是联表查询。
简单查询
查询一个字段:
select 字段名 from 表名
查询两个字段,使用逗号,隔开:
select 字段1,字段2 from 表名
查询所有字段:
select * from 表名
给列起别名
字段可以用数学表达式,名称变得奇怪所以需要起别名。别名有中文、空格时用单引号括起来。
使用as关键字,可以省略,用空格替代
select 字段1as new_name_1,字段2 as new_name_2 from 表名
条件查询
select ... from ... where 条件
条件包括
like模糊查询:
%匹配任意个字符
_ 匹配一个字符
排序
默认升序排列:
select ... from ... order by ... (asc);
降序:
select ... from ... order by ... desc;
多字段排序:排序优先级,先按照字段1升序,字段1中一致的话按照字段2降序。
select ... from ... order by ... (asc),... desc;
单行处理函数
lower
upper
substr
length
rand
format
round
ifnull
分组函数(多行处理函数,输入多行,输出一行)
先分组,组内使用分组函数,未分组默认一组。
count()
avg()
max()
min()
sum()
分组查询
先对数据进行分组,再对每一组进行查询。
关键字的执行有顺序:
1.from
2.where
3.group by
4.select
5.order by
select ... from ...group by ... ;
分组函数不能在where后使用。因为此时数据还未分组,所以无法使用分组函数。
数据去重
使用distinct关键字,出现在所有字段最前方,无法给多个字段中的某个单独使用,给多个字段同时使用,相当于联合去重,单字段可能重复。
select distinct ... from ...;
连接查询/联表查询
连接方式:
内连接:等值连接、非等值连接、自连接
外连接:左连接、右连接
全连接(没讲)
删除表
delete from 表名where...;
不加where删除全部。
插入数据
insert into 表名(字段名1,字段名2,字段名3。。。)values(值1,值2,值3);
插入多条数据insert into 表名(字段名1,字段名2,字段名3。。。)values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
字段数量与值数量要对应,数据类型也要一一对应。字段名若省略相当于全选。
插入成功则多一条数据,若数据只有某些字段,其他位置默认未null
因此建表的时候可以考虑给某些字段设置默认值。
类型匹配:传入的数据为数字或字符串,需要转成建表时指定的数据类型(数据库有自己的数据类型),使用单行处理函数进行类型转换,例如使用str_to_data将”1-12-1990“转成data类型才能插入成功。sql默认日期格式为%Y-%m-%d,传入1996-10-1则无需转换,查询时也是默认以%Y-%m-%d进行格式化并显示。
自己可以指定显示格式,如%m/%d/%Y。使用方法data_format(birth,'%m/%d/%Y')
修改/更新数据
update 表名 set 字段1=值1 字段2=值2... where ...;
不写条件,默认全部更新。
update t_user set name="jack" birth="2000-10-11" where id =2;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下