数据库函数select查询语句的分类语法结构多表连接,DISTINCT
关键字表列的别名和m。。。
数据库函数 select 查询语句
SQL语句
* DDL create,drop, alter
* DML insert,delete,update,select
* DCL grant,revoke
* TCL commit; rollback;
DDL修饰符:
* unsigned ⾮负数
* zerofill 0填充
* default 默认值
* null 空值
约束:
* primary key 主键,⾮空 + 唯⼀
* unique 唯⼀键,不能有重值
* not null ⾮空
* auto_increment ⾃增长 int,必须是primary key主键
1.SELECT 查询语句的分类语法结构多表连接案例
简单查询语句从⼀个表中查询数据
复杂查询语句多表连接查询(将来源于多个表的列横向叠加)
*内连接 *左连接 *右连接 *全连接 * ⾃连接 *⾮等值连接
复合查询(将查询结果集上下叠加)
*Union*Union All *Intersect *Minus
并集交集差集
⼦查询
* ⾮关联⼦查询 *关联⼦查询
语法结构
SELECT select_list # 1个或多个列名,之间⽤逗号隔开,列也称作投影
[ INTO new_table ] # 结果集放⼊指定⽂件
FROM [table_source] #表名
[ WHERE search_condition ] #表⾏过滤条件
[ GROUP BY group_by_expression ] #按照指定的列将表⾏分组,形成新的⾏
[ HAVING search_condition ] #对分组后的新⾏进⾏过滤
[ ORDER BY order_expression [ ASC | DESC ] ] #按照指定的1个或多个列进⾏排序,ASC=增序,DESC=降序
select where⼦句常⽤的算数逻辑⽐较运算符通配运算符和优先级
where⼦句对⾏记录进⾏过滤
1.算数运算符:
+,-,*, / 对应加,减,乘,除
2.逻辑运算符:
not (⾮);and (⽽且);or(或者);
3.⽐较运算符:
= 等于; !=或<>不等于; >⼤于; <⼩于; >=⼤于等于; <=⼩于等于;
is null为空值;is not null为⾮空值;
in (值列表)在值列表中not in (值列表)不在值列表中;
between 低值and ⾼值(包含低值和⾼值)在低值和⾼值之间;
not between 低值and ⾼值(包含低值和⾼值)不在低值和⾼值范围内;
like ‘通配符’按照通配符进⾏匹配;
4.常⽤通配符:
% 匹配0个或任意多个字符_匹配任意1个字符
5.运算符优先级
各类运算符之间存在优先级,只记住括号( )的优先级最⾼即可
1.查询学⽣表中性别为‘⼥’,体重超过60公⽄的学⽣的所有信息
三个表
查询学⽣表中性别为‘⼥’,体重超过60公⽄的学⽣的所有信息
select * from stu where sex='⼥' and weight>60;
2.查询学⽣表中1班或者2班中,⾝⾼超过190的学⽣
select * from stu where (cno=1 or cno=2) and height>190;
或者
select * from stu where cno in (1,2) and height>190;
3.查询学⽣表中3班学⽣⾥⾯考分在400和520之间的⼥⽣
select * from stu where cno=3 and sex='⼥' and score between 400 and 520;
或者
select * from stu where cno=3 and sex='⼥' and (score>= 400 and score<=520);
4.查询学⽣表中没有分配班级⽽且是⼥⽣的学⽣
select * from stu where cno is null and sex='⼥';
5.在学⽣表体重低于40公⽄且⾝⾼低于1.65⽶的学⽣,列出其姓名,⾝⾼,体重,总分以及总分占750分满分的百分⽐select sname,height,weight,score,score/750*100 from stu where height/100<1.65 and weight<40;
6.在学⽣表中查学⽣姓名,第⼆个字是‘侯’,或者第⼀个字是‘张’且名字只有两个字的学⽣
select * from stu where sname like '_侯%' or sname like '张_';
2mysql 常⽤的字符串数值⽇期条件判断 CASE 空值聚合关键字列的别名函数
函数⽤来处理SQL语句中的数据,可以嵌⼊在SQL语句中使⽤,增加了SQL语句对数据的处理功能
函数可以有0到多个参数,但是总会有⼀个返回值
函数可以⽤来计算、修改、格式化输出⼆维表中的各类数据
不同数据库的函数的名称和⽤法略有不同,
但都会提供如:
字符串处理、数值处理、⽇期处理、统计等分类的函数、⽅便⽤户处理各类数据
1.字符串函数 char_length(字符串) 的长度三个字姓名的学⽣
char_length(str)字符串长度
计算参数str中有多少个字符,str可以是具体的⼀个字符串,也可以是表中的列distinct和distinctive
1.查看字符串“中国⼈”有⼏个字(后⾯为常量from可省略
select char_length('中国⼈');
2.学⽣表中姓名为三个字的学⽣有哪些?
select * from stu where char_length(sname)=3;
或
select * from stu where sname like '___';
有些需求仅靠SQL语句提供的功能⽆法实现,必须依靠数据库提供的函数
1.把‘我是’和‘中国⼈’拼接成⼀句话
select concat('我是','中国⼈');
2.学⽣表打印已分班的学⽣姓名和班级,以xxx是x班的形式打印结果
select concat(sname,'是',cno,'班') 名称表from stu where cno is not null;
3.substr(str,pos,len)截取把参数str字符串从第pos位起,截取len位把参数str字符串从第pos位起,截取len位字符串姓⽒
1.把‘我是中国⼈’字符串从第3位起截取3位字符
select substr('我是中国⼈',3,3);
⼆班的同学都有什么姓⽒? (截取第⼀个字段) ⼆班同学的姓⽒
select substr(sname,1,1) from stu where cno=2;
4.)MySQL 数值四舍五⼊函数round(num,n),数字和⾝⾼体重bmi值
四舍五⼊不要⼩数缺省为正数 0
对数字num进⾏四舍五⼊运算,从第n位⼩数算起(保留⼏位)
1.)15.5469,保留2位⼩数,从第2位⼩数进⾏四舍五⼊运算
select round(15.5469,2);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论