MYSQL学习笔记

本文详细介绍了MySQL的基础知识,包括数据库、表结构、DDL语句创建与修改、DML语句增删改、DQL查询技巧、约束规则及Navicat使用。涵盖了主键、唯一约束、非空约束等内容,并展示了SQL实例和常见问题解决方法。
摘要由CSDN通过智能技术生成

MYSQL学习笔记

MySQL介绍
1.DDL语句操作数据库以及表的create(创建),drop(删除),alter(修改)
2.DML语句对表数据进行inster,delete,update
3.DQL语句对表数据进行各种维度的select查询(简单查询,条件查询,模糊查询,分组查询)
4.mysql数据库约束(主键约束,唯一约束,非空约束)

1.什么是数据库

​ 存储数据的仓库,其本质是一个文件系统,数据库按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增删查改操作

2.常见的数据库

mysql: 开源免费

Oracle:大型收费

DB2

SQLServer

SYBase

SQList

​ 在web应用中,使用最多的是MySQL数据库

3.数据库的安装

官网下载:https://dev.mysql.com/downloads/file/?id=505212

4.数据库

​ 数据库管理系统(dataBase Management System, DBMS)

QQ截图20210526161617
5.SQL语句
5.1 什么是SQL

​ 结构化查询语言(Structured Query Language),可以对数据库进行操作的一种语言

5.2 SQL作用

​ 通过sql语句我们可以方便的操作数据库中的数据库,表,数据。

​ SQL是数据库管理系统都需要遵循的规范,不同的数据库生产厂商都支持SQL语句,但都有特有内容。

5.3 SQL语句分类

DDL 定义数据库 操作对象:数据库,表,列

DML 数据库操作语言 操作对象:数据库中的元素

DQL 数据查询语言 操作对象:数据库中的元素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ixBp3a3-1622185903779)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526162553786.png)]

5.3 SQL通用语法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uiAS9ALf-1622185903782)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526163053104.png)]

6.DDL语句
6.1操作库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HiN6ZfUF-1622185903784)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526163401086.png)]

6.1.1创建数据库
/*************dodo为创建的数据库名字*****************/
//创建数据库
CREATE DATABASE dodo;	

//查看当前的所有数据库
SHOW DATABASES; 	

//先判断再创建
CREATE DATABASE IF NOT EXISTS dodo;	

//创建数据库并指定字符集(编码表)
CREATE DATABASE dodo CHARACTER SET gdk;


6.1.2修改数据库相关信息
//修改字符集
ALTER DATABASE dodo DEFAULT CHARACTER SET gbk;

//删除数据库
DROP DATABASE dodo;

6.1.3使用数据库
//使用数据库
USE dodo;

//查看正在使用的数据库
SELECT DATABASE();

6.2 DDL操作表

表的结构与excel相似

​ 语法:

//creat-创建 table-表
CREATE TABLE 表名 (字段1 字段类型1,字段2 字段类型2...);
6.2.1MySQL数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XntsOaIA-1622185903785)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526170826170.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GnA18mbD-1622185903786)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526170913779.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WdbmpOoz-1622185903787)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526171018699.png)]

具体操作:

6.2.2建表的SQL语句
//先select要操作的数据库,然后进行建表(CREATE TABLE name(字段 类型,...))
//然后DESC name;进行查看表结构

SHOW TABKES;	//可查看当前数据库的所有表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MsA18ObO-1622185903788)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526171401331.png)]

6.2.3快速创建一个表结构相同的表
CREATE TABLE S1 LIKE students;	//S1新表名 students 旧表名
6.2.4删除表
DROP TABLE students; //删除表students

//判断删除
DROP TABLE IF EXISTS students;
6.2.5修改表

1.添加表列

ALTER TABLE 表名 ADD  列名 varchar(20)	;

2.修改列类型

ALTER TABLE 表名 MODIFY 列名 varchar(30);

3.修改列名

ALTER TABLE 表名 CHANGE 列名 intro varchar(40);

4.删除列

ALTER TABLE 表名 DROP 列名

5.修改表名

RENAME TABLE students to student1;

6.修改字符集

show create TABLE students;		//查看表	
ALTER TABLE student1 CHARACTER SET gbk;		//修改字符集
7.DML语句

DML(Data Manipulation Language)数据操作语言

