MySQL基础语法(详细版)

文章目录

1.数据库的介绍

1.1 数据库概念

1.1.1 数据的存储方式

在这里插入图片描述

1.1.2 什么是数据库

(1)存储数据的仓库
(2)本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。
(3)所有的关系型数据库都可以使用通用的SQL语句进行管理 DBMS DataBase Management System

在这里插入图片描述

  • MySQL:开源免费的数据库,小型的数据库,已经被Oracle收购了。MySQL6.x版本也开始收费。后来Sun公司收购了MySQL,而Sun公司又被Oracle收购
  • Oracle:收费的大型数据库,Oracle公司的产品
  • DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中。
  • SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
  • SQLite: 嵌入式的小型数据库,应用在手机端,如:Android。

2.数据库的安装与卸载

2.1数据库的安装

2.2数据库的卸载

啊啊啊,弄了好久
安装失败的几个原因:
1、说明:你们的PC名字不要使用中文,如果使用中文可能会导致软件安装包报错。

https://www.cnblogs.com/diaoye/p/9665392.html

3.数据库服务的启动与登录

3.1 Windows服务方式启动

3.1.1 操作步骤

在这里插入图片描述

在这里插入图片描述

3.2 DOS命令方式启动

3.3 控制台连接数据库

MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录

3.3.1 登录格式1:u和p后面没有空格

3.3.2 登录格式2:

3.3.3 登录格式3:

3.3.4 退出MySQL:

quit或者exit

3.4 SQLyog(Navicat)图形化工具——客户端

在这里插入图片描述

在这里插入图片描述

3.5 MySQL目录结构

在这里插入图片描述

3.6 数据库管理系统(DBMS)

3.7 数据库管理系统、数据库和表的关系

数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体User的数据。

数据库管理系统、数据库和表的关系如图所示:

在这里插入图片描述

1)一个数据库服务器包含多个库
2)一个数据库包含多张表
3)一张表包含多条记录

4.SQL的概念

4.1 什么是SQL

Structured Query Language 结构化查询语言

4.2 SQL作用

1)是一种所有关系型数据库的查询规范,不同的数据库都支持。
2)通用的数据库操作语言,可以用在不同的数据库中。
3)不同的数据库SQL语句有一些区别

在这里插入图片描述

4.3 SQL语句分类

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

4.4 MySQL的语法

1)每条语句以分号结尾,如果在SQLyog中不是必须加的。
2)SQL中不区分大小写,关键字中认为大写和小写是一样的
3)3种注释:
在这里插入图片描述

5.DDL(数据定义语言, 如:建库,建表)操作数据库

5.1 创建数据库

5.1.1 创建数据库的几种方式

创建数据库

CREATE DATABASE 数据库名;

判断数据库是否存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

5.1.2 具体操作

5.2 查看数据库

-- 查看所有的数据库
show databases;
-- 查看单个数据库的创建信息
show create database dbName;

5.3 修改数据库

5.4 删除数据库

6.DDL操作表结构(数据定义语言, 如:建库,建表)(前提先使用某个数据库)

6.1 创建表

6.2 MySQL数据类型

6.2.1 常使用的数据类型如下:

在这里插入图片描述

6.2.2 详细的数据类型如下

在这里插入图片描述

6.2.3 具体操作

6.3 查看表

查看某个数据库中的所有表
SHOW TABLES;

查看表结构
DESC 表名;

查看创建表的SQL语句
SHOW CREATE TABLE 表名;

mysql> use db0323
Database changed
mysql> show tables

在这里插入图片描述

	desc user3;

在这里插入图片描述

show create table user3;

6.4 快速创建一个表结构相同的表

-- 创建一个s1的表与student结构相同
create table like_user3 like user3;
desc user3;

在这里插入图片描述

6.5 删除表

-- 直接删除表s1表
drop table s1;
-- 判断表是否存在并删除s1表
drop table if exists `create`;	

6.6 修改表结构

添加表列ADD
alter table user3 add age INT;
修改列类型modify
-- 将student表中的remark字段改成varchar(100)
ALTER TABLE student MODIFY remark VARCHAR ( 100 )
修改列名 change
-- 将user3表中的age字段名改成money,类型int
alter table user3 change age money INT
删除列 DROP
-- 删除user3表中的字段money
alter table user3 drop money;
修改表名rename
-- 将学生表user3改名成user4
rename table user3 to user4;
修改字符集character set
-- 将user3表的编码修改成gbk
alter table user3 character set gbk;

7.DML(数据操纵语言)操作表中的数据(用于对表中的记录进行增删改操作)

增加全部字段
-- 插入所有的列,向学生表中
insert into user3 (username,password1	)values ('韩信',999);

insert into user3 values (2,'李白',123456);

注:没有添加数据的字段会使用NULL

在这里插入图片描述

增加部分数据
insert into user3 (username)values ('镜');

在这里插入图片描述

-- 修改
update user3 set password1 = 10002;
update user3 set password1 = 10001 where username = '镜';

在这里插入图片描述

-- 删除数据
delete from user3; -- 危险
-- 可不可以条件删除呢? 按照条件去匹配,删除符合我们条件的行
delete from user3 where username = '张三';
delete from user3 where id = 1;
delete from user3 where id > 2;

8.DQL(数据查询语言)查询表中的数据

where、and、or

-- 查询单列、查询多列
    select * from t_students;
--  1. 查询语数外总成绩大于 180 的同学信息;
select * from t_students where chinese + english + math > 180;
--  2. 查询数学成绩在[80,90]区间的同学姓名;
select * from t_students where math >= 80 and math <= 90;
--  3. 查询各科都及格的同学姓名;
select name from t_students where chinese >= 60 and english >= 60 and math >= 60;
--  4. 查询一班和二班的同学信息;
select * from t_students where class = '一班' or class = '二班';

8.1 简单查询

8.1.1 查询表所有行和列的数据

8.1.2 查询指定列

8.2 指定列的别名进行查询

8.2.1 使用关键字

8.2.3 具体操作

8.3 清除重复值

8.4 查询结果参与运算

8.5 条件查询

8.5.1 为什么要条件查询

8.5.2 条件查询的语法

9.DCL数据控制语言

9.1 排序

9.1.1 单列排序

9.2 聚合函数

9.2.1 五个聚合函数

之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,
然后返回一个结果值。聚合函数会忽略空值NULL

在这里插入图片描述

SELECT 聚合函数(列名) FROM 表名;
-- 查询学生总数
select count(id) as 总人数 from student;

select count(*) as 总人数 from student;

9.3 分组:使用 GROUP BY语句对查询信息进行分组,相同数据作为一组

GROUP BY	合并后只有1GROUP CONCAT	合并后依然多个

结合聚合函数一起使用
select class from t_stutdents group by class;
select class,group_concat(name) from  t_stutdents group by class;

select class,count(class),avg(chinese),sum(chinese) from t_stutdents group by class;


9.3.1 having与where的区别

在这里插入图片描述

9.4 limit分组

9.4.1 准备数据

9.4.2 limit的作用

9.4.3 LIMIT语法格式:

9.4.4 LIMIT的使用场景

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lacrimosa&L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值