MySQL数据库从入门到精通02(基础篇)
admin
2024-03-01 18:12:19
0次

一、MySQL概述

  1. MySQL数据库相关概念

    数据库:database,简称DB。按照一定的数据结构来组织 、存储和管理数据的仓库。
    数据库管理系统:database management system,简称DBMS。一种操纵和管理数据库的大型软件,用于创建、使用和维护数据库。

>关系型数据库(RDBMS):关系型数据库,是建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

>>特点:1. 使用表存储数据,格式统一,便于维护;

2. 使用SQL语句操作,标准统一,使用方便;

3. 数据存储在磁盘中,安全。

>非关系型数据库:Not-Only SQL,泛指非关系型数据库,是对关系型数据库的补充。

>>特点:1. 数据结构灵活

2. 伸缩性强

SQL

>结构化查询语句(Structured Query Language),简称SQL。

>是一种操作关系数据库的编程语言,定义了一套操作关系数据库统一标准。

  1. MySQL数据库

    版本:

>社区版(MySQL Community Server):免费,MySQL不提供任何技术支持。

>商业版(MySQL Enterprise Edition):收费,试用30天,官方提供技术支持。

二、SQL

(一)mysql相关安装配置

1.下载:官网

2.卸载:

(1)停止mysql服务
  win+R→输入services.msc→服务→找到mysql并停止。
(2)卸载mysql程序,mysql免安装版的删除安装目录即可
  win+R→输入control→控制面板→卸载程序→找到mysql并卸载。
(3)彻底删除mysql配置文件和数据目录
  确保安装目录已删除干净,我的安装目录是C:\Program Files\MySQL\MySQL Server 5.5\;
找到隐藏的数据目录并删除,默认安装位置在C:\ProgramData\MySQL\目录下,删除其中对应旧版本的mysql的目录,我的数据目录是C:\ProgramData\MySQL\MySQL Server 5.5/。
3.清理注册表:

win+R→输入regedit→注册表编辑器

4.安装:

运行mysql-installer-community-8.0.26.0.msi

参照:https://blog.csdn.net/rainbow19931121/article/details/116807859

5.启动

进入服务——》services.msc——》找到mysql服务启动、停止

6.客户端连接

方式一:mysql提供的客户端命令行工具(第二个),然后输入密码就可以连接MySQL了

方式二:win+R打开命令窗口,然后输入mysql -u root -p,然后输入密码就可以连接MySQL。

7.数据模型

============================================================

(二)MySQL相关语法以及基本内容

  1. SQL通用语法

  2. SQL分类

3.DDL(数据库定义语言)——》数据库操作

(1)查询数据库

》查询所有数据库

show databases;

         》查询当前数据库 

select database();

(2)创建数据库

Create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
create database test;
create database if not exists test default charset utf8mb4;

    (3)删除数据库

drop database [if exists]数据库名;

drop database test;
drop database if exists test;

(4)使用

user 数据库名;

use test;

(5)查询当前数据库所有表

show tables;

(6)查询表结构

desc 表名;

desc tb_user;

(7)查询指定表的建表语句

show create table 表名;

(8)表操作——创建表

create table 表名(
字段1 字段1类型[comment 字段1注释],
字段2 字段2类型[comment 字段2注释]
)[comment 表注释];

create table tb_user(
id int comment ‘编号’,
name varchar(50) comment ‘名字’,
age int comment ‘年龄’,
gender varchar(1) comment ‘性别’
)comment ‘用户表’;

(9)数据类型

MySQL中数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型 大小 有符号(singned)范围 无符号(unsigned)范围 描述
tinyint 1 byte (-128,127) (0,255) 小整数值
smallint 2 byte (-32768,32767) (0,65535) 大整数值
mediumint 3 byte (-8388608,8388607) (0,16777215) 大整数值
int或integer 4 byte (-2147483648,2147483647) (0,4294967295) 大整数值
bigint 8 byte (-263,263-1) (0,2^64-1) 极大整数值
float 4 byte (-3.402823466 E+38,3.402823466351 E+38) 0和 单精度浮点数值
double 8 byte (-1.7976931348623157E+308,1.7976931348623157E+308) 0和 双精度浮点数值
decimal   依赖于M(精度)和D(标度)的值 依赖于M(精度)和D(标度)的值  小数值(精确定点数)

* 视频、音频属于二进制,使用blob

案例:

create table emp(
id int comment ‘编号’,
workno varchar(10) comment ‘工号’,
name varchar(10) comment ‘姓名’,
gender char(1) comment ‘性别’,
age tinyint unsigned comment ‘年龄’,
idcard char(18) comment ‘身份证号’,
entrydate date comment ‘入职时间’
)comment ‘员工表’;

(10)表操作——修改

—添加字段(列)
alter table 表名 add 字段名 类型{长度} [comment 注释][约束];
–案例:为emp表增加一个新的学段”昵称”为nickname,类型为varchar(20)
alter table emp add nickname varchar(20) comment ‘昵称’;

