MySQL数据库知识点总结(基本篇)

目录

 

MySQL数据库和SQL语句(重点)

1、数据库的简介

2、MySQL数据库的安装和卸载

3、MySQL数据库概念

4、SQL语言(操作数据库)

5、SQL语言分类

1、数据库的操作(CURD)创建数据库(重点)

2、查看数据库(重点)

3、表结构操作(CURD)

<1>创建表

<2>数据库的数据类型(重点)

<3>单表的约束(了解)

<4>查看表和删除表(掌握)

<5>修改表(掌握)

4、数据操作

<1>插入数据(insert添加)(掌握)

<2>如何解决中文乱码(*)

<3>修改数据的语句(update更新)(掌握)

<4>删除数据的语句(delete可以还原/truncate不可还原)(掌握)

<5>查询数据的语句(select)(掌握)

(1)where子句后可以使用的符号

(2)使用order by 对结果进行排序

(3)聚集函数

(4)分组查询概念

1、单表的约束(主键)

2、唯一和非空约束

3、多表约束(外键)

4、多表的设计(3种方式)

5、多表的查询(重要)

<1>多表查询之内连接

<2>多表查询之外连接

<3>总结

<4>内连接和外连接的数据的区别

6、子查询


MySQL数据库和SQL语句(重点)

1、数据库的简介

1、什么是数据库:数据仓库。访问必须只能用SQL语句来访问。数据库也是一个文件的系统。
2、数据库的作用:存储数据的作用。开发任何的应用,都有数据库。
3、关系型的数据库:数据库中保存的都是实体之间的关系。
4、常见的数据库
	*Java开发,必须的两个数据库Qracle和MySQL
		*Oracle数据库(甲骨文)   大型的数据库,收费的。
		*MySQL数据库   小型数据库,免费开源的。被Qracle收购了(在6.x版本下开始收费了)
		*SQLServer     微软的数据库
		*DB2           IBM公司产品,大型的数据库,收费的。
		*SyBASE        退出了历史的舞台。PowerDigener(数据库的设计的工具)

2、MySQL数据库的安装和卸载

1、MySQL数据库的卸载
	*先找到MySQL的安装路径,找到my.ini配置文件。
	*[一般安装路径]basedir="C:/Program Files(x86)/MySQL/MySQL
	 Server 5.5/"     --MySQL安装路径(my.ini没有删除)
	*basedir="C:/ProgramData/MySQL/MySQL
	 Server 5.5/Data/"   --MySQL数据存放位置(手动删除)
	*直接通过控制面板卸载程序。
2、安装MySQL
	*安装的路径中不能有中文和空格。
3、进行测试
	*cmd  --输入mysql -u root -p --回车--输入密码--进入MySQL的服务器。

3、MySQL数据库概念

1、总结:一个数据库的服务器中包含多个数据库,一个数据库中有多张表,一个表中包含多个字段(字段和JavaBean的属性是对应),表中存放是数据,一行数据和一个JavaBean实体对象是对应的。

4、SQL语言(操作数据库)

1、Structured Query Language,结构化查询语言
2、SQL非过程性的语言
	*过程性的语言:依赖上一条或者几条语句执行。
	*非过程性的语言:一条语言,就对应一个返回结果。
3、SQL语言是基础
	*在Oracle使用自己的语言,PL/SQL只能在Oracle来说使用。

5、SQL语言分类

1、DDL    数据定义语言
	*创建数据库  创建表   创建视图  创建索引  修改数据库  删除数据库  修改表  删除表
	*create --创建  alter --修改  drop--删除
2、DML    数据操作语言
	*操作数据  插入数据(insert添加) 修改数据(update更新) 删除数据(delete)
3、DCL    数据控制语言
	*if else while
4、DQL    数据查询语言
	*从表中查询数据(select)

1、数据库的操作(CURD)创建数据库(重点)

