数据库 | 初识MySQL 1



目录


说明

  • 数据库一般使用MySQLMariaDB

  • 数据库管理工具使用的是Navicat

参阅:


一、基本概念

1.1 什么是数据库

1.1.1 数据存储

人工管理阶段
  • 结绳记事
  • 甲骨

不利于查询、共享和保存等

文件系统阶段
  • 磁盘

数据存储在磁盘上,数据都是以文件形式出现,通过文件系统管理,相对于人工管理阶段方便的多,但是在查询数据内容时,还是不很方便

数据库系统阶段

➢ 数据库是指长期存储在计算机内、有组织的数据集合
➢ 数据库就是一个存储数据的地方
➢ 表是数据库中存储数据的基本单位

eg:

数据库中存储的商品数据<=对应=>真实的商品(即无法随意修改数据库内容)

1.1.2 RDBMS

关系型数据库管理系统

提示:

数据库类型
  • 关系型数据库(主流)

  • 非关系型数据库(使用少)

关系型数据库
核心元素 描述
数据行 一条记录(同一类型)
数据列 字段
数据表 数据行的集合
数据库 数据表的集合,一个数据库能够有n个数据表

1.2 SQL

结构化查询语言

  • 当前关系型数据库都支持SQL
  • 不区分大小写

1.3 MySQL

  • MySQL是一个关系型数据库管理系统
  • 瑞典MySQL AB公司==>Sun公司==>Oracle公司
  • 开源、免费、使用范围广、支持多平台(操作系统)
  • 学习数据库开发的首选

二、MySQL的安装与使用

1.1 Linux

  • 安装MySQL服务端测试推荐

参阅:

  • MySQL服务管理
    启动服务
    service mysqld start
    停止服务
    service mysqld stop
    重启服务
    service mysqld restart
    查看服务
    service mysqld statusps aux|grep mysqld

1.2 Windows

  • 安装MySQL服务端学习推荐

参阅:

  • 安装MySQL客户端Navicat

参阅:

1.3 客户端与服务端搭配场景

客户端类型 说明
图形界面客户端 一般使用Navicat
命令行客户端 mysql -u root -p 进入MySQL

Ctrl+Dquitexit 退出MySQL
场景类型 服务端位置 客户端位置
场景一 CentOS CentOS
场景二学习 Windows Windows
场景三测试 CentOS Windows
场景四 Windows CentOS

说明:

  • 服务端指的就是安装的MySQL
  • 客户端指的就是Navicat(有Windows和Linux两种平台的版本)
  • CentOS安装在VM虚拟机中

一般客户端都选择Windows版Navicat,去连接Windows或Linux的MySQL

服务器平台 Navicat(Windows版)连接说明
Windows 主机: localhost

用户名:root

密码: [自己设置的]
Linux 主机: [Linux ip地址]

用户名:root

密码: 默认为空

注意:Linux中数据库默认不允许远程连接,解决方法如下

mysql -u root

use mysql;

update user set host='%' where user='root';

flush privileges;

三、MySQL客户端Navicat的使用

学习数据库场景:服务端MySQL在Windows中,客户端Navicat也在Windows中

1.1 数据库操作

1.1.1 创建数据库

参阅:

1.2 数据表操作

1.2.1 创建表

1.2.2 设计表

用于增加、删除、修改字段

  • 类型
  • 长度
  • 主键

1.2.3 打开表

用于增加、删除、修改记录

1.2.4 查询表

1.3 数据类型与约束

1.3.1 数据类型

数据类型 名称 范围 示例
整数 int 有符号:(默认)

-2147483648 ~ 2147483647

无符号:

0 ~ 4294967295

-2^31~2^31-1

2147483647 梅森素数
小数 decimal decimal(5,3)

字符串 varchar 0~65533 varchar(3)

表示最多存3个字符,一个中文或一个字母都占一个字符
日期时间 datetime 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 2020-01-01 12:29:59
  • 在表的字段中类型int对应长度没有意义,可任意
  • decimal如果插入数据的小数部分超出长度会进行四舍五入

decimal(5,3)

3.1234==>3.123

3.1235==>3.124

  • 日期时间为什么不用字符串来存储?
    因为时间有前后之分,字符串无法比较大小

扩展:

  • 一个字节=8位,一位存0或1
  • int一般占用四个字节,有32位
  • 在无符号的整数中,最大值:2^32-1=4294967295
  • 在有符号的整数中,32位中符号占一位,故最大值就是2^31-1=2147483647(从0开始),最小值就是-2^31+1=2147483648(-1开始)

