数据库、SQL基本概念、MySQL安装及常用数据类型和数据约束

一、数据库

数据库:是存储和管理数据的仓库,数据按照一定格式进行存储,用户可以对数据库中的数据进行增删改查等操作

作用:是用来存储和管理数据,持久化存储和快速读取数据

特点

  • 持久化存储
  • 读写速度极高
  • 保证数据的有效性

数据库分类

  • 关系型数据库:是指采用关系模型来组织数据的数据库,简单来说,关系模型指的是二维表格模型,如Excel文件中的表格,强调使用表格方式存储数据
    • 核心元素:数据行、数据列、数据表、数据库(数据表的集合),如Excel文件就相当于一个数据库,其中的sheet就好比一个数据表
    • 常见关系型数据库:Oracle、Microsoft SQLServer、MySQL、SQLite
  • 非关系型数据库:又称NoSQL(Not only SQL),即不仅是SQL,普遍定义其为非关联型的,强调key-value形式存储数据
    • 常见非关系数据库:MongoDB、Redis

二、关系型数据库管理系统

关系型数据库管理系统(RDBMS:Relational Database Management System) :是一个为管理关系型数据库而设计的软件系统

RDBMS分类

  • 关系型数据库服务端软件:负责管理不同的数据库,每个数据库里有一系列数据文件,其用来存储数据,数据库即是一系列数据文件的集合
  • 关系型数据库客户端软件:负责和关系型数据库服务端软件进行通信,向服务端传输数据或从服务端获取数据
  • 说明
    • 用户通过操作关系型数据库客户端软件来实现数据库的相关操作
    • 关系型数据库客户端借助网络使用SQL语言和和数据库服务端进行数据通信
    • 数据库服务端管理着不同的数据库,每个数据库有一系列数据文件,数据保存于数据文件中,每个数据库可看作是一个文件夹

三、SQL

结构化查询语言(SQL:Structured Query Language):是一种用来操作RDBMS的数据库的语言,即通过SQL可以操作Oracle、SQL Server、MySQL、SQLite等关系型数据库

SQL作用:实现数据库客户端和数据库服务端的通信,是通信的桥梁

  • SQL语言
    • 数据查询语言(DQL):用于对数据进行查询,如select
    • 数据操作语言(DML):用于对数据进行增加、修改、删除,如insert、update、delete
    • 事务处理语言(TPL):用于对事务进行处理,如begin transaction、commit、rollback
    • 数据控制语言(DCL):用于进行授权与权限回收,如grant、revoke
    • 数据定义语言(DDL):用于进行数据库、表的管理等,如create、drop
    • 说明
      • 重点是进行增删改查,需熟练掌握DQL、DML和DDL
      • SQL语言不区分大小写

四、MySQL数据库

MySQL:是一个关系型数据库管理系统,是最好的RDBMS应用软件,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 是最流行的关系型数据库管理系统中的一个

  • MySQL特点
    • MySQL是开源的,无需支付额外费用
    • 支持大型的数据库,可以处理拥有上千万条记录的大型数据库
    • 使用标准的SQL数据语言形式
    • 可以安装在不同的操作系统,并提供多种编程语言的操作接口,包括C、C++、Python、Java、Ruby等

4.1 安装(ubuntu)

  • ubuntu中安装命令:sudo apt-get install mysql-server/mysql-client
  • ubuntu中均已安装
  • 显示安装包信息命令:apt-cache show mysql-server/mysql-client
  • MySQL数据库服务端软件
    • 查看MySQL服务状态:sudo service  mysql status
    • 启动MySQL服务:sudo service mysql start
    • 停止MySQL服务:sudo service mysql stop
    • 重启MySQL服务:sudo service mysql restart
    • 查看MySQL服务效果命令:ps -aux | grep mysql
      • ps:查看当前系统中进程
      • -a:表示所有用户
      • -u:显示用户名
      • -x:显示所有的执行程序
  • MySQL数据库客户端软件
    • 使用帮助:mysql --help
    • 连接MySQL服务端命令:mysql -uroot -p
      • -u:表示服务端用户名
      • -p:服务端密码
      • quit 或 exit 或 ctr + d 表示退出

