SQL语句总结

    xiaoxiao2021-04-16  35

    说明,本文章以数据库名为dbname为例,表名tabname为例,列名,id,username,password create_time(创建时间)

    查询某个表今天的数据

    select * from tabname where to_days(create_time) = to_days(now());

     

    查询某个表24小时内的数据(不能认为是昨天的数据,不准确)

    select * from pcm_tf_stock where to_days(now()) - to_days(create_time) <= 1

     

    查询某个表本周的数据

    SELECT * FROM tabname WHERE YEARWEEK( date_format( create_time,'%Y-%m-%d' ) ) = YEARWEEK( now() ) ;

     

    查询某个表本月的数据

    SELECT * FROM tabname WHERE DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) ,'%Y%m' )

     

    查询某个表上一月的数据

    SELECT * FROM tabname WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( create_time, '%Y%m' ) ) =1

     

    查询某个表今年的数据

    SELECT * FROM tabname WHERE YEAR( create_time ) = YEAR(NOW())

     

    查询某个表去年的数据

    select * from tabname where year(create_time)=year(date_sub(now(),interval 1 year));

    查询某个表昨天的数据

    SELECT * FROM pcm_tf_stock WHERE TO_DAYS( NOW( ) ) - TO_DAYS( create_time) = 1

     

    查询某个表本季度的数据

    select * from tabname where QUARTER(create_time)=QUARTER(now());

    查询某个表上个季度的数据

    select * from pcm_tf_stock where QUARTER(create_time)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

     

    查询距离当前现在6个月的数据

    select * from pcm_tf_stock where create_time between date_sub(now(),interval 6 month) and now();

     

    #查询日期最近的十条数据

    SELECT * from tabname ORDER BY create_time desc LIMIT 10

    #查询日期最近的第十条数据到第二十条数据

    SELECT * from tabname ORDER BY create_time desc LIMIT 10,20

     

    #查询日期最后十条数据

    SELECT * FROM tabname order by pk_id DESC limit 10;

     

    #查询日期随机十条数据

    select * from tabname order by rand() limit 10;

     

    #查询同一时间段但不同日期的数据

    select * from tabname where create_time>='2017-10-22' and create_time<='2017-10-27' and DATE_FORMAT(create_time, '%T' )>='08:00:00' and DATE_FORMAT(create_time, '%T' )<='24:00:00';

     

    #查询非空数据

    SELECT * FROM tabname WHERE birthday <>''

     

    #查询空数据

    select * from tabname where birthday is null;

     

    #查询结果不显示重复记录

    SELECT DISTINCT creator FROM tabname

     

    #查询该表有多少条记录

    SELECT COUNT(*) FROM tabname

     

    #求和

    select sum(field1) as sumvalue from tabname

     

    #平均:

    select avg(field1) as avgvalue from tabname

     

    #最大

    select max(field1) as maxvalue from tabname

     

    #最小

    select min(field1) as minvalue from tabname

     

    #模糊查询

    select name as "姓名" from tabname where name like 'zhou%';

     

    #查询某个字段在某个列表的数据

    select * from crm_tf_user where code in (10000030,10000022);

     

    #查询某个字段在某个区间的数据

    select * from tabname where score between 80 and 100;

     

    #查询某个字段(username)重复的数据

    #where字句在聚合前先筛选记录

    #having子句在聚合后对组记录进行筛选

    select *,count(*) as ct from tabname GROUP BY username HAVING ct > 1

     

     

    #查询某一个表的字段和数据类型 --只改tabname就行

    select column_name,data_type from information_schema.columns

    where table_name = 'tabname '

    修改

    #增加一个列

    Alter table tabname add column addColumn type

    #去掉列test

    alter table tabname drop column test;

    #修改列username默认值

    alter table tabname alter username set default 'wz';

    #去掉username默认值

    alter table tabname alter username drop default;

    #修改表中某个字段的名字

    alter table tabname change username name VARCHAR(200);

    #使用旧表创建新表

    create table user_new like user_old

     

     

    #修改表名

    alter table user rename user_new;

     

    #删除如果存在的表

    drop table if exists student;

     

    #删除主键--其中主键不能为自增。自增删除不了

    ALTER TABLE user_old DROP PRIMARY KEY

     

    #添加主键--主键字段里的值不能重复

    ALTER TABLE user_old ADD PRIMARY KEY(`username`);

     

    索引

    #给表的某个字段创建唯一索引

    create unique index mobileIndex on crm_tf_user(mobile);

    #删除索引

    drop index mobileIndex on crm_tf_user

     

    1.基本sql语法:

    创建数据库

    --dbname 数据库名

    create database dbname;

    显示创建数据库的语句 show create database dbname;

    删除数据库

    drop database dbname;

    使用数据库

    use dbname;

    说明:对数据库进行增删改查之前需先指明使用使用哪个数据库

    创建表tabname,并设id为主键

    create table tabname(

    id int primary key,

    username varchar(20) not null,

    studentno varchar(20) not null,

    password varchar(20) not null

    );

    外键情况:

    create table tabname2(

    id int primary key,

     

    create table tabname2(

    id int primary key,

    studentid int,

    course varchar(20) not null,

    score int,

    foreign key(studentid) references tabname(id)

    );

     

     

     

    显示所有数据库 :

    show databases;

     

    显示某个表创建时的全部信息 :

    show create table tabname2;

     

    显示当前数据库中所有表的名称。 show tables或show tables from tabname2;  

    插入数据(增)

    insert into tabname(id,username,studentno,password) values(1,'wz','10001','123');

     

    查询所有数据(查)

    select * from tabname;

    限制查询范围:

    select * from tabname where username = 'wz';

     

     

    更新数据(改)

    update tabname set password = 123456 where id = 1;

     

     

    删除数据(删)

    delete from tabname  where username ='wz';

     

    增加列名:

    --sex列名,varchar(20)数据类型

    alter table tabname add sex varchar(20);

     

     

    2.其他sql语句

    显示mysql字符编码:

    show variables like 'character%';

    --聚集函数,as后的字段名为自定义查询列名

    查询表中的记录数:select count(*) as totalcount from tabname2;

    查询某人的总分:select sum(score) as sumvalue from tabname2 username ='wz';

    查询某人的平均分:select avg(score) as avgvalue from tabname2 username ='wz';

    查询某人最高分:select max(score) as maxvalue from tabname2 username ='wz';

    查询某人的最低分:select min(score) as minvalue from tabname2 where username ='wz';

     

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-672889.html

    最新回复(0)