MySQL查操作
数据库在我眼中就是增删改查,而查,我觉得是数据库最费劲的,数据库的花式查,各种查。下面咱们不废话,就是干。
一、查看数据库操作
查数据库版本:select version();
查登录用户:select user();
查库中有多少数据库文件:show databases;
切换到数据库中:use 数据库名;
查看临时数据库步长:show session variables like 'auto_inc%';
查看全局数据库步长:show global variables like 'auto_inc%';
二、查看数据表操作
查看数据库表的创建规则:show create table 表名;
show create table 表名 \G; 翻转90度。
查看数据表每个字段的含义:desc 表名;
查库中有多少表:show tables;
三、查看数据行操作
查表中的内容:select * from xxx(表名); `*`的意思是统配所有,也可以写具体的表中的title,如name,id等等。
查表中的内容,并加条件:
select id,name from 数据库表名 where id > 10 or name ='xxx';
select * from 数据库表名 where id != 1 #条件id 不等于1
select * from 数据库表名 where id <> 1 #条件id 不等于1
select * from 数据库表名 where id in (1,5,12); #条件id为1、5、12
select * from 数据库表名 where id not in (1,5,12); #条件id不是1、5、12.
select * from 数据库表名 where id in (select id from tb11) #可以去别的表查,但是只能查一列。
select * from 数据库表名 where id between 5 and 12; #条件是id在5和12之间的,between是取区间,是闭区间。
查表中的内容,给表头起别名,用as。后面跟起的别名。
select id,name as cname from 数据库表名 where id > 10 or name ='xxx';
样例:select id,name as cname from t1 where id > 10 or name ='george';
查表中的内容,并给表加常量,加的量会是一列都是哪个常量。
select name,age, 11(常量) from 数据库表名;
样例:select name,age,11 from t1; #这样查询,就会有一列都为11的数据。
通配符查看:
select * from 数据库表名 where name like "a%"
# %配所有,不限个数,a%以a开头,%a以a结尾,%a%内容有a即可。
样例:select * from t1 where name like 'a%';
# 查看所有以a开头的名字。
select * from 数据库表名 where name like "a_"
# _ 配一个字符,限个数的。
分页查看:limit
select * from 数据库表名 limit 10;
# 查表中前10条数据,limit加一个值,是查看前多少条。
select * from 数据库表名 limit 0,10;
# 查表中其实第一位到第10位的数据,0位起始值 ,10位从起始值去多少的个数。
select * from 数据库表名 limit 10,10;
# 查表中第10位到下个10位的数据
select * from 数据库表名 limit 20,10;
# 查表中第20位到下个10位的数据
select * from 数据库表明 limit 10 offset 20;
# offset为从哪开始取值,limit为一次取多少。也就是从20开始取值,取10条数据。
排序:用order by
select * from 数据库表名 order by id desc; # id desc 大到小
select * from 数据库表名 order by id asc; # id asc 小到大
多列排序
select * from 数据库表名 order by (列1) desc, (列2) asc;
# 先按照列1从大到小排列,在按照列2从小到大排列。
取后10条数据:
先用order by 将数据倒序排列,在用limit取值。
select * from 数据库表名 order by id desc limit 10;
------ END ------
page = input('请输入要查看的页码')
page = int(page)
(page-1) * 10
select * from 数据库表名 limit 0,10; 1
select * from 数据库表名 limit 10,10;2