4.2 windows安装MySQL

  1. 下载安装压缩包(zip),下载网址:https://www.mysql.com/
  2. 解压安装文件到自定义文件夹
  3. 将bin路径添加至环境变量(前后均加英文分号‘;’)
  4. 创建my.ini配置文件(此文件内容可百度,或参照附于本文档后面给出的内容)
  5. 以管理员身份运行cmd程序,并将当前路径切换至MySQL安装路径下(bin所在目录)
  6. mysqld --install(MySQL安装)
  7. 将解压目录下的data目录删除,防止后面初始化失败
  8. mysqld --initialize --console(MySQL初始化,[]内的命令可选,此处可能生成root用户的初始密码,可复制保存)
  9. net start mysql(MySQL服务启动)
  10. mysql -u root -p(root用户登录)
  11. 输入root的初始密码(步骤8中复制保存的)
  12. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';(修改密码)

---------------------------------------my.ini文件配置-------------------------------------
[mysql]
# 设置mysql客户端默认字符集
default-character-set = UTF8
[mysqld]
# 设置默认端口
port = 3306
# 设置mysql的安装目录
basedir = /*此处填写自定义的安装路径(‘\’分隔)*/
# 设置mysql数据库的数据的存放目录
datadir = /*此处填写自定义的数据存储路径(‘\’分隔)*/
# 允许最大连接数
max_connections = 200
# 服务端使用的默认字符集
character-set-server = UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine = INNODB
---------------------------------------my.ini文件示例-----------------------------------
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql安装
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql安装\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

图形化客户端软件Navicat:是一套快速、可靠并价格适宜的数据库管理工具,让你可以以安全并且简单的方式对数据库进行操作,可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 等数据库进行管理及开发。 专门为简化数据库的操作而设计,符合数据库管理员、开发人员及中小企业的需求

Navicat下载:https://www.navicat.com.cn/download/navicat-for-mysql

如下:

五、数据类型及约束

5.1 数据类型

数据类型:指在创建表时为表中字段指定数据类型,只有数据符合类型要求才能存储起来

数据类型使用原则:够用就行,尽量使用取值范围小的,可以节省存储空间

常用数据类型

  • 整数:int,bit
  • 小数:decimal,表示浮点数,如decimal(5,2),表示共存五位,小数占两位
  • 字符串:char,varchar,text
    • char表示固定长度字符串,不足用空格补全
    • varchar表示可变字符串
    • text 表示存储大文本,当字符大于 4000 时推荐使用
  • 日期时间:date,time,datetime
  • 枚举类型:enum

5.2 数据约束

数据约束:指数据在数据类型限定基础上额外增加的要求

常用约束

  • primary key:主键,物理上存储顺序,MySQL建议所有表的主键字段都为id,类型为int unsigned
  • not null:非空,即字段不能为空
  • unique:唯一,即字段不能重复 
  • default:默认,不填写字段对应的值会使用默认值,若填写则以填写为准
  • foreign key:外键,对关系字段进行约束,当为关系字段填写值时, 会到关联的表中查询此值是否存在, 若存在则填写成功, 否则填写失败并抛出异常

5.3 常用数据类型表

整数类型
类型字节大小有符号范围(Signed)无符号范围(Unsigned)
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT/INTEGER4-2147483648 ~ 21474836470 ~ 4294967295
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615
字符串
类型说明使用场景
CHAR固定长度,小型数据身份证号、手机号、电话、密码
VARCHAR可变长度,小型数据姓名、地址、品牌、型号
TEXT可变长度,字符个数大于 4000存储小型文章或者新闻
LONGTEXT可变长度, 极大型文本数据存储极大型文本数据
时间类型
类型字节大小示例
DATE4'2022-10-26'
TIME3'20:20:20'
DATETIME8'2022-10-26 20:20:20'
YEAR1'2022'
TIMESTAMP4'1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC

数据类型和约束保证了表中数据的准确性和完整性

学习导航:http://xqnav.top/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

learning-striving

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值