MySQL基础总结

数据库的概念以及sql通用语法

    开启mysql服务器:win+R打开运行窗口,输入“services.msc”即可,推荐都自动开启。
    登录和退出mysql

登录本机的数据库:mysql -uroot -p管理员密码
登录别人的数据库: mysql -h别人的ip地址 -uroot -p管理员密码
退出数据:exit或者quit
 

    mysql数据目录

1 数据库:本质是文件夹,在开发中一个项目对应一个数据库。
        数据库管理系统和数据库的区别?数据库管理系统指的是我们安装mysql软件。数据库指的是存放数据文件的文件夹
2 表:本质是一个文件
3 数据

    SQL以及通用语法

sql:操作关系型数据库通用的语言。
通用的语法:
    1 sql语句是以分号结尾,不区分大小写。
    2 sql的注释:
            单行注释: -- 空格
            多行注释: /*注释内容*/

    SQL分类

1) Data Definition Language (DDL 数据定义语言) 对数据库和表进行增删改查
2) Data Manipulation Language(DML 数据操纵语言),对表中的数据进行增删改
3) Data Query Language(DQL 数据查询语言),对表中的数据进行查询操作
4) Data Control Language(DCL 数据控制语言),对用户权限的设置

对数据库的增删改查(DDL)
创建数据库

    语法:create database [if not exists] 数据库名称 [charater set utf8]; — []中的内容表示可选。

-- 创建一个db1数据库,使用默认的字符集
create database db1;
-- 创建一个db2数据库,使用gbk字符集
create database db22 character set gbk;
create database if not exists db2 character set gbk;

删除数据库

    语法:drop database [if exists] 数据库名称; — []中的内容表示可选。

-- 删除db1数据库
drop database db1;
-- 删除db2数据库,如果存在就删除
drop database if exists db2;

    其他操作

查看所有数据库:show databases;
使用数据库:use 数据库名称;

对数据库中表的增删改查(DDL)
创建表

语法:
create table [if not exists] 表名(  -- []中的内容表示可选。
    列1 数据类型,
  列2 数据类型,
  ...
  列n 数据类型
);
注意:最后一列不需要逗号,写了反而出错。
数据类型:
    整型:int
    浮点型:float(总位数,小数位数) 、    double(总位数,小数位数)
    字符串类型:
        char(长度):固定长度字符串,假设长度写的是8,不管存几个字符,那么在底层都是站8个字符的位置
        varchar(长度):可变长度字符串,假设长度写的是8,字符串的实际长度多长,存进去就占几个字符。
    时间类型:
        date:年月日时间类型
        datetime:年月日时分秒类型,如果不存值或者存null,那么值都是null。
        timestampt:年月日时分秒类型,如果不存值或者存null,那么值是系统当前时间。
例如:
    create table if not EXISTS student(
   id int,
   name VARCHAR(20),
   age int,
   score DOUBLE(5,2),
   birthday date,
   insert_time TIMESTAMP
  );

删除表

    语法:drop table [if exists] 表名;

-- 删除表
drop table if EXISTS student;

修改表

规律:alter table 表名 add/drop/change/modify/rename to
其中;
    修改列名:alter table 表名 change 旧列名 新列名 新数据类型(长度);
    修改数据类型:alter table 表名 modify 列名 新数据类型(长度);

数据库和表的总结

0 登陆数据库的两个异常:密码错误和mysql服务没有开启
1 创建数据库:create database ...
2 删除数据库:drop database ...
3 创建表:create table ...
4 删除表: drop table ...

对表中的数据增删改查(DML+DQL)
添加数据

语法:
给指定列添加一条数据:insert into 表名(列1,列2,...) values (值1,值2,...);
给所有列添加一条数据:insert into 表名 values (值1,值2,...);
一次性添加多条数据:insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...),...;

例如:
-- 给指定列添加一条数据:添加 1号,张无忌,20岁
INSERT INTO stu(id,name,age) VALUES(1, '张无忌',20);
-- 给所有列添加一条数据:添加赵敏
INSERT INTO stu VALUES(2, '赵敏',18,80.5,'2001-2-21',null);
-- 一次性添加多条数据:添加张三崩,殷天正
INSERT INTO stu VALUES(3, '张三崩',88,100.0,'1921-2-21',null),(4, '殷天正',68,90.5,'1951-2-21',null);

注意:
1 添加的值要和列一一对应(顺序和类型一致,且不能超出指定长度)。

2 除了数字类型,其他类型的数据都需要使用引号引起来。推荐单引号。
删除数据

1、带条件删除
        delete from 表名 where 条件;
2、不带条件删除(删除所有数据)
        delete from 表名;  --DML语句,将表中的数据一条一条的删除
        删除所有数据还有另一种做法:TRUNCATE table 表名; -- DDL语句,将表删除,然后再创建一张一样的新表

修改数据

语法:
        不带条件修改:update 表名 set 列名=值,列=值,...;
        带条件修改:(大部分情况)update 表名 set 列名=值,列=值,... where 条件;
例如:
-- 将所有人的分数设置为100分
update stu set score=100;
-- 将所有人的分数在原来的基础上-10分
update stu set score=score-10;
-- 将赵敏的分数设置为92分,年龄设置为20
update stu set score=92,age=20 where name='赵敏';

查询数据
基础查询