用来对数据库中表的数据进行增删查改,关键字:insert,delete,update等

7.1插入记录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dav7MgLC-1622185903789)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526204929986.png)]

7.1.1插入全部字段
INSERT INTO 表名(字段1,字段2,...) VALUES(1,值2...);	//写出所有字段名

INSERT 表名 VALUE(1,值2...);		//不写字段名,默认从头全部开始
7.1.2插入部分字段
INSERT INTO 表名 (字段名1,字段名2,...) VALUE(1,2,...);//没有添加的字段会使用NULL

//查看
SELECT * FROM students;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nSbVW5Xe-1622185903790)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526213146673.png)]

7.2蠕虫复制

蠕虫复制是指在已有的数据基础之上,将原来的数据进行复制,插入到对于的表中

语法格式:

CREATE TABLE 表名1 LIKE 表名2;	//表1只复制表2的表结构
INSERT INTO 表名1 SELECT *FROM 表名2;	//新表复制旧表的表结构和所有字段以及字段值
/*选择性的复制旧表的相应字段以及字段值*/
INSERT INTO 表名1 (字段1,字段2,字段3) SELECT  字段1,字段2,字段3 FROM 表名2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PjuedAqG-1622185903790)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210526215617758.png)]

7.3更新表记录
7.3.1.不带条件修改数据

UPDATE 表名 SET 字段名=值;

7.3.2.带条件修改数据
UPDATE 表名 SET 字段名=WHERE 字段名=值;
7.3.3.关键字说明
UPDATE: 修改数据
SET: 修改那些字段
WHERE: 指定条件
7.3.4.删除表数据
/*********DELETE***********/
1.不带条件的删除表数据
DELETE FROM 表名;
2.带条件的删除表数据
DELETE FROM 表名 WHERE 地段名=;

/**********TRUNCATE*************/
TRUNCATE TABLE 表名;

区别
*delete是将表中的数据一条一条的删除
*truncate是将整个表摧毁,重新创建一个新的表,新的表结构和旧的表结构一一样
8.DQL语句

DQL(Data Query Language)数据查询语言

用来查询数据库中表的记录(数据),查询不会对数据库中的数据进行修改,只是一种显示数据的方式。

关键字:select,where等

8.1简单查询
8.1.1查询表所有数据
SELECT *FROM 表名;	// *表示所有列
SELECT 字段名1,字段名2 FROM 表名;	//查询目标字段
SELECT
8.1.2别名查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uxTTQrT4-1622185903792)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527202123595.png)]

SELECT 字段名1 AS 别名1,字段2 AS 别名2 FROM 表名;	//AS可省略
8.1.3清除重复值
1.查询指定列并且结果不出现重复值
SELECT DISTINCT 字段名1,字段名2 FROM 表名
8.1.4查询结果参与运算
1.某列数据和固定值运算
2.某列数据和其他列运算
SELECT 列名1+固定值 AS 别名1, 列名2+列名3 AS 别名2 FROM 表名 	//新增字段别名1,字段2
SELECT *,列名1+列名2 AS 别名;		//查询计算后显示所有字段
/*所有的操作不会对原始数据进行改变*/
8.2Navicat连接工具的使用
8.2.1Navicat的安装与连接本地数据库
image-20210527204344253

官网链接:http://www.navicat.com.cn/products

连接本地数据库出现错误:错误码:1045( 用户名出错)
8.2.2Navicat完成hero表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ea1091so-1622185903792)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527210442707.png)]

8.2.3查询以及逻辑运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L1ofgd6I-1622185903793)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527213253495.png)]

8.2.4LIKE 关键字

1.LIKE 表示模糊查询

SELECT *FROM 表名 WHERE 字段名 LIKE '通配符字符串';

2.MySQL通配符有两个:

%:表示0各或多个字符(任意个字符);’%笔记本’ 我的笔记本(可查) 华硕笔记本(可查) 华为笔记本1(不可查)

_:表示一个字符 ;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PM3gB4TZ-1622185903794)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527214835563.png)]

8.2.5排序

通过ORDER BY子句,可以将查询出来的结果进行排序(排序知识显示方式,不会影响数据库中数据的顺序)

语法:SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名[ASC|DESC];

ASC:升序,默认时升序

DESC:降序

1.单列排序

使用一个字段排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jD0IZJhY-1622185903795)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528092329844.png)]

