一、统计语句

一.数据库的增删改查

 前言

1、–统计当前【>当天00点以后的数据】

1.新建数据库

转帖请注明出处: 

SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111)   ORDER BY dateandtime DESC
CREATE DATABASE 数据库名 charset utf8;

由于公司也有php+mysql的项目, 所以今天也把Mysql装了一遍.
为了与以前的程序和数据库兼容, 这次选择的是mysql
5.5.6的版本..真心想用mysql8啊…

2、–统计本周

数据库名规则:可以由字母、数字、下划线、@、#、$ 区分大小写,
不能使用关键字如 create select, 不能单独使用数字, 最长128位

和Oracle一样. 还是要用免费的啊…所以选择的是 MySQL Community Server
5.5.60

SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0

2.查看数据库

还是废话不多说..Just Do It!!!

3、–统计本月

show databases;
show create database 数据库名;

 

SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0

3.选择数据库

准备安装

4、统计当前

USE 数据库名;

由于CentOS7自带的是 Mariadb, 所以先来删除他吧…

SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0
Select * From table with(nolock) Where Convert(varchar(10),[CreateTime],120) = Convert(varchar(10),getDate(),120)

4.删除数据库

  1. 查找版本

    # rpm -qa|grep mariadb

二、时间函数

DROP DATABASE 数据库名;

执行命令后会出现类似 MariaDB-server-5.5.49-1.el7.centos.x86_64
之类的鬼..记住名字就行了..

1、当前系统日期、时间

5.修改数据库字符编码

 

select getdate() 
alter database 数据库名 charset utf8;
  1. 删除

    # rpm -e –nodeps 上面查出来的文件名

2、dateadd   在向指定日期加上一段时间的基础上,返回新的 datetime
值,例如:向日期加上2天

二.数据表的增删改查

 

select dateadd(day,2,'2004-10-15')   --返回:2004-10-17 00:00:00.000

1.创建表

  1. 删除配置文件

    # rm /etc/my.cnf

3、datediff 返回跨两个指定日期的日期和时间边界数

create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],......);

 

select datediff(day,'2004-09-01','2004-09-18')    --返回:17

注意:同一张表中字段名不能相同,字段名和类型必选,宽度和约束条件可选

到这里就OK了…现在我们开始安装mysql

4、datepart 返回代表指定日期的指定日期部分的整数

create table test(id int, name varchar(50),age int(3),sex enum('male','female'));

 

SELECT DATEPART(month, '2004-10-15')   --返回 10

表中插入数据

开始安装

5、datename 返回代表指定日期的指定日期部分的字符串

insert into test values(1,'tom',18,'male'),(2,'jerry',15,'female');

 1. 首先官方下载MySQL Community Server
5.5.60

SELECT datename(weekday, '2004-10-15')   --返回:星期五

2.查看表结构

图片 1

6、day(), month(),year() –可以与datepart对照一下

describe test;
show create table test\G; #查看表详细结构,可加\G显示

这里要选Linux – Generic哟.

select 当前日期=convert(varchar(10),getdate(),120),
select 当前时间=convert(varchar(8),getdate(),114),
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15'),
select 今天是周几=datename(weekday,'2004-10-15')

3.修改表结构

 

7、求相差天数

a.修改表名

  1. ftp上传到CentOS中
select   datediff(day,'2004-01-01',getdate()) 
ALTER TABLE 表名 RENAME 新表名;

图片 2

8、一个月第一天的

b.增加表字段

 

SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0) 
ALTER TABLE 表名 ADD 字段名  数据类型 [完整性约束条件…],ADD 字段名  数据类型 [完整性约束条件…]; #添加一个或多个字段
ALTER TABLE 表名 ADD 字段名  数据类型 [完整性约束条件…]  FIRST; #在最前面增加字段
ALTER TABLE 表名 ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名; #在某个字段后增加字段

alter table student add name varchar(20) not null,add age int(3) not null default 22;
alter table student add stu_num varchar(10) not null after name; 
alter table student add sex enum('male','female') default 'male' first; 
  1. 解压

    # tar -xvf mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz

9、本周的星期一

c.删除字段

 

SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),   0)  
select   dateadd(wk,datediff(wk,0,getdate()),6)  
ALTER TABLE 表名 DROP 字段名;

alter table student drop sex;
  1. 复制到local文件夹, 注意,这里前面mysql的文件夹最好使用 ls
    命令查看一下.

    # mv mysql-5.5.60-linux-glibc2.12-x86_64 /usr/local

10、一年的第一天

d.修改字段

 

SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)
ALTER TABLE 表名  MODIFY  字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

alter table student modify id int(11) not null primary key auto_increment; #修改id字段类型非空主键自动增长
alter table student modify id int(11) not null; #删除自动增长
alter table student drop primary key; #删除主键

 5. 修改文件夹名称, 注意文件夹名称哟..

11、季度的第一天

4.复制表

# cd /usr/local
# mv mysql-5.5.60-linux-glibc2.12-x86_64 mysql-5.5.60
SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)

复制表结构+记录 (不会复制: 主键、外键和索引)

 

12、当天的半夜

create table new_service select * from service;
  1. 修改my.cnf配置文件

    # vi /etc/my.cnf

SELECT   DATEADD(dd,   DATEDIFF(dd,0,getdate()),   0)

只复制表结构

将以下内容添加到my.cnf

13、上个月的最后一天

create table new1_service select * from service where 1=2; #设置条件为假使数据查不到只有结构
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
socket=/var/lib/mysql/mysql.sock

[mysqld]
skip-name-resolve
#设置3306端口
port = 3306 
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录, 这里的目录一定要是你解压后并且改了名的目录哟..
basedir=/usr/local/mysql-5.5.60
# 设置mysql数据库的数据的存放目录, 这里的目录一定要是你解压后并且改了名的目录哟..
datadir=/usr/local/mysql-5.5.60/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
SELECT   dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),   0))

5.删除表

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注