一。查询
1.distinct:查询去除重复的行,是所有的列都重复才满足条件
2.列别名:as或者空格 select name as 姓名 from student
3.查询字段可以做数学运算,也可以做字符串连接,字符连接符号是:||
4.数字和null相加得到是null
5.nvl用来处理null值。nvl(字段名,值):将null值转换为值
例子:select nvl(stu_sex,'无') from student
6.排序:order by 字段名... asc(升)|desc(降)
例子:select * from student order by stu_age,stu_birthday asc
7.日期转换:用函数解决,档查询条件中用到了日期,可以用转换函数转换
select to_date('2017-1-1 23:23:23','yyyy-MM-dd hh24:mi:ss') from dual
二。where条件
1.数字比较:> < >= <= != <> ^=
2.between ..and.. 值在两者之间
例子:select * from deal_info where deal_count between 50 and 100
3.in:in(1,2,3,4) 值在列表中
例子:select * from deal_info where deal_id in (1,3,5,7,9)
4.like:字符串的模糊匹配 stu_name like '%张%' 表示名字中含有张字
例子:select * from USER_INFO where username like '%四%'
5.is null:值为null
select * from deal_info where deal_time is not null
三。练习
要求:
1.创建表并创建主外键关系,用sql语句
2.给班级表添加两条数据
3.给每个班添加4个学员
4.给部分学员添加10条成绩信息
查询:
1.查询java成绩不及格的信息
2.查询姓张的学员信息
3.查询没有重复的所有成绩信息
4.查询考试时间是2017-1-1 13:1:1以后的成绩信息
5.查询没有考试成绩的成绩信息
6.查询年龄为18,20,22岁的学员信息
7.查询所有成绩信息按成绩倒序排序
科目表添加3条科目信息
四。作业
1.创建三张表:
班级信息表:主键,班级名
学员信息表:主键,姓名,性别,年龄,班级外键
成绩信息表:主键,科目名,成绩,考试时间,学员外键
关系:班级和学员 1对多 学员和成绩是1对多
要求:
1.创建表并创建主外键关系,用sql语句
2.给班级表添加两条数据
3.给每个班添加4个学员
4.给部分学员添加10条成绩信息
查询:
1.查询java成绩不及格的信息
2.查询姓张的学员信息
3.查询没有重复的所有成绩信息
4.查询考试时间是2017-1-1 13:1:1以后的成绩信息
5.查询没有考试成绩的成绩信息
6.查询年龄为18,20,22岁的学员信息
7.查询所有成绩信息按成绩倒序排序
多表查询
内连接查询结果:
班级名 学员名 科目名 成绩
外链接查询:
1.假设有学员考试没有写名字,也就是说成绩表中有成绩,但是成绩表中学员外键没有数据
查询所有成绩,并把没有名字的成绩也显示出来。
2.假设学员没有参加考试,找不到相应的成绩信息。
查询所有学员信息,没有成绩的以null显示