首先将一下,如果你的mysql密码忘记了,那么通过下面的方式进行重置密码
1.停止mysql服务: services.msc 进入到服务界面 2.在cmd>输入一个命令: mysqld --skip-grant-tables (开启一个mysql服务,不需要进行认证.) 3.新打开一个cmd窗口 mysql -u root -p 不需要输入密码.就可以进入. 4.输入命令 show databases;查看数据库,输入命令 use mysql;使用mysql数据库。 5.修改密码的语句: update user set password=password('root') WHERE user='root'; 6.将两个窗口都关闭. 7.任务管理器中结束(mysqld)进程. 8.重启mysql服务
mysql 创建约束的三种方式: 主键约束,唯一约束,非空约束,其中主键约束就是保证该字段不能出现重复的值,主键的作用就是区分每一条数据的,区别是否是相同的原色,
其中唯一约束的作用就是要求这个字段中的所有的元素都不能有重复的元素,非空约束的作用就是要求这个字段的数据不能是空的,
下面说一下,mysql数据库中的crud操作
1 * 语法:update 表名 set 字段=值,字段=值... [where ]
* 如果没有where条件,默认更新所有的记录。
* 有where提交,选择某一条记录。
例如
将所有员工薪水修改为5000元。
update user set salary=5000;
将姓名为’班长’的员工薪水修改为3000元。
update user set salary=3000 where username='班长';
2 删除 delete的语法
语法:delete from 表名 [where ]; 删除数据
当没有where的时候,默认删除了数据库中的所有元素,使用delete删除数据库中的所有元素是一条一条删除的,
如果使用truncate 也可以执行删除数据库中的所有数据的操作,使用truncate删除的语法truncate 表名; 删除所有的数据,
truncate的删除机制是先删除表,然后在创建一个新的表,这样的删除机制,在删除速度上是要比delete快很多的,
但是在实际项目中并不采用这种删除机制,原因是我们在实际项目中的删除操作必须要用到事务,所以这样删除会出现问题。
3 * 添加数据
* insert into 表名 (字段1,字段2,字段3..) values(值1,值2,值3...); 有几列就插入多少的值。
* insert into 表名 values(值1,值2,值3...);
当主键是自增长的时候,使用第二种添加方式
insert into 表明 values(null,数据1,数据2...);
4 查询操作(*********)
select * from 表名; 查询所有(字段)
select 字段名1,字段名2,字段名3 from 表名; 显示查询字段名
select DISTINCT 字段名 from 表名; 去除重复的数据。
当我们跨很多表进行查询的时候,有可能表名会重复,这个时候,我们需要使用别名进行查询,
+----+------+------+---------+---------+
| id | name | math | english | chinese |
+----+------+------+---------+---------+
| 1 | 小王 | 78 | 21 | 31 |
| 2 | 小张 | 86 | 1 | 81 |
| 3 | 小李 | 76 | 18 | 51 |
| 4 | 小赵 | 96 | 98 | 91 |
| 5 | 小孙 | 76 | 88 | 81 |
+----+------+------+---------+---------+
select s.name,(s.math+s.english+s.chinese) as sum from stu s;
+------+-----+
| name | sum |
+------+-----+
| 小王 | 130 |
| 小张 | 168 |
| 小李 | 145 |
| 小赵 | 285 |
| 小孙 | 245 |
+------+-----+
首先,我创建了一个表的别名s,然后我查的相应的数据就是 s.字段名,我查的字段分别是name和数学,英语,语文三科的成绩和,
我给我的三科成绩和创建了一个别名sum,我查出来的数据表的字段名称也变成了sum。
下面说一下,如何使用where 添加别名,就是把别名添加到条件里面。
select t2.* from (select name,(math+english+chinese) as sum1 from stu) t2 where sum1>200;
模糊查询 like -- 模糊查询 写法:like '张_或者%'
排序 使用order by 升序默认的(asc)/降序(desc) 默认是 asc 顺序
select * from stu where name like '小%' order by chinese;
+----+------+------+---------+---------+
| id | name | math | english | chinese |
+----+------+------+---------+---------+
| 1 | 小王 | 78 | 21 | 31 |
| 3 | 小李 | 76 | 18 | 51 |
| 2 | 小张 | 86 | 21 | 81 |
| 5 | 小孙 | 76 | 88 | 81 |
| 4 | 小赵 | 96 | 98 | 91 |
+----+------+------+---------+---------+
如果,我有一个新的需求,例如根据 english进行排序,如果有相同的,在根据math进行排序
select * from stu order by english desc , math asc;
* 聚集函数
* count 获取数量
练习:
统计一个班级共有多少学生?
select count(*) from stu;
统计数学成绩大于90的学生有多少个?
select count(*) from stu where math > 90;
统计总分大于150的人数有多少?
select count(*) from stu where (math+english+chinese) > 150;
* sum 求和(忽略null值) 可以同ifnull(xxx,0)
统计一个班级数学总成绩?
select sum(math) from stu;
统计一个班级语文、英语、数学各科的总成绩
select sum(math),sum(english),sum(chinese) from stu;
统计一个班级语文、英语、数学的成绩总和
select sum(ifnull(math,0)+english+chinese) from stu;
select sum(math)+sum(english)+sum(chinese) from stu;
统计一个班级语文成绩平均分
select sum(chinese) / count(*) from stu;
* avg 平均数
练习:
求一个班级数学平均分?
select avg(math) from stu;
求一个班级总分平均分
select avg(ifnull(math,0)+english+chinese) from stu;
* max 最大值
select max(math) from stu;
* min 最小值
select min(math) from stu;
* group by 分组(一起使用) 条件过滤需要是having,不能使用where,
练习:对订单表中商品归类后,显示每一类商品的总价.
select product,count(*),sum(price) from orders group by product;
练习:查询购买了几类商品,并且每类总价大于100的商品
select product,sum(price) from orders group by product having sum(price) > 100;
* 小结 select 语句 : S-F-W-G-H-O 组合 select ... from ... where ... group by... having... order by ... ;
顺序不能改变
create table orders(
id int,
product varchar(20),
price float
);
insert into orders(id,product,price) values(1,'电视',900);
insert into orders(id,product,price) values(2,'洗衣机',100);
insert into orders(id,product,price) values(3,'洗衣粉',90);
insert into orders(id,product,price) values(4,'桔子',9);
insert into orders(id,product,price) values(5,'洗衣粉',90);
insert into orders(id,product,price) values(6,'电视',900);
下面是对 group by的具体的理解
相关推荐
MySQL数据库基础知识整理,增删改查,排序、分组、连接查询、对表的增删改查、条件查询、数据库的安装、卸载、下载、配置,对表结构的修改,约束等等
MySQL数据库知识整理,增删改查基础,以及约束,多表,联结
非常详细的数据库知识点整理,主要涵盖:数据库基础知识、DDL、DML、DQL、DCL、事务讲解、Mysql、JDBC、Java操作Mysql、数据库连接池、Redis型非关系数据库、Java使用Jedis操作Redis数据库
主要介绍了MySql数据库基础知识点,总结整理了mysql数据库基本创建、查看、选择、删除以及数据类型相关操作技巧,需要的朋友可以参考下
整理mysql数据库的28个知识点.docx
mysql修改语句 整理比较全面的数据库基础知识
这个是一套学习笔记,整理下来的。希望大家好好珍惜,以后还会有更多的基础知识笔记分享出来。该文件使用makedown文档编写的,建议大家使用typora工具打开。
数据库原理及应用MySQL中触发器部分有关的知识点整理,包括再MySQL中创建、删除、查看触发器的相关知识点,并包括相关的语法和语句。还有使用触发器应该注意的一些要点。 适合数据库专业的或是计算机相关专业的朋友...
本文实例讲述了MySQL数据库入门基础命令。分享给大家供大家参考,具体如下: 在日常工作与学习中,无论是开发、运维、还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一。在互联网公司,开源...
数据库知识点整理,包括数据库和表的创建,增删改查,子查询,关联查询,连接,交并差集,索引,序列,视图,各种函数,DDL、DML、DQL的实例。 存储过程,触发器,PL/SQL的基本使用。 每个知识点都有基于ORACLE ...
很详细,便于整理记忆,便于查阅,基础知识整理,需要XMind
数据库知识点整理,包括数据库和表的创建,增删改查,子查询,关联查询,连接,交并差集,索引,序列,视图,各种函数,DDL、DML、DQL的实例。 每个知识点都有基于ORACLE scott 账户下employee 表的实例代码。
该文档为自己在看动力节点MySQL课程时整理的笔记,笔记详细的讲解了MySQL的基础语法和一些演示样例,对我自己的帮助极大,因此我想与大家分享,我相信对于初学者来说,应该是有很大帮助的,欢迎大家下载阅读,因水平...
个人整理的MySQL数据库的一些基础知识,比如一些简单的增删改查操作等,个别是针对 mac 的使用语句
发现网上此类文档和实例不是很多,时间也稍有久远,但对学习开发MYSQL数据库程序具有非常大的借鉴作用,借此机会感谢撰写此类文档的前辈们提供好的思路和代码,笔者以此为基础稍做代码的整理解释和界面修改以及功能...
本资源内容是由viking151亲自整理,专为MySQL数据库的学习者,准备的一个既能在学习知识的又同时巩固自身知识点的一份资料。
该笔记整理了mysql数据库所需要学习的知识点,从入门到进阶以及常用的操作。mysql是免费的,其他几个目前暂时收费的,mysql在互联网公司使用率也是排名第一,资料也非常完 善,社区也非常活跃,所以我们主要学习...
MySQL书籍(21本)目录知识点(思维导图加图).rar 根据如下MySQL书籍收集整理: 2004年《MySQL完全手册》 2006年《MySQL 5 权威指南-(第3版)》 2007年《PHP与MySQL 5程序设计(第2版)》 2009年《MySQL必知必会》 ...
2023年最新MySQL面试题整理, 包含触发器,索引,索引,性能优化,排序,管理视图,一致性验证,跨数据库查询,视图、主从,日志、MVCC等问题, 用简洁明了的语言,通俗易懂地阐述了高并发多线程相关面试的知识点。...