Mysql基础回顾

第一节:环境安装
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);














      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值