文章插图
文章插图
建库建表
drop database if exists jbxx;create database jbxx;use jbxx;create table grjbxx(ryid int auto_increment not null primary key,sfzh varchar(50) not null,hbh varchar(50) not null,xm varchar(50) not null,xb varchar(4) not null,mz varchar(50) not null,csrq date not null,hj varchar(50) not null,zz varchar(50) not null,lxdh varchar(20) not null,gmt_create datetime not null default current_timestamp);insert into grjbxx(sfzh,hbh,xm,xb,mz,csrq,hj,zz,lxdh) values('37032219000101001x','3703220105','张三','男','汉族','1900-02-05','山东高青','高青县*小区*号楼*单元*户号','1390000000');select * from grjbxx;查询xm的分组统计情况
SELECT xm,count(*) from grjbxx group by xm;
只显示xm重复行的统计情况
SELECT xm,count(*) from grjbxx group by xm having count(*)>1;
显示xm重复的所有记录信息
SELECT * from grjbxx where xm in(SELECT xm from grjbxx group by xm having count(xm)>1);
显示sfzh重复的所有记录信息
SELECT * from grjbxx where sfzh in(SELECT sfzh from grjbxx group by sfzh having count(sfzh)>1);
删除表中多余的sfzh重复记录,重复记录是根据单个字段(sfzh)来判断,只留有ryid最大的记录
delete from grjbxxwhere sfzh in(SELECT sfzh from grjbxx group by sfzh having count(sfzh)>1)and ryid not in(select max(ryid) from grjbxx group by sfzh having count(sfzh)>1);数据库修改
use mytest;--打开mytest数据库SELECT * from stu;--查询STU表全部记录ALTER TABLE stu MODIFY gmt_modified datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP; --修改gmt_modified字段非空,更新时自动更新ALTER TABLE stu MODIFY gmt_modified datetime NOT NULL;--修改gmt_modified字段非空ALTER TABLE stu change gmt_create gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP; --修改gmt_create是datetime类型,非空,默认值自动时间desc stu;--显示stu表结构UPDATE stu set gmt_modified='2018-08-01 01:59:01';--更新所有的gmt_modified的值truncate stu;--清空stu表,仅保留数据结构合并多行数据到一行,hbh相同的合并到一行
SELECT hbh,count(xm) as 人数 ,GROUP_CONCAT(xm) as 成员 from grjbxx GROUP BY hbh;
查询前5条记录
select * from grjbxx LIMIT 5;
统计多个数据,利用虚拟表dual显示
SELECT(SELECT count(DISTINCT sfzh) from grjbxx) 总人数, (SELECT count(DISTINCT sfzh) from sb where sblb='01') 社保 from DUAL;查询date字段日期范围内的记录,表示 1980-01-01 00:00:00 –1999-12-31 00:00:00,两个边界都包括,这段时间范围的记录,
select * from grjbxx WHERE csrq BETWEEN ‘1980-01-01’ and ‘1999-12-31’;
查询一段时间内的记录
select * from grjbxx WHERE gmt_create >=’2019-01-23 00:00:00′ and gmt_create<= ‘2019-01-23 14:53:06’;
日期转换
SELECT DATE_FORMAT(20140614162458,'%Y-%m-%d %H:%i:%s');SELECT DATE_FORMAT('2014-02-24','%Y-%m-%d %H:%i:%s');SELECT DATE_FORMAT('2014-02-24','%Y-%m-%d')SELECT str_to_date('2014-02-24','%Y-%m-%d')SELECT DATE_FORMAT(gmt_create,'%Y-%m-%d') from grjbxx;ORCAL 日期转换select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual使用substr函数查询,SUBSTR(str,pos,len)表示:从pos开始的位置,截取len个字符(空白也算字符) 。
SELECT * from grjbxx where substr(sfzh,1,6)=’370322′
REPLACE(str,old
- pdf文件合并免费软件 pdf合并软件免费下载
- sqlserver数据库连接字符串 sqlserver 字符串连接函数
- 系统分盘如何合并 系统盘分开后怎么合并
- 做表格的软件excel教程视频算数 做表格的软件excel教程合并单元格
- 怎么将几个pdf合并成一个 怎么把几个pdf文件合并成一个
- access数据库技术与应用教程 access数据库基础与应用教程
- MP3剪切合并大师 mp3剪辑合并大师
- 分段视频合并软件下载 分段视频合成器
- mysql的jar包在哪个文件里 数据库的jar包在哪里
- 音乐分割合并软件 切割音乐的软件