2.组合排列[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-euJJfJru-1622185903796)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527220044322.png)]

8.2.6聚合函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HPHXjLlo-1622185903797)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527220351064.png)]

注意会出现NULL值的字段,如果有COUNT函数会忽略NULL哪一个字段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nqE5E8S-1622185903798)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527221000330.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-40ela9hC-1622185903799)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527221501195.png)]

8.2.7分组

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

GROUP BY 怎么分组的?将分组字段结果中相同内容作为一组

SELECT *FROM student GROUP BY id 
SELECT SUM (id),id FROM student GROUP BY id 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQouP8Rn-1622185903799)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527222719454.png)]

HAVING 条件 //分组后的条件判断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zicazy97-1622185903800)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210527223120079.png)]

具体操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgqH3dKj-1622185903801)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528091440772.png)]

8.2.8limit语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-txB3T9sT-1622185903802)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528091623476.png)]

LIMIT语法格式

LIMIT offset,length;
LIMIT length;
offset 是偏移量,可以认为市跳过的记录数量,默认是0
length 是指需要显示的记录数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KD4JDdvZ-1622185903802)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528092934548.png)]

应用场景:分页

select *from student limit 0,5 	//第一页
select *from student limit 5,10	//第二页
select *from student limit 10,15	//第三页
......

9.数据库约束

对表中的数据进行进一步的限制,保证数据的正确性,有效性和完整性。

约束条件

  • PRIMARY KEY : 主键
  • UNIQUE : 唯一
  • NOT NULL : 非空
  • DEFAULT : 默认
  • FOREIGN KEY :外键
9.1主键
9.1.1主键的作用

用来唯一标识一条记录,每一个都应该有一个主键,并且每个表只有一个主键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OIK9deGQ-1622185903803)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528094024128.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPqbrmhs-1622185903804)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528094104170.png)]

9.1.2创建主键

主键:PRIMARY KEY

主键的特点

1.主键必须包含唯一的值
2.主键列不能包含NULL

创建主键的方法:

在创建表的时候给字段添加主键

CREATE TABLE student (
	id int PRIMARY KEY,
    name VARCHAR(20);
    age int
);

删除主键的方法:

ALTER TABLE student DROP PRIMARY KEY ;
9.1.3主键自增

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-grOKiIUr-1622185903813)(C:\Users\DD\AppData\Roaming\Typora\typora-user-images\image-20210528095719417.png)]

CREATE TABLE student(
	id int PRIMARY KEY AUTO_INCREMENT,	//默认主键的初始值为1
    name varchar(20),
    age int 
);

起始值不唯一的语法
CRAETE TABLE student(
	id int PRIMARY KEY AUTO_INCREMENT=起始值,
    name varchar(20),
    age int 
);

删除操作

deletetruncate
delete只操作数据,不破坏表结构
truncate是直接删除表,它会直接摧毁表结构
9.2唯一

在这个表中这个字段不能重复

9.2.1唯一约束的基本格式

字段名 字段类型 UNIQUE

9.2.2实现唯一约束
CREATE TABLE student (
	id int PRIMARY KEY AUTO_INCREMENT,
    name varchar(20) UNIQUE
);
注意NULL值(不存在重复与不重复的问题)
9.3 非空

这个字段必须设置值,不能是NULL

9.3.1非空约束的基本语法

字段名 字段类型 NOT NULL

CREATE TABLE student(
	id int,
    name varchar(20) NOT NULL,
    gender char(2)
);
9.4默认值

王表中添加数据时,如果不指定这个字段的数据就使用默认值

默认值格式

字段名 字段类型 DEFAULT 默认值

CREATE TABLE student(
	id int;
    name varchar(20),
    phone varchar(50) DEFAULT '0933-764483'
);
class solution{
    private solution(){}
    private int age;
    private String name; 
    private static solution s;
    //静态内部方法,用于获取当前单例(懒加载模式)
    public static solution getInstance(){
        if(s==null){
             solution s=new solution();
        }
        return s;
    }
    public int getAge(){
        return this.age;
    }
    public String getName(){
        return this.name;
    }
    
    
}

段名 字段类型 DEFAULT 默认值

CREATE TABLE student(
	id int;
    name varchar(20),
    phone varchar(50) DEFAULT '0933-764483'
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值