今天的课程是就Mysql数据库进行了更进一步的练习与讲解,通过自己创建数据表并且添加数据从而进行更复杂的查询练习,对数据库的内容也慢慢有了一些了解:
MySql数据类型
整型(int)小数(decimal(8,2))
字符串(varchar)
日期(data、datatime)
创建student、course、sc表的步骤:
create table student( student_no varchar(20) primary key, student_name varchar(20), sex varchar(10), birthday date, department varchar(20) );
create table course( course_no varchar(20) primary key, course_name varchar(20), previous_no varchar(20), credit int );
create table sc( student_no varchar(20), course_no varchar(20), grade decimal(8,2) );
查询的聚合函数:count(),max(),min(),sum(),avg()
查询学生总人数。
count(*) count(字段) count(distinct 字段)
select count(*) from student;
查询选修了课程的学生的人数。
select count(distinct student_no) from sc;
计算课程编号为“206”的学生的平均成绩
select avg(grade) from sc where course_no='206';
计算课程编号为“206”的学生的最高分。
select max(grade) from sc where course_no='206';
查询选修了2门课程以上的学生的学号(having)
select student_no,count(course_no) from sc group by student_no having count(course_no)>2;
==多表查询(笛卡尔积)
left join right join
查询雇员编号、雇员姓名、所在部门编号、部门名称
1.select t1.empno,t1.ename,t2.deptno,t2.dname
from emp t1 inner join dept t2 using(deptno);
2.select t1.empno,t1.ename,t2.deptno,t2.dname
from emp t1 left join dept t2 using(deptno);
3.select t1.empno,t1.ename,t2.deptno,t2.dname
from emp t1 right join dept t2 using(deptno);
SQL功能 动词
数据查询 select
数据定义 create,drop,alter
数据操纵 insert,update,delete
数据控制 grant,revoke
关系运算:>,=,<,>=,>=,!=(<>)
范围运算:between...and;
空判断:is null,is not null;
IN判断:in,not in,exists(复杂查询)
模糊查询:like,not like
逻辑运算 and与 or或 not非
显示所有数据库 show databases
创建数据库 create database emp_dept;
删除数据 drop database emp_dept;
使用数据库 use {databaseName};
查看所有的表 show tables;
查询(增删改查)
select * from emp;
select * from dept;