–修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
–修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];
–案例:将emp表的nickname字段修改为username,类型为varchar(30)
alter table emp change nickname username varchar(30) comment ‘用户名’;

–删除字段
alter table 表名 drop 字段名;
–案例:将emp表字段username删除
alter table emp drop username;

–修改表名
alter table 表名 rename to 新表名;
–案例:将emp的表名修改为employee
alter table emp rename to employee;

(11)表操作——删除(在删除表时,表中的数据全部会删除)

–删除表
drop table [if exists] 表名;
–案例:删除tb_user表
drop table if exists tb_user;

–删除指定表,并重新创建该表
truncate table 表名;
–案例:删除重新创建表employee
truncate table employee;

  1. DML:数据操作语言,用来对数据库中表的数据记录进行更新。

(1)插入insert

–向表中插入某些列
insert into 表(列名1,列名2,…) values(值1,值2,…);
–向表中插入所有列
insert into 表 values(值1,值2,…);

–例1:
INSERT INTO student(sid,NAME,gender,age,birth,address,score)
VALUES(1001,‘张三’,‘男’,10,DATE(‘1996-12-23’),‘北京’,‘83.6’);
–例2:
INSERT INTO student VALUE(1002,‘张’,‘男’,12,DATE(‘1996-12-23’),‘南京’,‘82.6’);
–例3;
insert into student(sid,name,gander,age,birth,address,score)
values(1001,‘张三’,‘男’,10,‘1996-12-23’,‘北京’,‘83.6’),
(1002,‘李四’,‘男’,11,‘1995-12-23’,‘南京’,‘83.5’);

(2)删除delete

delete from 表名 [where 条件];
truncate table 表名; 或者 truncate 表名;
–例1:删除id为1004的学生数据
DELETE FROM student WHERE id=1004;
–例2:删除所有数据
delete from student;
–例3:清空表数据
truncate student;
–delete只删除内容,不涉及表,truncate相当于把表删了重新建

(3)更新update

update 表名 set 字段名=值,字段名=值,。。。;
update 表名 set 字段名=值,字段名=值,。。。where 条件;
–例1:将所有学生的地址修改为重庆
UPDATE student SET address=‘重庆’;
–例2:将id为1002的学生的地址修改为北京
UPDATE student SET address=‘北京’ where id=1002;
–例3:将id为1004的学生地址修改为北京,成绩修改为100
UPDATE student SET address=‘北京’,score=100 where id=1004;

5.DQL——数据查询语言(select)

select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数

(1)基本查询

–1.查询多个字段
select 字段1,字段2,。。。 from 表名;
select * from 表名;
–2.设置别名
select 字段1 [as 别名1],字段2 [as 别名2],。。。from 表名;
–3.去除重复记录
select distinct 字段列表 from 表名;

(2)条件查询(where)

–1.语法
select 字段列表 from 表名 where 条件列表;
–2.条件
------比较运算符
<、>、<=、>=、<>(不等于!=)、between … and …(范围内)、in(多选一)、like(模糊匹配)、is null
------逻辑运算符
and && (多个条件同时成立)
or || (多个条件任意一个成立)
not !(不是)

(3)聚合函数(count、max、min、avg、sum)

–1.介绍
将一列数据作为一个整体,进行纵向计算。
–2.常见聚合函数
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
–3.语法
select 聚合函数(字段列表) from 表名;

(4)分组查询(group by)

–1.语法
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
–2.where与having区别
执行时机不同:where是分组之前进行过滤,having是分组后过滤。
判断条件不同:where不能对聚合函数进行判断,having可以。

(5)排序查询(order by)

–1.语法1
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
–2.排序方式
asc:升序
desc:降序
–注意:如果多个字段排序,第一个字段值相同,会根据第二个字段排序。

(6)分页查询(limit)

–1.语法
select * from 表名 limit 起始索引,查询记录数;
–2.注意
起始索引从0开始。起始索引=(查询页码-1)*每页显示记录数。
分页查询是数据库的方言,不同数据库不同。
如果查询为第一页,起始索引可以省略,直接limit 10。

(7)案例

–1.查询年龄为20,21,22,23岁的员工信息
select * from emp where gender=‘女’ and age in(20,22,21,23);
–2.性别为男,年龄在20-40,姓名是三个字
select * from emp where gender=‘男’ and age between 20 and 40 and name like ‘___’;
–3.统计年龄小于60岁的,男性和女性人数
select gender,count(1) ‘总数’ from emp where age <60 group by gender ;
–4.年龄小于等于35员工姓名年龄,按年龄升序,年龄相同按入职时间降序
select name,age from emp order by age asc ,entrydate desc;
–5.查询性别为男,年龄在20-30岁以内的前5个员工信息,查询结果按照年龄升序年龄相同按入职时间升序
select * from emp where age between 20 and 30 order by age asc,entrydate asc limit 5;

(8)执行顺序

    1、from

2、where

3、group by

4、

6.DCL

三、函数