1、创建数据库的语法
	*基本的语法:create database 数据库名称;
	*正宗的语法:create database 数据库名称  character set 编码 collate 校对规则;
2、校对规则(了解):决定当前数据库的属性。

创建一个名称为my1的数据库。
	*create database my1;
创建一个使用utf-8字符集的my2数据库。
	*create database my2 character set 'utf-8';
创建一个使用utf-8字符集,并带校对规则的my3数据库。
	*create database my3 character set 'utf-8' collate 'utf8_bin';

2、查看数据库(重点)

1、show database;           --查看所有的数据库
2、use 数据库名称;(*****)    --使用数据库
3、show create database 数据库名称;   --查询数据库的建的信息
4、select database();       --查询当前正在使用的数据库

3、表结构操作(CURD)

<1>创建表

1、语法:
	create table 表名称(
		字段1 类型(长度)约束,
		字段2 类型(长度)约束,
		字段3 类型(长度)约束
	);
2、注意:
	*创建表的时候,后面用小括号,后面分号。
	*编写字段,字段与字段之间使用逗号,最后一个子段不能使用逗号。
	*如果声明字符串数据的类型,长度是必须指定的。
	*如果不指定数据长度,有默认值的。int类型的默认长度是11
	
3、创建一张表结构(员工表练习)
	create table employee(
		id int,
		name varchar(30),
		gender char(5),
		birthday date,
		entry_date date,
		job carchar(50),
		salary double,
		resume text
	);
4、执行SQL语句
	*查询当前正在使用的数据库  select database();
	*选择你要使用的数据库     use 数据库名;
	*执行创建表的SQL语句。
	
5、使用desc employee;查询表的信息

<2>数据库的数据类型(重点)

1、字符串型(重点)
	VARCHAR(用的比较多):长度是可变的。  
	例子:name varchar(8),存入数据hello,存入进去之后,name字段长度自动变成了5.
	CHAR:长度是不可变的。
	例子:name char(8)存入数据hello,用空格来不全剩余的位置。

2、大数据类型(不常用)
	BLOB:字节(电影 mp3)
	TEXT:字符(文本的内容)
3、数值型(重点)
	TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
4、逻辑性
	BIT
	在Java中是true或者false
	在数据库bit类型(1或者0)
5、日期型(重点)
	DATE     :只包含日期(年月日)
	TIME     :只包含时间(时分秒)
	DATETIME :包含日期和时间。如果插入数据的时候,字符值为空,字段的值就是空了。
	TIMESTAMP:包含日期和时间。如果插入数据的时候,设置字段的值为空,默认获取当前的系统的时候,把时间保存到字段中。

 

<3>单表的约束(了解)

1、约束的好处:保证数据的完整性。
2、主键约束(重要)代表记录的唯一标识。
	*关键字:primary key 通过该关键字声明某一列为主键。
	*唯一               值就不能相同
	*非空               值也不能为空
	*被引用             (和外键一起来使用)
3、唯一约束
	*声明字段值是唯一的。使用关键字  unique
4、非空约束
	*声明字段的值是不能空的。  not null

<4>查看表和删除表(掌握)

查看表:
	1、查询所有的表结构,前提条件,先切换到数据库中。
		*show tables;
	2、查询表结构的详细的信息
		*desc 表名称;
	3、查看表结构定义的信息
		*show create table 表名称;
删除表:
	1、删除表结构
		*drop table 表名称;

<5>修改表(掌握)

1、添加一个新的字段
	*alter table 表名称 add 字段名称 数据类型(长度)约束;
2、修改字段的数据类型、长度或者约束
	*alter table 表名称 modify 字段名称 数据类型(长度)约束;
3、删除某一个字段
	*alter table 表名称 drop 字段名称;
4、修改字段的名称
	*alter table 表名称 change 旧字段 新字段 数据类型(长度)约束;
5、修改表的名称
	*rename table 旧表名 to 新表名;
6、练习
*在员工表的基础上增加一个image列。
	alter table emp add image varchar(30);
