刚开始学数据库的时候,遇到不会的就去百度,后面慢慢总结了些常用的语句,分享出来,也当是给自己留个笔记,没事建个表查一查,还是挺有意思的呀
1.修改表名
rename table name1 to name2;
2.修改字符编码
alter table t_user_friend convert to character set utf8;
3.修改某个字段类型
alter table tablename modify 字段 字段类型;
4.查看数据库编码
使用 show variables like 'character%' 查看数据库的编码
5.将某个字段设置为主键
alter table phone add primary key(id);
6.修改一个字段
alter table user MODIFY new1 VARCHAR(10); //修改一个字段的类型
alter table user CHANGE new1 new4 int; //修改一个字段的名称,此时一定要重新指定该字段的类型
7.增加一个字段
alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认为空
alter table user add COLUMN new2 VARCHAR(20) NOT NULL; //增加一个字段,默认不能为空
alter table tableName add newColumn varchar(8) comment ""; //增加一个字段带注释
8.删除一个字段
alter table user DROP COLUMN new2; //删除一个字段
mysql> insert into phone(id,PhoneName,PhoneModel,ScreenSize,category,PhoneSystem,size,owner) values(58,"iphone","iphone6","","ios","ios10","","李三思 ");
9.删除某条数据
Delete from tablename where id=2;
10.更新某条数据的值
update phone set size="1920*1080" where id=2;
11.修改字段名
alter table phone change res ScreenSize varchar(50);
12.修改字段位置
ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST | AFTER 字段名2;
alter table phone modify PhoneName varchar(50) after id;
13.为已有字段添加约束
alter table phone add unique(id);
14.查看数据表结构
desc tablename;
15.查询数据库
1.查询表中所有数据
select * from tablename;
2.查询表中所有语句,并排序
select * from `phone` order by id;//默认顺序查询
select * from `phone` order by id desc;//倒序查询
3.带in关键字查询
select * from `phone` where OWNER not in ("李三思");//除了李三思以外的所有人(如果去掉not,括号里有什么就查什么)
4.带between的查询
select * from `phone` where id between 5 and 10;//查询id在5和10之间的所有数据
5.模糊查询
select * from `phone` where Owner like "%李%";//查询所有含有“李”的Owner
select * from `phone` where Owner like "%思";//查询所有以“思”结尾的Owner
select * from `phone` where Owner like "李%";//查询所有以“李”开头的Owner
6.带and与or的查询
select * from `phone` where PhoneName="三星" or PhoneName="小米";//查看名字为三星或小米的手机
select * from `phone` where PhoneName="三星" and Owner="李三思";//查看李三思名下的手机
7.带limit查询
select * from `phone` limit 2,5;//查询phone表中,位置以2开始的5条数据(起始位置为0)
8.备份表结构(新表不具备旧表 primary key、auto_increment等属性,需要对新表再次设置)
create table service_data_backup select * from service_data where 1=2;
9.查询当天数据
select create_time from unit_case_result where to_days(create_time) >= to_days(now());
10.查询昨天数据
select count(*) from unit_case_result where to_days(NOW()) - TO_DAYS(create_time) =1;
11.查询过去x天的数据,下面是查询出过去所有创建时间为两天内的数据,如果要查七天,INTERVAL 7 DAY
select count(*) from unit_case_result where date_sub(CURDATE(),INTERVAL 2 DAY) < DATE(create_time);
12.查询本周数据
#默认从周日开始
SELECT create_time FROM unit_case_result WHERE YEARWEEK(date_format(create_time,’%Y-%m-%d’)) = YEARWEEK(now());
#1表示一周为从周一到周日
select create_time from unit_case_result where yearweek(date_format(create_time,’%Y-%m-%d’),1)=yearweek(now(),1)
13.查询上周数据
SELECT create_time FROM unit_case_result WHERE YEARWEEK(date_format(create_time,’%Y-%m-%d’)) = YEARWEEK(now())-1;
14. 查询数据库中数字,以文字显示
select case isDel when 0 then ‘否’ when 1 then ‘是’ end as 是否删除 from service_data
15.查询不同类型的appkey的数量/appkey
select count(distinct appkey) from unit_case_result
select distinct appkey from unit_case_result
16.count(*),count(1)与count(col)
count() 函数返回表中的记录数,包含NULL
count(1),同count(),一般来说区别不大
count(col),返回某一列不为空的记录数
17.navicate 在windows下的快捷键
常用快捷键:
1.ctrl+q 打开查询窗口
2.ctrl+/ 注释sql语句
3.ctrl+shift +/ 解除注释
4.ctrl+r 运行查询窗口的sql语句
5.ctrl+shift+r 只运行选中的sql语句
6.F6 打开一个mysql命令行窗口
7.ctrl+l 删除一行
8.ctrl+n 新建表
9.ctrl+w 关闭一个查询窗口
10.ctrl+s 保存
11.ctrl+o 打开表
12.F6进入mysql命令列界面
参考:按时间段查询
https://blog.youkuaiyun.com/ls1645/article/details/79118464