MySQL

本篇博客不算是新手教程或者是什么mysql语句整理大全,所有列出的语句都是我自己不怎么熟或者不会的。。。有这么多QWQ

mysql -u root -p password;从cmd进入数据库
\q / exit /quit;从cmd退出数据库
\G打印表时按行打印(加在打印语句末尾)
use diyun_db选择要操作的数据库
show warnings查看警告信息
show create database/table name显示创建时的完整语句
show databases [like ‘pattern’|where expr]列出数据库列表
show indexs from article_tbl显示数据表的详细索引信息
show table status from db_name [like ‘%pattern%’]输出Mysql数据库管理系统的性能及统计信息
create database [if not exists] db_name [character set charset_name]创建数据库
alter database db_name [character set charset_name]修改数据库
drop database [if exists] db_name删除数据库
select version()/now()/user()/database()显示当前服务器版本/当前日期时间/当前用户/当前数据库
create table [if not exists] table_name(
column_name data_type [default value] [unsigned] [null|not null] [auto_increament[=startNumber]] [primary key] [unique key] [comment],
……
[foreign key(column) references ref_tbl_name(column) [on delete cascade|set null|restrict]]
) [engine=InnoDB] [default CHARSET=utf8]
创建数据表:默认值,无符号,非空,自增,主键,唯一约束,备注/外键约束(并设置父表删除时的相应选项)
show tables [from db_name] [like ‘pattern’|where expr]查看数据表
show columns from tbl_name查看数据表结构
alter table tbl_name add|modify col_name [column_definition] [first|after col_name]修改数据表(添加单列|修改列定义)
alter table tbl_name change old_name new_name [column_definition] [first|after col_name]修改列名称
alter table tbl_name rename [to|as] new_tbl_name 数据表更名
alter table tbl_name add primary key(id );添加主键
create table tbl_name .. select .. 创建数据表的同时将查询结果写入到数据表
TODO
avg取平均数
count个数
sum求和
max/min最大/最小
concat(a,b,c)连接字符串
concat_ws(‘|’,b,c)指定分隔符连接字符串
format(num,保留小数位)数字格式化
upper/lower大小写转化
left(string,num)返回string的左num个字符
right()返回右边字符
length()字符串长度
ltrim()/rtrim()/trim()去除前/后/前后空格
trim(leading/trailing/both ‘?’ from ‘??lalala??’ )去除字符串前/后/前后指定字符
substring(,,)字符串截取(MySQL中索引从1开始!此处可以为负数,表明从后面开始数)
replace(‘??lala??lala??’,’?’,’!’)字符串替换(示例将所有’?’转化为’!’)
ceil()/floor()/round(num[,保留位数])向上/向下/四舍五入取整
mod取余
power(3,3)幂运算(例为3^3得27)
truncate数字截取(正数代表截取小数,负数代表截取整数部分,如truncate(23.12,-1)=20)
now()=curdate()+curtime()当前日期和时间
data_add(date,interval 1 day/week/year)返回增加过后的日期(为负值则减少)
datediff()日期差值
date_format日期格式化(%Y%m%d %H%i%s:年月日 时分秒)
md5()信息摘要算法

语句作用例子
group by {col_name | position} [asc | desc] [having condition]查询结果分组(将指定重复项合并,并返回组名),having语句筛选分组SELECT type,count(type) FROM `article_info` GROUP BY type; 查询type的种类及相应个数
ANY/SOME/ALL任意/任意/所有(子查询关键字,在子查询返回数量大于1时必须使用,其中ANY=SOME)select count(*) from class1 where age>ANY(select age from class2 ) //查询class中age大于class2中最小age的数量
inner join/left join/right join/full join db_name on {condition}(交集/左表全部/右表全部/并集)以一定条件关联两张或多张表(两张以上只需要再加一个join语句),可用于select,update,delete语句中update command_content c,message m set c.CONTENT=m.COMMAND where c.ID=m.ID

select column from table
select distinct column from table //distinct关键字去除重复行
select column from table where column in(value1,value2) //in确定一个集合,也可用于in(子查询)

关联两个表,left join返回COMMAND全部,on在临时表生成前生效,对COMMAND不进行筛选,
where在临时表之后生效,对COMMAND也会进行筛选。其中对两张表起了别名:a,b,
对a.ID起了别名C_ID(mybatis)
select a.ID C_ID,a.Name,a.DESCRIPTION,b.ID,b.CONTENT,b.COMMAND_ID
from COMMAND a left join COMMAND_CONTENT b on a.ID=b.COMMAND_ID

union/union all :合并查询结果,前者忽略重复项

update cus_info set status= case when status=’1’ then ‘2’ else ‘1’ end where id=#{id} //status为1改为2,status为2改为1

未完待续。。。。。。

insert into table(column) values(value);
insert into table set column={value};
insert into A(col_A) SELECT col_B from B //从B表中查询数据插入到A表中
insert ignore //使得主键冲突时不报错,这样可以定义自己的异常,而不是产生sql的异常。

delete a from message as a left join (select * from message group by COMMAND having count(COMMAND)>=2) as b on a.COMMAND=b.COMMAND where a.ID>b.ID;
//删除表中重复的COMMAND

jdbc相关

java.sql.Statement.getGeneratedKeys():获取自增主键值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值