*修改job列,使其长度为60。
	alter table emp modify job varchar(60);
*删除gender列。
	alter table emp drop gender;
*表名改为user。
	rename table emp to user;
*列名name修改为username。
	alter table user change name username varchar(30);

 

4、数据操作

<1>插入数据(insert添加)(掌握)

1、添加数据,使用insert关键字来添加数据
	*insert into 表(字段1,字段2,字段3)valuse(值1,值2,值3);---向表中的指定的字段中添加值
	*insert into 表 values (值1,值2,值3...);              ---向表中的所有的字段添加值
2、注意事项:
	*插入的数据与字段数据的类型相同
	*数据的大小应该在规定的范围内
	*数据中的数据的列的位置和字段位置是相同的
	*字符串和日期类型的数据,必须要使用单引号括起来

<2>如何解决中文乱码(*)

1、插入中文,会产生乱码的问题。
2、怎么产生?怎么解决?
	*解决的方案,修改MySQL客服端的编码就可以了。改成GBK
	
3、修改MySQL客户端的编码
	*先把MySQL服务器停止
	*找到MySQL安装的路径,找到my.ini的配置文件
	*修改客户端的编码,改成gbk
		[client]
		port=3306
		[mysql]
		default-character-set=gbk
	*重启动MySQL的服务

<3>修改数据的语句(update更新)(掌握)

1、修改数据,使用update关键字来完成修改数据
	*update 表名称 set 字段1=值1,字段2=值2 where 条件;
	*修改字段1和字段2的值
		*如果没有where的关键字,说明修改的默认所有的记录
		*如果有where的关键字,修改的是符合条件的记录
2、注意
	*如果要是没有where的条件子句,默认是修改所有的数据。
	*如果有where的条件子句,修改的符合条件的数据。

<4>删除数据的语句(delete可以还原/truncate不可还原)(掌握)

1、删除语法的语法
	*delete from 表 where 条件;
		*如果不加where,默认删除所有的数据
		*如果添加where条件,删除符合条件的数据
		
2、删除所有的数据
	*delete from 表;
		*一行一行的数据
		*支持事物的操作。事物是数据库中的特性。
		
	*truncate 表;
		*先把整个表删掉(数据也删除了),创建一个与原来一模一样的表(表里没有数据【空表】)
		
3、例如:
	*删除表中名称为‘tom’的记录。
		*delete from user where username = ‘tom’;
		
	*删除表中所有记录。
		*添加数据
			*start transaction;
			*delete from user where username = ‘tom2’;
			*rollback;         --恢复所有表中数据
			
	*使用truncate删除表中记录。
		*truncate user;

<5>查询数据的语句(select)(掌握)

查询语句的语法
	*select * from 表;                    --默认查询所有的字段的数据
	*select 字段1,字段2,字段3 from 表;     --查询指定的字段的数据
	*DISTINCT                              --去除重复的关键字
	*可以对查询的列进行运算
	*查询语句中可以使用as的关键字,起别名。
		*别名的真正的用法,采用的多表的查询,为了区分每张表,表起个别名。
		*as的关键字可以省略不限。中间需要使用空格
		*一般都是给表来起别名
			*select s.username,s.math from stu s;
			*select s.username,u.username from stu s,user u;
	*使用where的条件语句,进行查询条件的过滤

(1)where子句后可以使用的符号

1、常用的符号
	* > < <= >=  <>(不等于)
	*in --代表的范围。
 		* select * from stu where math = 88; ---查询一条数据,条件是数学=88
 		* select *from stu where math in(18,88,90) ---查询的结果可能是多条数据,数学的成绩
 		
 需要在in值的范围内
	*like ---模糊查询
 		*like关键字的值的写法
  			* select * from stu where username like '张_';----使用占位符,结果:张飞,张三,张x,张翼德(不符合)
 			 * select *from stu where username like '张%'; ----使用%占位符,结果是姓张的都会查询出来
 			 * like '%张'; ----结果:以张结尾的,飞张 医德张 
  			* like '%张%'; ----结果:只要包含张的就可以 张 张飞 医德张 
  *总结like的关键字
  	 *条件需要使用单引号
     *需要使用占位符
    	*_              --代表的一个位置
   		*%              --代表的多个位置
   		*and            --与
   		*or             --或
   		*not            --非
   		*between...and

