day1Mysql数据库基础

day1:Mysql数据库

数据库:

​ 存储数据的仓库,可以进行数据的持久化存储

​ 特点:可以进行持久化存储数据

​ 方便进行数据管理

​ 查询数据的效率特别高

​ 安装:傻瓜式安装

​ 服务:sql server

​ 启动: net start mysql

​ 停止: net stop mysql

SQL:Structured Query Language(结构化查询语句)

​ 分类:

​ DDL:数据定义语句:用来定义数据库中的库,表,列 关键字:create drop alter

​ DML:数据操作语言:操作数据表中数据,关键字:insert update delete等

​ DQL:数据查询语句:查询检索数据库中的数据,关键字:select where group by

​ DCL:数据控制语句:管理数据库用户的权限:关键字grant revoke

DDL:数据操作语言
1:create创建数据库

				CREATE DATABASE DB1;

​				判断是否存在,如果不存在则创建

​				CREATE DATABASE IF NOT EXISTS db2;

​				创建默认的默认的指定字符集

​				CREATE DATABASE db3 DEFAULT CHARACTER SET utf8;
​```
2:retrive检索数据库
​```
 查询所有数据库
			SHOW DATABASES;
 查询数据库创建语句
			SHOW CREATE DATABASE db1; ``
3: U(Update)更新数据库`
修改数据库默认字符集
		ALTER DATABASE DEFAULT CHARACTER SET utf8; `
4:删除数据库
	DROP DATABASE db3;``
5. 使用数据库 
   ```mysql
   use db1;
DML:数据操作语句
		1,插入数据:

​			插入全面列:INSERT INTO student2 VALUES(1123,'2019',32);

​			插入部分列:INSERT student2(sno,age)VALUES(123,20);

​		2,修改数据:

​			更新列:UPDATE stu2 SET birthday='2018-08-18' ,NAME='学生04' WHERE id=2;

​		3,删除数据

​				DELETE FROM stu2 WHERE id=3;
DQL 查询数据库表中的数据
1. 语法
	select * from 表名
	where 条件
	group by 分组字段
	having 分组后条件过滤
	order by 排序字段 排序类型
	limit 起始位置,长度 (分页)

2. 简单查询
   * 代表所有列
   * SELECT * FROM student;	 

3. 指定列查询
	SELECT id,NAME FROM student;	
4. 别名查询
	* as
	  SELECT id,NAME ,math AS 数学 ,english AS 英语 FROM student;
5. 去除重复查询
	* distinct
	SELECT  DISTINCT address FROM student;
6. 查询结果参与计算
	* +-*/ 
	SELECT id,NAME ,math+english AS total	FROM student;
	SELECT id,NAME ,math+IFNULL(english,0) AS total	FROM student;
7. 条件过滤
	* <>、 <、 >、 =、 <= 、>=
	* between and 相当于 >=小值 and  <=大值
	* in
	* is null
		-- 查询 math 分数大于 80 分的学生
		SELECT * FROM student WHERE math>80;
		-- 查询 english 分数小于或等于 80 分的学生
		SELECT * FROM student WHERE english <= 80;
		-- 查询 age 等于 20 岁的学生
		SELECT * FROM student WHERE age=20;
		-- 查询 age 不等于 20 岁的学生,注:不等于有两种写法
		SELECT * FROM student WHERE age <> 20;
		SELECT * FROM student WHERE age != 20;

		SELECT * FROM student WHERE math>80;
		
		SELECT * FROM student WHERE math=99;
		
		SELECT * FROM student WHERE math>=76 AND math<=90;
		
		SELECT * FROM student WHERE math  BETWEEN 76 AND 90;
		
		SELECT * FROM student WHERE id <>1;
		
		SELECT * FROM student WHERE english IS  NULL;

逻辑 and  or not
	* 
		-- 查询 age 大于 35 且性别为男的学生(两个条件同时满足)
		SELECT * FROM student WHERE age>35 AND sex='男';
		-- 查询 age 大于 35 或性别为男的学生(两个条件其中一个满足)
		SELECT * FROM student WHERE age>35 OR sex='男';
		-- 查询 id 是 1 或 3 或 5 的学生
		SELECT * FROM student WHERE id=1 OR id=3 OR id=5;
		SELECT * FROM student WHERE id IN(1,3,5);
		-- 查询 id 不是 1 或 3 或 5 的学生
		SELECT * FROM student WHERE id NOT IN(1,3,5);

		SELECT * FROM student WHERE id =1 OR id=3;
		SELECT * FROM student WHERE math>=76 AND math<=90;
		SELECT * FROM student WHERE english IS NOT NULL;

	* 模糊 like 通配符 % _

		-- 查询姓马的学生
		SELECT * FROM student WHERE NAME LIKE '马%';
		-- 查询姓名中包含'德'字的学生
		SELECT * FROM student WHERE NAME LIKE '%德%';
		-- 查询姓马,且姓名有两个字的学生
		SELECT * FROM student WHERE NAME LIKE '马_';
8. 排序
	-- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序
			  
	SELECT * FROM student ORDER BY math DESC;
	
	SELECT * FROM student ORDER BY math ; -- 默认 ASC
	
	SELECT * FROM student ORDER BY math ASC;
	
	SELECT * FROM student ORDER BY math ASC,english ASC;

9. 聚合函数
  将一列作为整体进行计算
	COUNT -- 计算数量的
	MAX -- 计算最大值
	MIN -- 计算最小值
	AVG -- 计算平均值
	SUM -- 计算总和
	
			-- 查询学生总数
			SELECT COUNT(id) FROM student;
			SELECT COUNT(*) FROM student;
			SELECT COUNT(english) FROM student; -- null 不计算
			-- 查询年龄大于 20 的总数
			SELECT COUNT(id) FROM student WHERE age>20;
			-- 查询数学成绩总分
			SELECT SUM(math) FROM student;
			-- 查询数学成绩平均分
			SELECT AVG(math) FROM student;
			-- 查询数学成绩最高分
			SELECT MAX(math) FROM student;
			-- 查询数学成绩最低分
			SELECT MIN(math) FROM student;

10. 分组

	-- 按性别进行分组,求男生和女生数学的平均分
	SELECT sex,AVG(math) AS 平均分 FROM student GROUP BY sex ;
	
	-- 查询男女各多少人
	SELECT  sex,COUNT(*) FROM student GROUP BY sex;
	
	-- 查询年龄大于 25 岁的人,按性别分组,统计每组的人数
	SELECT   sex,COUNT(*) FROM student WHERE age>25 GROUP BY sex ;
	
	-- 查询年龄大于 25 岁的人,按性别分组,统计每组的人数,并只显示性别人数大于 2 的数据
	SELECT   sex,COUNT(*) FROM student WHERE age>25 GROUP BY sex HAVING COUNT(*)>2;
11. 分页
	limit 
	-- 查询学生表中数据,从第 3 条开始显示,显示 6 条。
	--每页显示 5 条记录的方式来分页

	-- limit offset,length -- offset起始从0开始
	
	SELECT 	* FROM student LIMIT 0,3;
	SELECT 	* FROM student LIMIT 3;
	SELECT 	* FROM student LIMIT 5,5;
	
	-- 查询学生表中数据,从第 3 条开始显示,显示 6 条。
	SELECT 	* FROM student LIMIT 2,6;
	
	-- 每页显示 5 条记录的方式来分页
	SELECT 	* FROM student LIMIT 0,5;
	SELECT 	* FROM student LIMIT 5,5;
	SELECT * FROM student LIMIT 10,5;
	
	-- offset= (页号-1)* 页大小

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值