前言
Git的使用方法
上次写了Git的使用,这次要写MySQL的使用方法。因为学校在周六开了实习课,企业到学校来带我们学生做些项目,体验了公司里做项目的模式,并且学到了一些平时课上没学过的一些知识,毕竟大一学代码的时候谁会去用Git😏。
MySQL简绍
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的是 SQL 语言,SQL语言是结构查询语言,也是比较接近自然语言的一门计算机语言,市面上许多数据库也是SQL系的。
MySQL基本语句
由于SQL与MySQL在某些方面还是有一些区别,所以我们直接从MySQL入手😁。基础操作要先从创建数据库,再到实现对数据库中数据表的增删改查。
创建数据库
命令
先创建一个数据库
create database 数据库名称;
然后就可以查看刚创建数据库的基本设定
show create database 数据库名;
查看所有的MySQL数据库
show databases;
切换数据库
use 欲切换的数据库名;
查看当前使用的数据库
select database();
更改数据库中字符编码(为gbk)
alter database db1 character set gbk;
删库 rm -rf /* 跑路🤣
drop database 数据库名;
实例展示
先是创建一个新数据库,并查看:
查看一下所有的MySQL数据库
我们切换到world数据库上,假装不知道随便查看一下当前数据库😂
再把字符编码换成gbk
然后删库,查看一下就没有了
数据表的
增(增添数据表)
在创建完数据库后,我们在数据库中进行增添数据表操作
create table 表名(
字段1 字段类型,
字段2 字段类型,
·
·
·
字段n 字段类型
);
ps:这里这个字段类型格式是:类型+(大小)
比如:姓名——> name varchar(20),
删(删除数据表)
对待删除数据表进行删除
drop table 表名;
改(修改数据表)
有时候,我们要修改数据表中的某些信息,如表名、字段名、字段类型等等
1.修改表名
alter table 数据表旧名 rename to 数据表新名;
2.修改字段名
alter table 数据表名 change 字段旧名 字段新名 新数据类型;
3.修改字段数据类型
alter table 数据表名 modify column 字段名 类型;
或
alter table 表名 modify 字段名 类型;
4.增加字段
alter table 表名 add 新增字段名 新增字段类型;
5.删除字段
alter table 表名 drop 待删字段名;
查(查看数据表)
查看数据库的命令,上面有述,查看数据表的命令也是类似,有些也就是将database替换成了table
查看所有数据表:
show tables;
查看新创表的基本信息
show create table 数据表名;
查看表内字段信息**
desc 字段名;
实例展示
我们要在kdny_java05中,建一个member表,并包含id、姓名、性别等信息
这就遇到了一个一开始常见的问题,就是在新创了一个数据库后,就直接创建数据表,而忽略了我们并没有选择待操作数据库,所以需要先选择一下database
这样就新建成功了,然后,我们对这个member表进行一些修改操作
- 将表名从member改为group_member
- 把字段name改为member_name
- 将字段id的类型改为varchar(20)
- 增加birthday字段
- 删除gender字段
对这些表信息修改完毕后,再来查看表
- 查看所有数据表
- 查看刚创建表group_member信息
- 直接查看group_member的字段信息
然后删表。。。(建一个新的删吧的😐)
嗯,我们看到这个表中数据是缺省的,所以我们下一步是要进行导数据入表的操作。
对数据表的约束
对数据表的约束是含有主键、外键、非空、唯一性以及默认值这五大约束条件构成。
而对数据表进行约束是为了防止错误的数据插入操作影响及破坏了数据表的完整与稳定。
主键约束(primary key)
主键约束用于唯一的标识表中的每一行。被标识为主键的数据在表中是唯一的且其值不能为空。往往代表或是该数据的常态表示(“身份”)。
字段名 数据类型 primary key;
外键约束(foreign key)
外键就是其他数据表的主键,在另一个数据表中就被称为外键,这个另一个表就称为主表,之前作为主键的表就是从表。作用就是维护数据的参照完整性
申明外键
alter table 从表名 add constraint 外键名 foreign key (从表外键字段) refferences主表 (主键字段);
删除外键
alter table 从表名 drop foreign key 外键名;
非空约束(not null)
非空约束指的是字段的值不能为空
字段名 数据类型 NOT NULL;
唯一性约束(unique)
唯一性约束即UNIQUE用于保证数据表中字段的唯一性,即表中字段的值不能重复出现
字段名 数据类型 UNIQUE;
默认值(default)
默认值约束用于给数据表中的字段指定默认值,即当在表中插入一条新记录时若未给该字段赋值,那么,数据库系统会自动为这个字段插人默认值
字段名 数据类型 DEFAULT 默认值;
数据的
增(向数据表中增加数据)
增添数据至指定字段
insert into 表名(字段名1,字段名2,...) values (值 1,值 2,...);
这个字段1、2顺序不需要遵循定义的顺序,但是要和后面的赋值一一匹配
并且,这样添加并不限制字段数,可以指定一两个字段添加,也可以指定一次为所有的字段进行添加。
一次添加多条数据
有时候,我们有多组数据需要一次添加,就需要使用以下操作
insert into 表名[(字段名)] values(值1,值2,...),(值1,值2,...),...;
这个的用法和之前类似,只是要注意每一个字段与其值一一对应
删(删除数据表中数据)
删除指定数据(由条件表达式限制)
delete from 表名 [where 条件表达式];
没有条件限制,就是删除全部数据
delete from 表名;
truncate与delete区别:
TRUNCATE和DETELE都能实现删除表中的所有数据的功能,但两者也是有区别的:
1、DELETE语句后可跟WHERE子句,可通过指定WHERE子句中的条件表达式只删除满足条件的部分记录;但是,TRUNCATE语句只能用于删除表中的所有记录。
2、使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时自动增加字段的默认初始值重新由1开始;使用DELETE语句删除表中所有记录后,再次向表中添加记录时自动增加字段的值为删除时该字段的最大值加1
3、DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句
改🤐更新数据
在MySQL中实现更新数据是使用update语句
update 表名 set 字段名1=值1[,字段名2 =值2,…] [where 条件表达式];
和delete语句一样,where条件是限制更新数据范围,而当没有提及条件时,就是默认全部数据更新。
通过对数据的录入、删除以及更新,我们就可以实现对数据的修改操作。
查(数据表查询)
查看所有字段数据
select * from 表名;
查看指定字段
select 指定字段名1,指定字段名2,... from 数据表;
通过常数查找
通常我们要通过某一固定数值来指定查找相应的数据,比如:学号、日期
select 字段名1,字段名2,...,'常数' from 表名;
查看时过滤重复信息
select distinct 字段名 from 表名;
注意:这个distinct关键词只能用在第一个所查类名之前。
条件查询
MySQL中,我们可以通过使用条件连接词来扩大查询范围
使用关系连接符
关系运算符 | 说明 |
---|---|
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
select * from 表名 where 约束条件;
例如:select * from member where age >= 18;
and关键字条件查询
and关键字用以连接两个及以上查询条件,以实现条件约束
select * from 表名 where 条件1 and 条件2;
or关键字条件查询
or 用法和and 类似,or连接的条件是满足其中之一就可以实现查询
select * from 表名 where 条件1 or 条件2;
in 关键字条件查询
in关键字是用来指定查看范围
select * from 表名 where 字段名 in ('集合元素1','集合元素2'...);
not in 就是查看其补集部分
select * from 表名 where 字段名 not in ('集合元素1','集合元素2'...);
between and 关键字查询
between and 关键字用来指定一定范围,然后可以查询这段范围内的字段信息
select * from 数据表 where 字段名 between 范围下限 and 范围上限;
like 关键字查询
like关键字是用来判段字符是否匹配,当要查询含有一定字符的数据时,可以使用。另外,为了避免查询对应字符时有一定需求,或是存在关键待查字符的部分遗忘,这里可以使用通配符
基本格式是
select * from 表名 where 字段名 like '待查字符(串)';
这个待查字符(串)可以引入通配符
通配符 | 用法 | 示例 |
---|---|---|
% | %后可以占位任意长度字符串 | ca% 可以查看到 cat、capital、carbon等字符串 |
_ | _只匹配单个字符,如果要匹配多个字符,需要连续使用多个下划线通配符 | ca_ 可以查看 cap、cat、cab等字符;b__e 可以查看byte、bore、bare等字符串 |
limit 关键字查询
有时当查出来的数据结构有很多组,我们就可以通过limit来限制返回查看的信息条数
select * from 表名 order by 字段名 asc limit 限制条数;
null关键字查询
null代表空值,当我们想要查询某一字段为空或非空的数据时,就可以使用
select * from 表名 where 字段名 is/ is not null;
关于查询这里就不一一论述了😭主要是太多了,诸如主外关联查询、多表连接查询、子查询此类,毕竟数据表里存数据不就是用来查的嘛😥…