-- 查询指定列数据
select 列1,列2,... from 表名;
-- 查询所有列数据
select * from 表名; -- *表示所有列,是一个通配符
-- 去重:distinct关键字
-- 查询所有的学生来自哪些城市。
select distinct address from student;
注意:只有两行数据完全一样才可以去重。
-- 计算
注意:任何数据和null做运算,结果都是null,使用ifnull函数将为null的列的值转换为0进行计算。
ifnull(列名,0):如果该列的值为null,那么将他的值用0替代参与运算。
-- 查询所有学生的总分
select name,math,english,math+IFNULL(english,0) from student;
-- 取别名: AS关键字可以省略
select name as 姓名,math as 数学,english as 英语,math+IFNULL(english,0) as 总分 from student;
select name 姓名,math 数学,english 英语,math+IFNULL(english,0) 总分 from student;

条件查询–基础的条件

语法:select * from 表名 where 条件;
比较运算符:>    >=    <    <= = !=/<>
逻辑运算符:&&/and     ||/or      推荐些英文单词
between 值1 and 值2 :在值1和值2之间,包含值1和值2
in(值1,值2,...):表示等于值1或者等于值2或者...
is null / is not null
-- 查询年龄大于20岁
select * from student where age>20;
-- 查询年龄等于20岁
select * from student where age=20;
-- 查询年龄不等于20岁
select * from student where age!=20;
select * from student where age <> 20;
-- 查询年龄小于等于20或者大于等于30
select * from student where age <=20 or age>=30;-- 推荐
select * from student where age <=20 || age>=30;
-- 查询年龄大于等于20并且小于等于30
select * from student where age >=20 and age <=30;-- 推荐
select * from student where age >=20 && age <=30;
-- 使用between ... and...
select * from student where age BETWEEN 20 and 30;

-- 查询年龄为22岁,18岁,25岁的信息
select * from student where age=22 or age=18 or age=25;
-- 使用in语句
select * from student where age in(22,18,25);
-- 查询年龄不是22岁,18岁,25岁的信息
select * from student where age not in(22,18,25);
-- 查询英语成绩为null
select * from student where english is null;
-- 查询英语成绩不为null
select * from student where english is not null;

单表查询
条件查询-模糊查询

语法:where 列名 like '带占位符的字符串’

占位符:
    _ :表示1个字符的占位符
    % :表示0或者多个字符的占位符。
例如:
-- 查询姓马的学生信息
SELECT * FROM student WHERE NAME LIKE '马%';
-- 查询包含德的学生信息
SELECT * FROM student WHERE NAME LIKE '%德%';
-- 查询包含德并且英语成绩大于等于90分的学生信息
SELECT * FROM student WHERE NAME LIKE '%德%' AND english >=90;
-- 查询姓名长度为3的学生信息
SELECT * FROM student WHERE NAME LIKE '___';

排序查询

语法:order by 列名1 asc/desc,列名2 asc/desc …

说明:排序查询是对结果进行排序,不是查询条件。先按照列1进行升序/降序排序,如果列1的值一样,那么就按照列2进行升序/降序排序。如果order by 列名后面不写asc/desc,那么默认是asc升序

-- 查询所有学生信息,按照数学成绩降序排序;
SELECT * FROM student ORDER BY math DESC;
-- 查询所有学生信息,按照数学成绩降序排序,如果数学成绩一样,那么按照英语成绩降序排序
SELECT * FROM student ORDER BY math DESC,english DESC;
-- 查询所有姓马的学生信息,并且按照数学成绩降序排序
SELECT * FROM student WHERE NAME LIKE '马%' ORDER BY math DESC;

聚合函数/统计函数

常见的聚合函数:sum(列名)、max(列名)、min(列名)、avg(列名)、count(列名)

说明:在count(列名)函数中,如果该列的值为null,则不算是一条数据,不统计。

-- 查询姓马的学生的数学成绩总和。
SELECT SUM(math) FROM student WHERE NAME LIKE '马%';
SELECT SUM(math) 数学总分 FROM student WHERE NAME LIKE '马%';
-- 查询数学成绩最高分和最低分
SELECT MAX(math),MIN(math) FROM student;
-- 统计姓马的学生的个数
SELECT COUNT(*) FROM student WHERE NAME LIKE '马%';
-- 统计姓马的学生的数学平均成绩
SELECT AVG(math) FROM student WHERE NAME LIKE '马%'

分组查询

语法:group by 列名 [having 条件]; []中的内容是可选的。**

-- 统计男生和女生的个数
SELECT sex,COUNT(*) FROM student GROUP BY sex;
SELECT * FROM student GROUP BY sex; -- 返回每组第一条数据,没有意义
-- 查询男生和女生的英语平均成绩
SELECT sex,AVG(english) FROM student GROUP BY sex;
-- having 筛选条件
-- 查询男生和女生的英语平均成绩,并且只展示平均成绩大于80分的
SELECT sex,AVG(english) FROM student GROUP BY sex HAVING AVG(english) > 80;

    where 和having的区别?

1、where后面不能使用聚合函数,having后面可以使用聚合函数。
2、分组之前使用where,分组之后使用having。
3、本质区别:where是对原始表(我们在数据库中创建的表)中的数据进行过滤,having是对查询结果进行过滤。

注意:分组之后的结果集(select后面的内容) 只能是分组字段或者聚合函数。如果*,那么返回每组第一条数据,没有意义
分页查询

语法:limit 每页数据起始索引,每页条数;

-- 查询第一页3条学生信息
select * from student limit 0,3;
-- 查询第二页3条学生信息
select * from student limit 3,3;
-- 查询第三页3条学生信息
select * from student limit 6,3;
-- 查询第四页3条学生信息
select * from student limit 9,3;

查询总结

SQL的书写顺序:select * from 表名 [where 条件] [group by 列名] [having 条件] [order by 列名 asc/desc,列名 asc/desc,...] [limit 每页数据起始索引,每页条数];

关键字在mysql底层的解析书写:from...where...group by...select...having...order by...limit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值