DDL (数据库的定义语言)
DML (数据库操作语言)
DCL (数据库控制语句)
SQL (数据库的查询)
1:什么是数据库
数据就是存放数据的仓库
2:数据库和SQL是什么关系?
数据库里面放着数据,而SQL是用来操作数据库里数据的语言
3:数据库有哪些
Oracle 功能非常强大
Redis,最好的内存级数据库,查询效率极高,
SQLServer,微软开发的数据库,仅支持Windows操作系统
MongoDB,最好用的文档型数据库
SQLite,最流行的嵌入式数据库
4 : 数据库的语句操作
创建库 create database 数据库名;
删除创建的数据库 drop database 库名;
选择数据库 user mydb1
查看数据库创建细节 show create database mydb1
创建一个使用gbk字符集的数据库 create database mydb2 character set gbk
5:表结构语句
选择数据库 user mydb1
创建数据表
表名
表字段名
定义每个表字段
创建表
create table student(id int,name varchar(20),sex varchar(20),age int,salery float(6,2),birthday date)
删除表 drop table student;
查看所有表 show tables
查看表的创建细节 show create table student;
展示表结构 desc student
在原有的学生基础上添加address列
alter table student add address varchar(20)
在原有的学生基础上删除address列
alter table student drop address
在原有的学生基础上修改address列的类型和长度
alter table student MODIFY COLUMN address VARCHAR(40);
6 数据库的操作语言
插入
insert into student values(1,’zhangsan’,’nan’,19,389.10,’1999-10-10’);
查询 select * from 表名
7.删除数据库
删除单条数据
delete from student where 条件;
删除所有数据
delete from student;
摧毁表
truncate table student;
8:修改数据
设置说有人·的年龄加十
update 表名 set age=age+10
修改名字
update 表名 set name="111" where name="222"
修改王五的生日+salery
update 表名 set 生日=10,salery="111" where 名字=“”王五“”
8:数据库的查询
删除表
drop table 表名
创建数据库表-学生成绩表
create table student(id int primary key auto_increment,name varchar(20) unique not null,chinese float,english float,math float);
添加几条数据
insert into student values(1,’张三’,90,80,80);
insert into student values(2,’李四’,90,87,60);
insert into student values(3,’王五’,70,60,69);
insert into student values(4,’赵六’,99,90,87);
普通条件查询
查询所有信息
select * from 表名;
查询id为1的学生信息
select * from 表名 where id=1;
查询id为1的学生姓名
select name from 表名where id=1;
查询数学成绩大于80的同学成绩
select * from 表名 where math>80
查询所有学生成绩,并输出效果为 姓名 语文 英语 数学 效果
select name as 姓名,chinese as 语文,english as 英语,math as 数学 from 表名
查询所有成绩及数学分+10分
select *,(math+10)from 表名
统计每个学生的总分
select name,(math+english+chinese) as 总分 from student
查询总分大于230分的同学
select * from student where (math+english+chinese)>230
查询数学成绩在80-90之间的同学
select * from student where math between 80 and 90
查询数学语文英语都大于80的同学成绩
select * from student where math>80 and english>80 and chinese >80;
查询数学成绩在 80 60 90内的同学
select * from student where math in(80,60,90);
模糊查询
查询所有姓名中包含张的同学
select * from student where name like ‘%张%’
排序查询
按照数学成绩从小到大查询
select * from student order by math;
按照数学成绩从大到小查询
select * from student order by math desc;
分页查询
limit是mysql的语法
select * from table limit m,n
其中m是指记录从m+1开始
,N代表取n条记录。
select * from student limit 2,4
即取出第3条至第6条,4条记录
查询出数学成绩由高到低前两名
select * from student order by math desc limit 0,2;
分组查询
select * from employee group by sex;
分组查询加条件
select * from employee group by sex having age>18;
(1) having 条件表达式:用来分组查询后指定一些条件来输出查询结果
(2) having作用和where一样,但having只能用于group by
8.3. 报表查询
count 个数
sum 总数
avg 平均数
max 最大值
min 最小值
统计班级里边有多少学生
select count(*)from student;
统计总成绩大于250分的人数
select count(*)from student where (math+english+chinese)>250;
统计班级里边各科总成绩
select sum(math),sum(english),sum(chinese) from student
统计所有科目的总成绩
select sum(math+english+chinese) from student;
统计一下语文平均成绩
select sum(chinese)/count(*) from student;
select avg(chinese) from student;
统计一下班级语文最高分和最低分
select max(chinese) from student;
select min(chinese) from student;