一.准备
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;
#查看表中的所有数据
二、高阶SQL语句运用
1、select
语法: select "字段" from "表名";
2、 distinct
语法: select distinct "字段" from "表名";
3、where
语法: select "字段" from "表名" where "条件";
4、and or / 且 或
语法: select "字段" from "表名" where "条件1" {[and | or] "条件2"}+ ;
5、in
语法: select "字段" from "表名" where "字段" in ('值1','值2', ...);
6、between
语法: select "字段" from "表名" where "字段" between '值1' and '值2';
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 '
则不符合这个模式。
8、like
语法: select "字段" from "表名" where "字段" like {模式};
9、order by 按关键字排序
语法: select "字段" from "表名" [where "条件"] order by "字段" [asc,desc];
10、 group by
语法: select "字段1",sum("字段2") from "表名" group by "字段1";
11、having
语法: select "字段1", sum("字段2") from "表格名" group by "字段1" having (函数条件) ;
12、别名—— 字段别名 表格别名
语法: select "表格别名". "字段1" [as] "字段别名" from "表格名" [as] "表格别名";
13、子查询
语法: select "字段1" from "表格1" where "字段2" [比较运算符] #外查询
(select "字段1" from "表格2" where "条件"); #内查询
14、exists
语法: select "字段1" from "表格1" where exists (select * from "表格2" where "条件") ;
三、函数
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...) | 返回集合中最小的值 |