MySQL高级SQL语句

一.准备

mysql -uroot -p123123

create database train_ticket;
#创建库

use train_ticket;
create table REGION(region varchar(10),site varchar(20));
create table FARE(site varchar(20),money int(10),date varchar(15));
#创建表

desc REGION;
desc FARE;
#查看表结构

insert into REGION values ('south','shenzhen');
insert into REGION values ('south','hongkong');
insert into REGION values ('north','beijing');
insert into REGION values ('north','tianjin');
#在表一中插入数据
select * from REGION;
#查看表中的所有数据

MySQL高级SQL语句_第1张图片

MySQL高级SQL语句_第2张图片 

 二、高阶SQL语句运用

1、select

语法: select "字段" from "表名";

MySQL高级SQL语句_第3张图片

2、 distinct

语法: select distinct "字段" from "表名";

MySQL高级SQL语句_第4张图片

3、where 

语法: select "字段" from "表名" where "条件";

MySQL高级SQL语句_第5张图片

4、and or / 且 或

语法: select "字段" from "表名" where "条件1" {[and | or] "条件2"}+ ;

MySQL高级SQL语句_第6张图片

5、in 

语法: select "字段" from "表名" where "字段" in ('值1','值2', ...);

MySQL高级SQL语句_第7张图片

6、between 

语法: select "字段" from "表名" where "字段" between '值1' and '值2';

MySQL高级SQL语句_第8张图片

7、通配符 

通常通配符都是跟 like 一起使用的
% : 百分号表示零个、一个或多个字符
_ : 下划线表示单个字符

'a_z':所有以'a' 起头,另一个任何值的字符,且以'z'为结尾的字符串。例如,'abz' 和'a2z' 都符合这一一个模式,而'akkz'
并不符合(因为在a和z之间有两个字符,而不是一个字符)。
'abc%' : 所有以'abc'起头的字符串。 例如,'abcd' 和'abcabc' 都符合这个模式。
'%xyz' : 所有以'xyz'结尾的字符串。 例如,'wxyz' 和'zzxyz' 都符合这个模式。
'%an%' : 所有含有'an'这个模式的字符串。例如,'los angeles'和'san francisco'都符合这个模式。
'_an%' : 所有第二个字母为'a' 和第三个字母为'n' 的字符串。例如,'san francisco' 符合这个模式,而'los angeles '
则不符合这个模式。

MySQL高级SQL语句_第9张图片

8、like 

语法: select "字段" from "表名" where "字段" like {模式};

MySQL高级SQL语句_第10张图片

9、order by  按关键字排序

语法: select "字段" from "表名" [where "条件"] order by "字段" [asc,desc];

MySQL高级SQL语句_第11张图片

10、 group by

语法: select "字段1",sum("字段2") from "表名" group by "字段1";

MySQL高级SQL语句_第12张图片

11、having

语法: select "字段1", sum("字段2") from "表格名" group by "字段1" having (函数条件) ; 

MySQL高级SQL语句_第13张图片

12、别名—— 字段别名 表格别名

语法: select "表格别名". "字段1" [as] "字段别名" from "表格名" [as] "表格别名";

MySQL高级SQL语句_第14张图片

13、子查询

语法: select "字段1" from "表格1" where "字段2" [比较运算符]           #外查询
(select "字段1" from "表格2" where "条件");                                        #内查询

MySQL高级SQL语句_第15张图片

14、exists

语法: select "字段1" from "表格1" where exists (select * from "表格2" where "条件") ;

MySQL高级SQL语句_第16张图片

三、函数 

abs (x) 返回 x 的绝对值
rand() 返回 0 到 1 的随机数
mod(x,y)  返回 x 除以 y 以后的余数
power (x,y) 返回 x 的 y 次方
round (x) 返回离 x 最近的整数
round (x,y) 保留 x 的 y 位小数四舍五入后的值
sqrt (x) 返回 x 的平方根
truncate (x,y) 返回数字 x 截断为 y 位小数的值
ceil (x) 返回大于或等于 x 的最小整数
floor (x) 返回小于或等于 x 的最大整数
greatest (x1,x2...) 返回集合中最大的值
least(x1,x2...)  返回集合中最小的值

你可能感兴趣的:(sql,mysql,数据库)