第一节:环境安装
1mysql下载及其安装 2.Mysql数据库编码配置 utf-8 其他默认安装就可以了
3.Mysql图形界面sqlyog下载及其安装/Naivcat也可以
第二节:
数据库数据类型
1.整数类型、浮点数类型和定点数类型(一般用INT)
DECIMAL(m,d)M表示:数据总长度(不包括小数点)
2.日期与时间类型(常用date time datetime)
3.字符串类型
char:固定长度字符串
varchar:可变长度字符串
4.二进制类型(存图片存视频)[一般存比较机密性的数据]
第三节:数据库的操作
DOS环境下进入mysql环境操作;
cmd在DOS环境中输入 mysql --version查看mysql版本 ;mysql -h localhost -u root -p :从DOS环境进入mysql环境
USE 数据库名称:操作选中数据库
1.查看数据库 show databases;
2.创建数据库 create database 数据库名称;
3.删除数据库 drop database 数据库名称;cr
4.选中指定的数据库 use 数据库名称;
5.查看当前操作的数据库 select database();
6.查看当前数据库中所有表 show tables;
7.查看表信息: desc 表名 /show create table 表名
5.对选中的数据库进行操作
第四节
表是数据库存储数据的基本单位。一个表包含若干字段或记录
1创建表 语法
create table 表名 (字段名1 数据类型 【完整性约束】,
字段名2数据类型 【完整性约束】,
.
.
字段名*数据类型 【完整性约束】
);
问题:关于约束条件的运用?***55g
关于约束条件 说明
PRIMARY KEY 标识该字段为该表的主键
FOREIGN KEY 标识改字段为该表的外键,与某表的主键关联
NOT NULL 标识改字段的值不能为空
UNIQUE 标识改字段的值是唯一的
AUTO_INCREMENT 标识改字段的值是自动增长的
DEFAULT 为该属性设置默认值
1.查看
查看表名:desc 表名 或者 show create table 表名;
2.修改表
1)修改表名 ALTER TABLE 旧表名 RENAME 新表名
2)修改字段 ALTER TABLE 表名 change旧属性名 新属性名 新数据类型
3)增加字段 ALTER TABLE 表名ADD 字段名1 数据类型 【完整约束条件】[before/after 存在的字段名]
4)删除字段 ALTER TABLE 表名 DROP 属性名
3.删除表
drop table 表名;注意如果有主外键关系的表则可以删除子表不能删除父表
第五节:数据库查询
单表查询
select * from 表名 查表中所有字段
查询指定字段:
select 字段 from 表名 ;
where 条件查询:
select * from 表名 where 条件表达式;
带in关键字查询
select * from 表名 where 字段 [NOT]in (元素1,元素2,元素3);
带between and 的范围查询:
select * from 表名 where 字段 [not]between 取值1 and 取值2;
带like的模糊查询:
select * from 表名 where 字段 [not]like 字符串; "%"代表任意字符串;"_"代表单个字符;
空值查询
select * from 表名 where 字段 is [not]null;
and多条件查询
select * from 表名 where 条件表达式1 and 条件表达式2 and 条件表达式 3 and ....;
or多条件查询
/**************************/
去重复查询
select distinct 字段 from 表名; 字段值相同的去掉重复;
对查询结果按照某个字段进行排序
select * from 表名 order by 字段[desc/asc] 默认为按照字段升序排序
GROUP BY分组查询 **************55
1.单独使用(毫无意义)
2.与GROUP_CONCAT()函数一起使用;
3.聚合函数一起使用;
4.与having 子句一起使用(限制输出的结果);
5.与WITH ROLLUP 一起使用(最后加入一个总和行);
列:select gradeName,GROUP_CONCAT(STUNAME) from s_tudent GROUP BY GRADENAME;
查询学生姓名,按照年级进行分组;
select gradeName,count(stuName) from s_student group by gradename;
按照年级分组,查询出对应年级的学生人数;
select gradeName,count(stuName) from s_student group by gradename having count(stuName)>3;
按照年级进行分组,查询出对应年级的学生人数大于3人的数据;
分页查询 *****************55
select * from 表名 (order by 字段 asc/desc) limit start,record;start:开始查的页码 record:每页显示的条数;
/******使用聚合函数*/*************55g
count函数
select count(1) from 表名;查询表中数据数量 可以与group by 结合使用
求和函数sum
select stuName,sum(score) from 表名 where stuName=‘学生名';
查询学生姓名对应的总分
select stuname,sum(score) from表名 group by stuName;
查询每个学生的总分并按照姓名分组
求平均函数 avg
select stuName,avg(socre) from group by stuName;
求最大max
求最小值 min
这些聚合函数都可以与group by函数一起运用
*************************************
第七节
连接查询:连接查询将两个或两个以上的表按照某个条件连接起来,从中选择需要的数据;
1.内连接查询
内连接查询是常用的连接查询。内连接查询可以查询两个或者两个以上的表
select * from 表1,表2,....;
select * from 表1,表2 where 表1.字段=表2.字段;
select b11.字段,b22.字段,..from 表1 b11,表2 b22 where b11.字段=b22.字段;(别名的方式);
2.外连接查询
外连接可以查出某一张表的所有信息;
select 字段名称列表 from 表1 LEFT|RIGHT JOIN 表2 ON 表1.字段 = 表2.字段;
Left :显示所有表1的数据,而只显示表2中符合条件的数据,不符合的用Null代替
Right:则与LEFT相反
第八节:子查询将查询语句的结果作为条件再进行查询(where子查询)
1。带IN的查询
一个查询语句的条件可能落在另一个select语句的查询结果中。
select * from b1 where (b1.)id [not]in (select id from b2);
2.带比较运算符的子查询
子查询可以使用比较运算符。
select * from b1 where 表1的字段>=(select 表2的字段 from 表2字段 where 表2字段=值);
3.带Exists关键字的子查询
列如子查询查询到记录,则进行外层查询,否则不执行外层查询
select * from 表x where [not]EXISTS(select * from 表y);只有EXISTS里面的查询有结果才执行表X的查询;
4.带Any关键字的子查询
ANY关键字表示满足其中任一条件
select * from b1 where (b1.)字段>= ANY(select 表2字段 from b2 );
5.带ALL的关键字查询
select * from b1 where (b1.)字段>=ALL(select 表2字段 from b2);
1mysql下载及其安装 2.Mysql数据库编码配置 utf-8 其他默认安装就可以了
3.Mysql图形界面sqlyog下载及其安装/Naivcat也可以
第二节:
数据库数据类型
1.整数类型、浮点数类型和定点数类型(一般用INT)
DECIMAL(m,d)M表示:数据总长度(不包括小数点)
2.日期与时间类型(常用date time datetime)
3.字符串类型
char:固定长度字符串
varchar:可变长度字符串
4.二进制类型(存图片存视频)[一般存比较机密性的数据]
第三节:数据库的操作
DOS环境下进入mysql环境操作;
cmd在DOS环境中输入 mysql --version查看mysql版本 ;mysql -h localhost -u root -p :从DOS环境进入mysql环境
USE 数据库名称:操作选中数据库
1.查看数据库 show databases;
2.创建数据库 create database 数据库名称;
3.删除数据库 drop database 数据库名称;cr
4.选中指定的数据库 use 数据库名称;
5.查看当前操作的数据库 select database();
6.查看当前数据库中所有表 show tables;
7.查看表信息: desc 表名 /show create table 表名
5.对选中的数据库进行操作
第四节
表是数据库存储数据的基本单位。一个表包含若干字段或记录
1创建表 语法
create table 表名 (字段名1 数据类型 【完整性约束】,
字段名2数据类型 【完整性约束】,
.
.
字段名*数据类型 【完整性约束】
);
问题:关于约束条件的运用?***55g
关于约束条件 说明
PRIMARY KEY 标识该字段为该表的主键
FOREIGN KEY 标识改字段为该表的外键,与某表的主键关联
NOT NULL 标识改字段的值不能为空
UNIQUE 标识改字段的值是唯一的
AUTO_INCREMENT 标识改字段的值是自动增长的
DEFAULT 为该属性设置默认值
1.查看
查看表名:desc 表名 或者 show create table 表名;
2.修改表
1)修改表名 ALTER TABLE 旧表名 RENAME 新表名
2)修改字段 ALTER TABLE 表名 change旧属性名 新属性名 新数据类型
3)增加字段 ALTER TABLE 表名ADD 字段名1 数据类型 【完整约束条件】[before/after 存在的字段名]
4)删除字段 ALTER TABLE 表名 DROP 属性名
3.删除表
drop table 表名;注意如果有主外键关系的表则可以删除子表不能删除父表
第五节:数据库查询
单表查询
select * from 表名 查表中所有字段
查询指定字段:
select 字段 from 表名 ;
where 条件查询:
select * from 表名 where 条件表达式;
带in关键字查询
select * from 表名 where 字段 [NOT]in (元素1,元素2,元素3);
带between and 的范围查询:
select * from 表名 where 字段 [not]between 取值1 and 取值2;
带like的模糊查询:
select * from 表名 where 字段 [not]like 字符串; "%"代表任意字符串;"_"代表单个字符;
空值查询
select * from 表名 where 字段 is [not]null;
and多条件查询
select * from 表名 where 条件表达式1 and 条件表达式2 and 条件表达式 3 and ....;
or多条件查询
/**************************/
去重复查询
select distinct 字段 from 表名; 字段值相同的去掉重复;
对查询结果按照某个字段进行排序
select * from 表名 order by 字段[desc/asc] 默认为按照字段升序排序
GROUP BY分组查询 **************55
1.单独使用(毫无意义)
2.与GROUP_CONCAT()函数一起使用;
3.聚合函数一起使用;
4.与having 子句一起使用(限制输出的结果);
5.与WITH ROLLUP 一起使用(最后加入一个总和行);
列:select gradeName,GROUP_CONCAT(STUNAME) from s_tudent GROUP BY GRADENAME;
查询学生姓名,按照年级进行分组;
select gradeName,count(stuName) from s_student group by gradename;
按照年级分组,查询出对应年级的学生人数;
select gradeName,count(stuName) from s_student group by gradename having count(stuName)>3;
按照年级进行分组,查询出对应年级的学生人数大于3人的数据;
分页查询 *****************55
select * from 表名 (order by 字段 asc/desc) limit start,record;start:开始查的页码 record:每页显示的条数;
/******使用聚合函数*/*************55g
count函数
select count(1) from 表名;查询表中数据数量 可以与group by 结合使用
求和函数sum
select stuName,sum(score) from 表名 where stuName=‘学生名';
查询学生姓名对应的总分
select stuname,sum(score) from表名 group by stuName;
查询每个学生的总分并按照姓名分组
求平均函数 avg
select stuName,avg(socre) from group by stuName;
求最大max
求最小值 min
这些聚合函数都可以与group by函数一起运用
*************************************
第七节
连接查询:连接查询将两个或两个以上的表按照某个条件连接起来,从中选择需要的数据;
1.内连接查询
内连接查询是常用的连接查询。内连接查询可以查询两个或者两个以上的表
select * from 表1,表2,....;
select * from 表1,表2 where 表1.字段=表2.字段;
select b11.字段,b22.字段,..from 表1 b11,表2 b22 where b11.字段=b22.字段;(别名的方式);
2.外连接查询
外连接可以查出某一张表的所有信息;
select 字段名称列表 from 表1 LEFT|RIGHT JOIN 表2 ON 表1.字段 = 表2.字段;
Left :显示所有表1的数据,而只显示表2中符合条件的数据,不符合的用Null代替
Right:则与LEFT相反
第八节:子查询将查询语句的结果作为条件再进行查询(where子查询)
1。带IN的查询
一个查询语句的条件可能落在另一个select语句的查询结果中。
select * from b1 where (b1.)id [not]in (select id from b2);
2.带比较运算符的子查询
子查询可以使用比较运算符。
select * from b1 where 表1的字段>=(select 表2的字段 from 表2字段 where 表2字段=值);
3.带Exists关键字的子查询
列如子查询查询到记录,则进行外层查询,否则不执行外层查询
select * from 表x where [not]EXISTS(select * from 表y);只有EXISTS里面的查询有结果才执行表X的查询;
4.带Any关键字的子查询
ANY关键字表示满足其中任一条件
select * from b1 where (b1.)字段>= ANY(select 表2字段 from b2 );
5.带ALL的关键字查询
select * from b1 where (b1.)字段>=ALL(select 表2字段 from b2);