四、约束

概念:约束(constraint),实际就是表中数据的限制条件。
作用:保证表中数据的有效性和完整性,例如手机号不能为空,身份证不能重复。
分类:主键约束

》概念:

》》MySQL主键约束是一个列或者多个列的组合,其值能唯一标识表中的一行数据。

》》主键约束相当于唯一约束+非空约束的组合,不允许重复和空值。

》》每个表最多只有一个主键。

》》主键约束关键字:primary key。

》》当创建主键约束时,系统默认会在所在的列和列组合上建立唯一索引。

》操作:

》》添加单列主键

》》添加多列联合主键

》》删除主键

–方式1
create table 表名(
<字段名> <数据类型> primary key
);
–方式2
create table 表名(
<字段名> <数据类型> ,
。。。
[constraint <约束名>] primary key [字段名]
);

create table emp2(
eid int,
name varchar(10),
deptID int,
salary double,
constraint pk1 primary key(eid)–pk1可以省略
);

–联合主键
create table emp2(
eid int,
name varchar(10),
deptID int,
salary double,
primary kay(name,deptID)–任意一个键都不能为null
);

    自增长约束非空约束唯一性约束默认约束零填充约束外键约束

五、多表查询

六、事务

相关内容

热门资讯

蜻蜓订购APP贵金属订购非法期...   蜻蜓订购APP以"投资平台"名义对外宣传,主打贵金属期货(订购)交易。该平台一方面强调自身"正规...
悟空订购APP非法期货交易欺骗...   近期,有投资者反映,“悟空订购APP”等平台以白银、贵金属订购为名,宣传所谓“高收益”“低门槛”...
小赢淘金APP期货投资骗局,平...   “小赢淘金”之流,最擅长的就是用“注册送现金”、“充值返券”的糖衣炮弹来引流。别天真地以为那是福...
八方淘金APP非法期货交易欺骗...   警惕!八方生财、每日淘金、小赢淘金、悟空订购、蜻蜓订购、斗金订购等APP均涉嫌非法期货交易!  ...
智易购APP贵金属订购交易骗局...   很多人看到“3元起投”“充值送福利”“操作简单”“随时提现”这类宣传,很容易把智易购APP当成普...
喜玛银庄APP商品订购投资骗局...   喜玛银庄APP白银、铂金“现货订购”骗局警示:无资质平台涉嫌非法期货交易,投资者爆仓后如何维权?...
吉鑫乐享APP炒贵金属订购交易...   近期,多名投资者反映在“吉鑫乐享APP”进行贵金属投资时遭遇严重亏损,甚至血本无归。看似正规的“...
易掘金APP虚假期货投资骗局,...   “易掘金”的APP它打着“高收益、灵活投资”的旗号,宣称通过“商品订购”就能轻松赚钱,吸引了不少...
在大吉订购APP订购交易亏损被...   近期,不少投资者反映在“大吉订购App”上投资白银、铂金等商品遭遇严重亏损。该平台宣称提供现货订...
铂银壹号APP商品订购交易亏损...   许多中小投资者误以为网上的“商品现货订购”是合规合法的理财渠道,殊不知这背后隐藏着巨大的合规风险...
兴鑫淘金APP贵金属订购交易亏...   白银、贵金属或其他商品类投资,除国家批准的正规期货交易场所及持牌期货公司外,市面上大量第三方交易...
铂银掘金APP无资质的违规平台...   铂银掘金等平台的投资者,往往是被“注册送现金”“充值返现券”“首单免亏”等广告话术吸引,进而下载...
八方淘金APP订购交易不合规,...   “八方淘金APP”“铂银掘金APP”“铂银壹号APP”等软件被指以“现货订购”为名,实际采用高杠...
在指尖订购APP订购商品亏损被...   指尖订购APP这类平台,表面是“订购交易”,实则是披着电商外衣的非法期货陷阱。绝大多数投资者被蒙...
在犀贝易购APP做商品订购交易...   市面上打着“现货投资”“贵金属交易”旗号的APP并不少,但真正合规、受监管的平台并不多。犀贝易购...
易达淘金APP虚假商品订购交易...   易达淘金APP存在严重的虚假宣传与违规交易行为。该平台打着“商品订购”的旗号,实则通过不合规的交...
大浪淘金APP白银订购亏损被骗...   大浪淘金APP最隐蔽的套路,在于其完全封闭的内盘交易系统。表面上,它宣称与国际贵金属市场接轨;实...
一品好购APP上订购白银出现亏...   一品好购APP原名“一品订购”,运营方为上海宝智未来信息技术有限公司。近期不少投资者反映在该平台...
九州订购APP贵金属订购投资骗...   九州订购APP正通过抖.音、快手、今日头条等平台大量投放投资广告,用“5元起投”“充值返现”“0...
坚锅淘金APP交易软件并不正规...   当前,市面上大量所谓的“现货商城订购”交易软件,早已偏离了正常的实物商品买卖,演变为高杠杆、高手...