提示:

  • 巧用MySQL命令行客户端

可查看任意数据类型的范围

1.3.2 约束

约束条件 名称 说明
主键 primary key 物理上存储的顺序

能够代表一条记录的字段

➢ 唯一性

➢ 非空

默认



选择自动递增后,默认值为1
然后一直累加不会取以前的值,即使字段被删或表被清空
外键 foreign key 维护两个表之间的关联关系
非空 not null 此字段不允许填写空值

惟一 unique 此字段的值不允许重复

注意:Navicat没有对应功能,可以通过SQL语句实现
默认值 default 不填写此值时会使用默认值,如果填写,则以填写为准

扩展:

  • 清空表:删除所有数据,不删除表结构,自动递增的值继续累加
  • 截断表:删除所有数据,不删除表结构,自动递增的值从默认值1重新累加

1.4 数据库的备份与恢复

1.4.1 备份数据库

以.sql文件格式保存

1.4.2 恢复数据库

  • 先新建一个数据库

  • 再导入.sql文件

1.5 SQL语言

1.5.1 数据表

  • 注释快捷键:Ctrl+/

  • SQL语句基本流程

1. 创建表
create table 表名(
        字段名 类型 约束,
        字段名 类型 约束,
        ...
)

eg:

  • 创建一个简单的学生表
    姓名(长度为11)
  • 创建一个简单的学生表
    姓名(长度为11), 年龄

提示:

  • tinyint一般占一个字节,无符号时,范围是0~255(2^8-1)
  • 创建一个简单的学生表
    姓名(长度为11), 年龄,身高(保留小数点2位)
2. 删除表

drop table [表名]

drop table if exists [表名]

综合1、2推荐
  • 推荐通过删除表再创建表的方式,这样增加字段很方便

1.5.2 数据操作

数据操作 关键词
insert into
delete from
update
select
1. 增
  • 关键字:insert into

特别提示:

  • 主键id勾选了自动递增,插入数据时,id设置为0nulldefault即可
格式一:所有字段设置值,值的顺序与表中字段的顺序对应
  • 格式:insert into [表名] values(值1,...)

插入一个学生,设置所有字段的信息
insert into students values('小明',15)

格式二:部分字段设置值,值的顺序与给出的字段顺序对应
  • 格式:insert into [表名](字段1,...) values(值1,...)

插入一个学生,只设置姓名
insert into students(name) values('小红')

插入多行数据

方式一:写多条insert语句,语句之间用英文分号隔开

方式二:写一条insert语句,设置多条数据,数据之间用英文逗号隔开

  • 格式一:insert into 表名 values(...),(...)...

eg:

插入多个学生,设置所有字段的信息

insert into students values('小康',18),('小叶',17)

  • 格式二:insert into 表名(列1,...) values(值1,...),(值1,...)...

eg:

插入多个学生,只设置姓名

insert into students(name) values('小花'),('小付')

2. 删
  • 关键字:delete from
  • 格式:delete from [表名] where [条件]

delete from students where name='小叶'

对于重要的数据,不能轻易执行delete语句进行删除,一旦删除,数据无法恢复,这时可以进行逻辑删除

特别提醒:

  • delete删除后无法恢复
  • 逻辑删除推荐
  1. 增加is_delets字段
    alter table students add is_delete tinyint

0代表未删除,1代表删除,默认值为0


  1. 设置is_delete默认值0
    update students set is_delete=0

  2. 删除其中一个学生
    update students set is_delete=1 where name='小红'

  3. 查询未被删除的学生
    select * from students where is_delete=0

3. 改
  • 关键字:update
  • 格式:update [表名] set [列1]=[值1],[列2]=[值2]... where [条件]

update students set age=19 where name='小康'

4. 查
  • 关键字:select

简单查询

select * from students

select * from students where is_delete=0


更新中......


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容

  • 1.数据库简介 人类在进化的过程中,创造了数字、文字、符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,...
    大熊_7d48阅读 525评论 0 1
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,035评论 0 19
  • 一、数据库系统 数据库DataBase【DB】,指的是长期保存到计算机上的数据,按照一定顺序组织,可以被各种用户或...
    EndEvent阅读 1,897评论 2 3
  • 一、数据库系统 数据库DataBase【DB】,指的是长期保存到计算机上的数据,按照一定顺序组织,可以被各种用户或...
    fly5阅读 389评论 0 0
  • 下班走在去班车路上,偶然一回头,看见这样一个画面,很安静,安静的让人忘了拍照,或是前去打扰。那个画面,仿佛深深的印...
    简兮_路阅读 369评论 0 0