一.mysql简单简单介绍
1.数据库的好处
2.数据库的常见概念
DB:数据库,存储数据的容器 DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有主流的数据库软件通用的语言
3.数据库存储数据的特点
数据存放到表中,表再放到库中 一个库可以由多张表,每张表具有唯一的表名用来标识自己 表中有一个或多个列,列又称为“字段”,相当于java中“属性” 表中每一行数据,相当于java中“对象”
四、常见的数据库管理系统 mysql,oracle,db2,sqlserver
三.DML(对数据操作)
一.Add(添加数据)
1.向表中添加数据
insert into +(列名1,列名2,。。。列名n)values (值1,值2,。。值n);
注:1)列名和值要一一对应
2)如果表名后,不定义列名,则默认给所有的添加值。
3)除了数字基本类型,其他需要单引号引起来
二.Delete(删除)
1.delete from 表名 + [where 条件];
注:如果不加条件删除所有数据
如果要删除所有数据推荐使用 truncate table +(表名);
三.Updata(修改)
1.update +(表名)set +(列名1=值1,列名2=值2,。。。+列名n=值n)+[ where 条 件];
注:如果不加条件修改所有数据
四.DQL(查询)
一.排序查询
1.order by +列名+(排序方式);
例如:order by 排序字段1 排序方式1,排序字段1 排序方式1。。。;
排序方式:
ASC:升序,默认的
desc:降序
注:如果多个排序,先判断第一个
二.聚合函数:将一列作为一个整体进行,纵向计算的
1.cout :计算机数量个数
例如:SELECT COUNT(name) FROM student;
例如:排除null的方法
SELECT COUNT( IFNULL(name,0)) FROM student;
2.max:计算最大值
例如:SELECT MAX(MARK) FROM student;
3.min : 计算最小值
例如:SELECT MIN(MARK) FROM student;
4.sum: 计算和
例如:select sum(mark) from student ;
5.avg:计算平均值
例如:select avg(mark) from student ;
注:排除聚合函数会排除null值。
三.分组查询
1.group by +(字段);
例如:SELECT gender, AVG(mark) FROM student GROUP BY gender ;
注:1)分组之后查询的字段:分组字段,聚合函数
2)where 和having 的区别
1.where 在分组之前进行限定 ,如果不满足,则不参与查询。
2.having 在分组之后进行限定,如果不满足,则不查询出来。
四.分页查询
1.limit 分页查询
例如 : select *from student limit (x,y);x:从什么时候开始;y:每页显示的页数。
五.基础查询
1.查询基础语法
select 字段列表 from 表名 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页
2.查询字段
select 字段1 字段2 from 表名;
注:除去重复的结果集 distinct ;
起别名AS +别名;
3.条件查询
1.where +条件
例如:select *from student where age >20;
2.运算符 > , <, <=, >= ,=, <>
例如:select *from student where age (运算符)
3.between ... and...
例如:select *from student where age between 20 and 30;
4.in(集合)
例如:select *from student where age in (X,X,X);
5.like (模糊查询)
占位符:
单个字符:select *from student where name like ' 龙%';
select*from student where name like "_化%";
多个字符
6.is null 查询某一列null的值,注:不能写=null;(is not null)
例如:select *from student where age is null ;
7.逻辑查询
or 或者 &&
not 或 !
五.约束
概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。
分类:
1.主键约束:primary key
2.非空约束:not null
3.唯一约束: unique
4.外键约束:foreign key
一.非空约束(所约束的列无法为空)
1.创建表创建约束
例如:
create table student(
id int,
name varchar(20)not null;(名字不能为空)
);
2.创建表之后,添加非空约束
例如:
alter table student modify name varchar(20) not null;
3.删除非空约束
例如:
alter table student modify name varchar(20);
二.唯一约束:unique,值不能重复
1.创建表创建约束
例如:
create table student(
id int,
phone int unique ;(名字不能为空)
);
2.删除唯一约束
例如:
alter table student drop index phone ;
3.创建表之后,添加唯一约束
例如:
alter table student modify phone int unique ;
三.主键约束:primary key
1.注意:
1.含义:非空且唯一
2.一张表只能有一个字段为主键
3.主键就是表中的唯一标识
2.添加主键
例如:
create table stu(
id int primary key,
name varchar (20)
);
3.删除主键
正确演示:
例如:
alter table stud drop primary key ;
错误示范:
alter table stud modify id primary key;
4.创建表之后,添加逐主键
alter table stud modify id int primary key;
5.自动增长
1.概念:如果某一列是数值类型的,使用auto_increment 可以用来完成自动增长
2.创建表时,添加主键
create table stu(
id int auto_increment,
name varchar (20)
);
3.删除自动增长
alter table stu modify id int ;
4.添加自动增长
alter table stu id int int auto_increment;
6.外键约束:foreign key
1.在创建表时,可以添加外键
语法:
create table 表名(
。。。
外键列
contraint 外键名称 foreign key (外键列的名称) referrnces 主表主称名字
);
2.删除外键
alter table (表名) drop foreign key 外键名;
3.添加外键
alter table (表名)add contraint 外键名称 foreign key (外键列的名称) referrnces 主表主称
7.级联操作
1.添加外键,设置级联更新
alter table 表名 add constraint 外键名称
foreign key (外键名称) references 主键名称 (on update cascade on delete casecade);
2.分类:
1.级联更新:on update cascade
2.级联删除:on delete casecade