(2)使用order by 对结果进行排序

1、语法
	*order by 字段 asc | desc;
		*asc      --代表升序(默认值)
		*desc     --代表降序

2、注意
	*order by 自己放在select的语句末尾。
	*eg:select * from xx where xx order by xx;

(3)聚集函数

1、什么是聚集函数:Excel表格。求数量,求和,平均值,最大值,最小值。
2、聚集函数操作的都是某一列的数据。
3、聚集函数
	*count()---求数量
	例如:select count(*)| count(列名)from 表;   --某一列数据行的总数
	*sum()  ---求某一列数据的和
	例如:select sum(列名)from 表;   --某一列数据行的和
	注意:没有sum(*),求的某一列,sum对数值类型起作用。
4、总结
	*聚集函数、是函数,不要忘记编写()
	*计算都是某一列的数据
	*聚集函数
		*count()           --求数量
		*sum()             --求和
		*avg()             --平均值
		*max()             --最大值
		*min()             --最小值

(4)分组查询概念

1、分组产生效果?聚集函数与分组效果。
2、select * from stu;        --查询所有数据。默认是一组。
3、可以使用关键字 group by sex 根据字段进行分组。
*注意
	*使用where的条件,如果有分组,where的条件是分组之前的条件。
	*新的关键字,having关键字进行分组的条件过滤。
*总结
	*where关键字后不能使用聚集函数,而是having可以使用聚集函数!!

 

1、单表的约束(主键)

1、可以把某一列字段声明主键,这一列的数据有如下特点
	*唯一
	*非空
	*被引用         --当前主键的列,作为一条记录的标识。
	
2、声明主键
	*使用关键字 primary key 声明某一个字段为主键。
	
3、主键的自动增长
	*主键的值特点,可以把主键的值交给数据库去维护。
	*自动增长只能使用int和bigint类型
	*通过关键字 auto_increment
	
	*演示自动增长
		drop table person;
		create table person(
			id int primary key auto_increment,
			username varchar(20)
		);
	
	*添加数据的时候
		*insert into person values (null,‘美美’);
		*insert into person values (null,‘懒懒’);
		*insert into person values (2,‘小花’);
	
	*如果删除了一条记录
		*delete from person where id = 2;

4、开发中,主键基本上是必须要设置的。

2、唯一和非空约束

1、唯一的约束
	*可以把某个字段声明成唯一的值。
	*使用该关键字 unique
	
2、非空
	*可以把某个字段声明成非空的
	*值是不能为空值。
	*使用关键字 not null

3、多表约束(外键)

*外键的约束:目的保证表结构中的数据的完整性!!
1、模拟的过程
2、有一个部门表,还有一个员工表。一个部门下有多个员工。
3、直接删除部门,程序是可以的,但是不合理。通过设置外键的约束来避免这一类的问题的发生。数据要保证完整性!!

4、多表的设计(3种方式)

*一对多
	*在多方表中,创建一个新的字段,作为当前表的外键,指向一方表的主键。
*多对多
	*先创建一张中间表,中间表中至少包含2个字段,两个字段作为当前中间表的外键,指向原来多对多表的主键。
*一对一
	*一对一,一般不处理,放在同一张表中就可以。

5、多表的查询(重要)

<1>多表查询之内连接

*前提条件:两个表有联系,通过外键关联。
1、普通内连接
	*语法: 关键字 ... inner join ... on 条件;
	*注意:
		*在 inner join关键字之前写表1
		*在 inner join关键字以后写表2
		*on的后面写条件:(表1是dept,表2是emp)dept.did = emp.dno
		
	*语句:	select * from dept inner join emp on dept.did = emp.dno;
	
