mysql等价语句是_Mysql基本语句(个人笔记)
发布日期:2021-06-24 17:45:44 浏览次数:2 分类:技术文章

本文共 4702 字,大约阅读时间需要 15 分钟。

mysql基本操作语句

1 数据库的基本操作

create database doem default charset utf8; -- 创建数据库 字符编码 utf8

show database; -- 查询数据库

show create database doem; -- 查询某个数据库的结构

use doem; -- 选择使用doem数据库

drop database doem; -- 删除doem数据库

2 表的操作

show tables; -- 显示所在操作数据库中的表

drop table tb_doem -- 删除表

create table tb_doem( -- 创建表

did int primary key auto_increment,-- auto_increment 自动增长

dname varchar(20)

);

show create table tb_doem; -- 显示构造表语句

desc tb_doem;   -- 显示表结构

alter table tb_doem add phone varchar(20) not null; -- 给表添加一个字段phone

alter table tb_doem drop phone; -- 删除字段phone

alter table tb_doem modify phone int; -- 修改字段phone类型

alter table tb_doem change phone dianhua int; -- 修改字段名及字段类型

drop table tb_doem; -- 删除表

3 操作数据语句

insert into tb_doem(dname) values('b'); -- 插入数据

update tb_doem set dname='b' where did=1; -- 修改数据

delete from tb_doem where did=1; -- 删除数据

select * from tb_doem; -- 查询所有字段数据

select distinct bname from tb_doem where dname='b' -- 去重复bname的数据;

逻辑条件: and or

比较条件:< , <=, >, >=, <>, between value1 and value2

判断空:判断null: is null 判断空字符串: ="" / <>""

模糊条件:like %:替换任意长度字符 _:替换单个字符

分页查询,limit 起始行,查询行数

原文:https://www.cnblogs.com/ahang/p/5644535.html

代码示例:

语句1:select * from student limit 9,4

语句2:slect * from student limit 4 offset 9

// 语句1和2均返回表student的第10、11、12、13行 ,第一个参数表示从该参数的下一条数据开始,第二个参数表示每次返回的数据条数。

//语句2中的4表示返回4行,9表示从表的第十行开始

例2,通过limit和offset 或只通过limit可以实现分页功能。

假设 pageSize表示每页要显示的条数,pageNumber表示页码,那么 返回第pageNumber页,每页条数为pageSize的sql语句:

代码示例:

语句3:select * from studnet limit (pageNumber-1)*pageSize,pageSize

语句4:select * from student limit pageSize offset (pageNumber-1)*pageSize

在java中计算pageSize和offset

48304ba5e6f9fe08f3fa1abda7d326ab.png

//每页显示的条数,做为接口参数传入

int pageSize = 10;

//总的条数,从数据库中查询

int totalCount;

//总页数

double tp= count / (double)pageSize;

int totalPage = (int) Math.ceil(tp);

int offset = (page-1) * pageSize;

48304ba5e6f9fe08f3fa1abda7d326ab.png

排序:order by 字段 asc/desc asc:升序 desc:降序

分组:group by 字段

外键:foreign key(rid) references tb_role(rid)

原文出处:https://www.cnblogs.com/wlzjdm/p/6953398.html

1 日期类型

MySql中关于日期的类型有Date/Datetime/Timestamp三种类型。

日期赋值时,允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00

1.1 Date格式

此类型的字段,存储数据格式为:YYYY-MM-DD,它支持的范围为'1000-01-01'到'9999-12-31',并且允许使用字符串或数字为此列复制。

例如,日期格式的字段crt_date,通过字符串和数字复制后的结果如下:

update sys_tables set crt_date = 12331212 where table_name = 'sys_dict';

update sys_tables set crt_date = '1233-12-12' where table_name = 'sys_dict_item';

b8accc3f6d3d771d79cc0b31902a75d7.png

1.2 Datetime格式

日期和时间的组合,存储格式为:YYYY-MM-DD HH:MM:SS,它支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59',并且允许使用字符串或数字进行分配值。

例如:

update sys_tables set crt_date = 12331212121212 where table_name = 'sys_dict';

update sys_tables set crt_date = '1233-12-12 12:12:12' where table_name = 'sys_dict_item';

f43ce252c436660359baea8f73688073.png

1.3 TimeStamp格式

这是时间戳,从1970-01-01 00:00:00到当前的时间差值(注意:当你在Java中输出[new Date(0)] 的时候,输出的是:Thu Jan 01 08:00:00 CST 1970,这是因为时区的概念,中国是东八区,所以对应的是早上八点),它精确到毫秒级别,范围为:1970-01-01 00:00:00 到 2037年(参考2038年问题),当值大于2037年就会抛出: [Error Code: 1292, SQL State: 22001]  Data truncation: Incorrect datetime value: '20381212121212' for column 'crt_date' at row 1。设置值时只允许设置数字类型的值。

在为TimeStamp类型字段赋值的时候,值必须大于19700101000000,否则就会抛出: [Error Code: 1292, SQL State: 22001]  Data truncation: Incorrect datetime value: '10831212121212' for column 'crt_date' at row 1。

例如:

update sys_tables set crt_date = 20081212121212 where table_name = 'sys_dict';

56da7ebaa3f9198d908cf2bb9d5b2c7d.png

2 时间类型

MySQL中时间类型用Time表示。

2.1 Time格式

MySQL以'HH:MM:SS'格式检索和显示TIME值(或对于大的小时值采用'HHH:MM:SS'格式)。TIME值的范围可以从'-838:59:59'到'838:59:59'。小时部分会因此大的原因是TIME类型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个事件过去的时间或两个事件之间的时间间隔(可以大于24小时,或者甚至为负)。

格式说明:

'D HH:MM:SS.fraction'格式的字符串。还可以使用下面任何一种“非严格”语法:'HH:MM:SS.fraction'、'HH:MM:SS'、'HH:MM'、'D HH:MM:SS'、'D HH:MM'、'D HH'或'SS'。这里D表示日,可以取0到34之间的值。请注意MySQL还不保存分数。

'HHMMSS'格式的没有间割符的字符串,假定是有意义的时间。例如,'101112'被理解为'10:11:12',但'109712'是不合法的(它有一个没有意义的分钟部分),将变为'00:00:00'。

HHMMSS格式的数值,假定是有意义的时间。例如,101112被理解为'10:11:12'。下面格式也可以理解:SS、MMSS、HHMMSS、HHMMSS.fraction。请注意MySQL还不保存分数。

函数返回的结果,其值适合TIME上下文,例如CURRENT_TIME。

超出TIME范围但合法的值被裁为范围最接近的端点。例如,'-850:00:00'和'850:00:00'被转换为'-838:59:59'和'838:59:59'。

3 年类型

MySQL中用year表示年类型

MySQL以YYYY格式检索和显示YEAR值。范围是1901到2155。

可以指定各种格式的YEAR值:

四位字符串,范围为'1901'到'2155'。

四位数字,范围为1901到2155。

两位字符串,范围为'00'到'99'。'00'到'69'和'70'到'99'范围的值被转换为2000到2069和1970到1999范围的YEAR值。

两位整数,范围为1到99。1到69和70到99范围的值被转换为2001到2069和1970到1999范围的YEAR值。请注意两位整数范围与两位字符串范围稍有不同,因为你不能直接将零指定为数字并将它解释为2000。你必须将它指定为一个字符串'0'或'00'或它被解释为0000。

函数返回的结果,其值适合YEAR上下文,例如NOW()。

非法YEAR值被转换为0000。

4 日期兼容性问题

MySQL服务器采用了Unix的时间功能,对于TIMESTAMP值,可处理的日期至2037年。对于DATE和DATETIME值,可接受的日期可至9999年。

所有的MySQL日期函数均是在1个源文件sql/time.cc中实现的,并经过了恰当编码以确保2000年安全。

在MySQL 3.22和以后的版本中,YEAR列类型能够在1个字节内保存0年以及1901~2155年,并能使用两位或四位数字显示它们。所有的两位数字年份均被视为介于1970~2069年之间,这意味着,如果你在YEAR列中保存了01,MySQL服务器会将其当作2001年。

转载地址:https://blog.csdn.net/weixin_34214135/article/details/113462906 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:go var type 互转_Go语言学习笔记(第九章) 结构体
下一篇:mysql sql decode函数用法_SQL查询中DECODE函数和CASE WHEN 比较

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月23日 04时53分03秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【人生杂谈】生命DNA/理性思维/天才&神经病 2019-04-28
Intel 64/x86_64/IA-32/x86处理器段寄存器 - 32位段寄存器/64位段寄存器 2019-04-28
Intel 64/x86_64/IA-32/x86处理器 - 通用指令(1) - 数据传输指令 2019-04-28
Intel 64/x86_64/IA-32/x86处理器 - 通用指令(2) - 二进制算术指令/十进制算术指令 2019-04-28
Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令 2019-04-28
【英语学习】【Daily English】U02 Daily Routine L04 It's your turn to do the chores 2019-04-28
【英语学习】【WOTD】prestigious 释义/词源/示例 2019-04-28
【英语学习】【WOTD】emote 释义/词源/示例 2019-04-28
【英语学习】【WOTD】obsequious 释义/词源/示例 2019-04-28
【英语学习】【Daily English】U03 Leisure Time L01 Did you have a nice weekend? 2019-04-28
【英语学习】【WOTD】minion 释义/词源/示例 2019-04-28
【英语学习】【WOTD】sentient 释义/词源/示例 2019-04-28
【网络】SSH本地/远程/动态端口转发 2019-04-28
【英语学习】【WOTD】two-bit 释义/词源/示例 2019-04-28
【英语学习】【WOTD】encroach 释义/词源/示例 2019-04-28
【英语学习】【Daily English】U07 Restaurant L03 What do you recommend? 2019-04-28
【英语学习】【WOTD】smithereens 释义/词源/示例 2019-04-28
【英语学习】【WOTD】parabolic 释义/词源/示例 2019-04-28
【Python】【Python语言】Python3.7.2的关键字与保留字 2019-04-28
【英语学习】【WOTD】sashay 释义/词源/示例 2019-04-28