limit:限制(工作中千万不能全量查询:会把数据库的服务器搞死)

限制表的查询个数

select * from user limit 3;

 

mysql 限制root ip_子查询

 

 

 

select * from user order by age asc;(升序,默认asc,可加可不加)

 

mysql 限制root ip_mysql 限制root ip_02

 

 

 

select * from user order by age desc;(倒序)

 

mysql 限制root ip_子查询_03

 

 

 

select * from user order by name;(ascil码:把字母处理成数字,实现从小到大的排序)

python中可以使用 ord(“任意字母”)来查看字母对应的数字

(a=97)

 

mysql 限制root ip_子查询_04

 

 

mysql 限制root ip_mysql 限制root ip_05

 

 

 

 

 

select count(1) from user;

select sum(age) as 总和 from user;

select avg(age) as 平均年龄 from user;

select max(age) as 最大年龄 from user;

select min(age) as 最小年龄 from user;

 

 

mysql 限制root ip_ci_06

 

 

mysql 限制root ip_子查询_07

 

    

去重distinct

select distinct age from user;

 

mysql 限制root ip_mysql 限制root ip_08

 

 

 

面试题

having和where的区别

where后边跟的是表达式

having聚合函数结合起来使用 group by

 

select sex,count(sex) from person group by sex;

 

mysql 限制root ip_mysql 限制root ip_09

 

 

总数 from person group by sex having 总数>1;

 

mysql 限制root ip_mysql 限制root ip_10

 

 

 

查询两个或两个以上关联表共同拥有的数据inner

 

mysql 限制root ip_子查询_11

 

 

select * from good inner join shop on good.id=shop.good_id;

select * from good inner join shop on good.id=shop.good_id where good.id=1;

 

mysql 限制root ip_ci_12

 

 

 

select  good.name,shop.name,shop.level from good inner join shop on good.id=shop.good_id;

select  g.name,s.name,s.level from good g inner join shop s on g.id=s.good_id;(别名)

select * from good inner join shop on good.id=shop.good_id inner join city on shop.id=city.shop_id;(三个表的关联)

select g.address,c.name from good g inner join shop s on g.id=s.good_id inner join city c on s.id=c.shop_id;

 

mysql 限制root ip_子查询_13

 

 

mysql 限制root ip_mysql 限制root ip_14

 

 

mysql 限制root ip_子查询_15

 

 

mysql 限制root ip_ci_16

 

内链接分为左链接和右链接

 

左链接

1、先走内连接的逻辑

2、再查询出左表所有的数据

 

mysql 限制root ip_ci_17

 

 

select * from good g left join shop s on g.id=s.good_id;

 

mysql 限制root ip_ci_18

 

右链接

select * from good g right join shop s on g.id=s.good_id;

 

mysql 限制root ip_MySQL_19

 

 

子查询

子查询的逻辑:里面的SQL执行的结果是,是外面SQL执行的结果是输入

select name,level from shop where good_id in

    -> (select id from good)

    -> ;

 

mysql 限制root ip_ci_20

select name,level from shop where good_id in

    -> (select id from good where address="xian");

 

mysql 限制root ip_mysql 限制root ip_21

 

能子查询的必然能内查询

select s.name,s.level from good g inner join shop s on g.id=s.good_id where g.skid="g001";

mysql 限制root ip_子查询_22

 

列的约束

AUTO_INCREMENT:自增

PRIMARY KEY:主键

NOT NULL:不为空

unique:唯一性

default:默认

 

 

MySQL的时间类型:

DATETIME:YYYY-MM-DD HH:MM:SS 最大值到9999

TIMESTAMP:YYYY-MM-DD HH:MM:SS    最大值到2038年

DATE:YYYY-MM-DD

TIME:HH:MM:SS

YEAR:YYYY

 

通过日期筛选

select * from user where birthday between "1996-01-01 12:12:12" and "2000-01-01 00:00:00" ;

 

mysql 限制root ip_ci_23

MySQL小数点:

FLOAT:单精度

DOUBLE:双精度

DECIMAL (M, D):D代表小数点前的位数,M代表小数点后的位数

 

语法格式“DECIMAL(M,D)”。其中,M是数字的最大数(精度),其范围为“1~65”,默认值是10;D是小数点右侧数字的数目(标度),其范围是“0~30”,但不得超过M。

create table personinfo( id int primary key, name varchar(20), salary decimal(7,2) );

 

mysql 限制root ip_ci_24

 

 

创建带有索引的表

create table userindex

-> (

-> id int primary key,

-> name varchar(20),

-> code varchar(18),

-> index code_index(code)

-> );

 

mysql 限制root ip_ci_25

 

 

给本身已有的表怎加索引

alter table user add index user_index(name);

 

mysql 限制root ip_MySQL_26

 

 

删除索引

drop index user_index on user;

 

mysql 限制root ip_ci_27

 

 

薪资总和,平均薪资、最大薪资、最小薪资

select sum(salary) 总和,avg(salary) 平均工资,max(salary) 最大薪资,min(salary)最小薪资 from salaries;

 

mysql 限制root ip_MySQL_28

 

最大薪资减去最小薪资

select(

-> (select max(salary) from salaries)

-> -

-> (select min(salary) from salaries)

-> );

 

mysql 限制root ip_mysql 限制root ip_29