2、隐式内连接(用的最多)
	*语法:select...from 表1,表2 where 表1.字段 = 表2.字段;
	*语句:select * from dept,emp where dept.did = emp.dno;
	*别名:select * from dept d,emp e where d.did = e.dno;
	*指定字段:select d.dname,e.ename,e.sal from dept d,emp e where d.did = e.dno;

<2>多表查询之外连接

1、左外连接(左连接)
	*语法: ...表1  left outer join 表2 on 表1.字段 = 表2.字段
	*语句:	select * from dept left outer join emp on dept.did = emp.dno;
	*特点:看左表,默认把左表中全部数据都查询出来,再查询出有关联的数据。

2、右外连接(右连接)
	*语法:...表1  right outer join 表2 on 表1.字段 = 表2.字段
	
	*语句:	select * from dept right outer join emp on dept.did = emp.dno;

<3>总结

1、笛卡尔积
	*两个结果的乘积,数据是重复,目的:去除掉重复的数据
	
2、需要使用多表的查询
	*内连接
		*普通内连接
			*表1 inner join 表2 on 主键和关键关联
			
		*隐式内连接
			*select * from 表1,表2 where 条件;
			
	*外连接
		*左外连接
			*表1 left outer join 表2 on
		*右外连接
			*表1 right outer join 表2 on

<4>内连接和外连接的数据的区别

*如果数据正常的话,不管是内连接和外连接,查询的结果都是一样的。
1、内连接查询的结果都是有关系的数据
2、左连接,先看SQL语句中哪个表是左表,把左表中的数据全部都查询出来,和有关系的数据也会查询出来。
3、右连接,先SQL语句中的那个表是右表,把右表中的数据全部查询出来,和有关系数据查询出来。
*eg:
	*内连接
		*select * from dept d,emp e where d.did = e.dno;
		*查询的结果都是主外键关联的数据
	*左连接
		*select * from dept left outer join emp on dept.did = emp.dno;
		*把左表中所有的数据全部都查询出来和有关联的数据
	*右连接
		*select * from dept right outer join emp on dept.did = emp.dno;
		*把右表中所有的数据全部都查询出来和有关联的数据

6、子查询

1、子查询,嵌套查询,一个select语句不能查询出结果的,可以通过多个select语句来查询结果。
2、例子:查询出英语成绩大于英语平均分的同学?
	*先计算出英语的平均分(select avg(english)from stu;)
	*再编写select语句
		*select username,english from stu where english >(select avg (english)from stu);

 

  • 19
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试工程师在使用MySQL时需要掌握以下知识点: 1. SQL语句的使用:熟悉SQL语句可以提高测试工程师在数据库校验和接口自动化中的效率。常用的SQL语句包括查询、插入、更新和删除等操作,测试工程师需要了解这些基本SQL操作以及各种查询条件的使用。 引用 2. MySQL客户端工具:测试工程师可以使用MySQL的客户端工具来连接和管理数据库。常用的MySQL客户端工具包括Sequel Pro、Navicat和SQLyog等。测试工程师需要熟悉这些工具的使用,包括连接数据库、执行SQL语句以及查看和修改数据等操作。 引用 3. 数据库校验:测试工程师在测试过程中通常需要对数据库中的数据进行校验,确保系统的各个模块正常运行和数据的一致性。测试工程师需要了解如何编写SQL语句来验证数据库中的数据是否符合预期结果。 引用 总结起来,测试工程师在MySQL方面的知识点包括SQL语句的使用、MySQL客户端工具的操作以及数据库校验等方面的知识。这些知识可以帮助测试工程师进行数据库相关的测试工作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [测试工程师入门知识点整理](https://blog.csdn.net/embracestar/article/details/125818154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值