3. MySQL - 数据类型 & 选项约束

这篇具有很好参考价值的文章主要介绍了3. MySQL - 数据类型 & 选项约束。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

回顾

1. 命令行下的 MySql 客户端

2. 图形化界面的 MySQL-Client

3. 数据库概述

3.1 数据库管理系统是什么

3.2 工作模式

3.3 RDBMS 管理数据的结构

3.4 客户端连接服务器的信息

4. MySQL 中的数据类型

4.1 整型类型

4.2 字符串

4.3 日期/时间

5. MySQL 每个字段的选项约束

6. 练习:将我们做过的题目记录到数据库中


回顾

上一篇博客中,我们具体包括以下内容:

  1. 安装 mysql-server,通过 Ubuntu 的包管理工具 apt,自动启动了 MySQL

    apt list sudo apt install <包名>
  2. 检查 MySQL-Server 进程(/usr/sbin/mysqld)是否启动成功

    ps aux | grep mysqld #进程
    
    
    sudo netstat -nlpt | grep 3306 #端口
    1. 查看对应的进程是否存在

    2. MySQL-Server 进程应该监听 TCP 3306 端口,查看端口监听情况

  3. 通过 MySQL-Client (/usr/sbin/mysql) 建立和 MySQL-Server 的连接(via 3306 端口)

在 Unix(Linux) OS中,习惯于把服务器(Server:提供 服务(Service)的进程) 进程叫做 xxxd。d 是 daemon(守护精灵):表示这类进程都是看不到的,默默在背后工作。

通过 MySQL-Client 要连接 MySQL-Server 是通过网络连接的,所以需要知道如下信息:

1.MySQL-Server 进程工作在网络中的哪台主机(host)上?

通过域名(domain)或者 ip 地址。 其中 127.0.0.1 是一个特殊的 ip 地址,代表本机。对应的域名 localhost。

2.MySQL-Server 进程是这台主机上的哪个进程

通过端口(3306 MySQL 服务器进程的默认端口)

  • 当主机是 127.0.0.1、端口是 3306 时,可以省略

  • 授权信息:mysql 的用户名,mysql 的密码

  • 所以从默认的配置文件中 (/etc/mysql/debian.conf)下获取用户名和密码

    sudo cat /etc/mysql/debian.cnf 

连接数据库

mysql -h127.0.0.1 -P3306 -u<用户名> -p

接下来,我们开始学习 MySQL 的相关知识。 

1. 命令行下的 MySql 客户端

-- 这个是注释

-- 创建一个库(schema)名叫 learn,默认字符集 utf8mb4
create database learn charset utf8mb4;

-- 切换自己的工作环境为 learn 库,俗称把 learn 设成默认库
use learn;

-- 创建一张学生表(students),列
-- 学号(sn)整型 int   primary key(pk) 主键
-- 姓名(name)字符串 varchar(20) 字符串最长 20 个字
-- 入学时间(entried_at) datetime   年-月-日 时:分:秒
create table students (
    sn int primary key,
    name varchar(20),
    entried_at datetime
);

-- 在这张表中插入一些数据,注意:数据必须整行的形式存在
insert into students (sn, name, entried_at)
    values (101, '张三', '2021-09-01 18:32:18');
    
-- 查看表中的数据
select * from students;

3. MySQL - 数据类型 & 选项约束,数据结构&amp;MySQL,数据库,mysql

2. 图形化界面的 MySQL-Client

  • 需要在云服务器(Web控制台)上开启 3306 的访问权限;
  • Mysql-server 默认不允许从非本地连接。

以上两点都是为了保证数据的安全,数据库的数据一旦泄露后果不堪设想。 如果默尔曼采用直接连接的方式连接数据库十分的麻烦且不安全。因此,我们采用SSH 隧道(Tunnel)的方式,具体流程如下图所示。

3. MySQL - 数据类型 & 选项约束,数据结构&amp;MySQL,数据库,mysql

接下来我们就需要使用 WindTerm 的隧道功能了。

3. MySQL - 数据类型 & 选项约束,数据结构&amp;MySQL,数据库,mysql

3. MySQL - 数据类型 & 选项约束,数据结构&amp;MySQL,数据库,mysql 

3. 数据库概述

3.1 数据库管理系统是什么

Database Manage System(DBMS)是一类数据库管理系统软件。

其中目前主流的是关系型数据库管理系统 Relational Database Manage System RDBMS。

知名的产品有 MySQL、Oracle、Postgres、Sqlite 等。

通常将数据存储在二级存储(硬盘)上 —— 断电后数据仍然保留。

内部实现中,通过一个 schema(database) 是一个文件夹,每个 table 是该文件夹下的几个文件。

3.2 工作模式

客户端-服务器模型 

3. MySQL - 数据类型 & 选项约束,数据结构&amp;MySQL,数据库,mysql

3.3 RDBMS 管理数据的结构

RDBMS -> Database/Schema -> Table -> Row -> Column/Field

3.4 客户端连接服务器的信息

主机(host)、端口(port)、用户名(user)、密码(password)、默认库

4. MySQL 中的数据类型

4.1 整型类型

int (32位)/ smallint (16位)/ bigint(64位)

4.2 字符串
  • char(10) 定长字符串
  • varchar(10) 变长字符串 variable(变量/变化的)

10:最多存 10 个字(不区分英文/中文)

text / longtext  --- blob / longblob (存放视频数据和音频数据  Binary Large Object)

SQL 中,不区分单引号、双引号

4.3 日期/时间
  • date 年月日  '2023-04-20'
  • time 时分秒  '21:02:38'
  • datetime  年月日 + 时分秒  '2023-04-20 21:02:38'

5. MySQL 每个字段的选项约束

3. MySQL - 数据类型 & 选项约束,数据结构&amp;MySQL,数据库,mysql

  • PK Primary Key 勾选之后,代表这列是主键
  • NNNot Null 勾选之后,此列不允许填入 Null null NuLL
  • UQ Unique(唯一的) 勾选之后,此列的数据不能重复
  • AI Auto Incremental 只能配合 Int + PK 使用,填入之后,此列的值自动加 1

建库的原则:

一定要选择字符集编码为 utf8mb4

建表的通常原则:

  1. 必须有一个列,这个列的名称叫做 users uid,作为主键存在,并且选择 NN、AI

  2. 如果没有意外情况,各个列都把 NN 勾选上

6. 练习:将我们做过的题目记录到数据库中

oj_records

0) oj_id int pk ai

1)题目来源(牛客 or leetcode) source varchar(10) NN 可以重复

2)题目链接 link varchar(200) NN 不重复

3)题目 question varchar(100) NN 不重复

4)难度 difficulty varchar(10) Null

5)是否通过 passed int NN

6)上次通过时间 last_passed_at datetime Null

CREATE TABLE `learn`.`oj_records` (
  `oj_id` INT NOT NULL AUTO_INCREMENT,
  `source` VARCHAR(10) NOT NULL,
  `link` VARCHAR(200) NOT NULL,
  `question` VARCHAR(100) NOT NULL,
  `difficulty` VARCHAR(10) NULL,
  `passed` INT NOT NULL DEFAULT 0 COMMENT '1: 通过\n0: 未通过',
  `last_passed_at` DATETIME NULL,
  PRIMARY KEY (`oj_id`),
  UNIQUE INDEX `link_UNIQUE` (`link` ASC) VISIBLE,
  UNIQUE INDEX `question_UNIQUE` (`question` ASC) VISIBLE)
COMMENT = 'OJ 刷题记录';

 文章来源地址https://www.toymoban.com/news/detail-558090.html

到了这里,关于3. MySQL - 数据类型 & 选项约束的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java八股文面试[数据库]——MySQL索引的数据结构

    知识点: 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些,各自的优劣是什么_哔哩哔哩_bilibili

    2024年02月10日
    浏览(32)
  • Mysql不同数据库之间表结构同步

    开发环境的Mysql表结构做了修改,要同步到其他环境数据库中使用数据库管理工具JookDB的表结构同步功能就很方便。虽然Navicat也有这个功能但是有免费的当然是用免费的。 用JookDB添加数据库后在数据库节点上右键选择“同步结构”即可开始表结构同步。 1.选择结构同步的源库

    2024年02月05日
    浏览(39)
  • 【数据库——MySQL(实战项目1)】(1)图书借阅系统——数据库结构设计

    经过前期的学习,我们已经掌握数据库基础操作,因此是时候来做一个实战项目了—— 图书借阅系统 。对于图书借阅系统,相信大家不难想到至少需要 3 张表,分别是: 借阅人表 , 图书表 和 借阅信息表 (当然不限于这些表,大家可以根据自己的想法创建其它表)。 那么

    2024年02月03日
    浏览(53)
  • MySQL数据库精选(从入门使用到底层结构)

    DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段) DML: 数据操作语言,用来对数据库表中的数据进行增删改 DQL: 数据查询语言,用来查询数据库中表的记录 DCL: 数据控制语言,用来创建数据库用户、控制数据库的控制权限 数据定义语言 数据库操作 查询所有数据

    2024年02月19日
    浏览(38)
  • 【MySQL数据库 | 第十七篇】索引以及索引结构介绍

    目录 前言: 索引简介:  索引结构:           二叉树索引结构         Tree(普通二叉树)         B-Tree(多路平衡查找树)         B+Tree          哈希索引数据结构 总结: 在实际生活中,我们对SQL语句进行优化实际上有很大一部分都是对索引进行优化,因此对索引

    2024年02月09日
    浏览(55)
  • MySQL的数据结构:数据库(Database)、表(Table)、记录(Record)和字段(Field)

    MySQL的数据结构可以看作是一个层次化的组织方式,从最高的层次到最低的层次分别是:数据库(Database)、表(Table)、记录(Record,也就是数据行)和字段(Field,也就是数据列)。 数据库(Database) : 数据库是最高层次的存储结构,它可以包含多个表、视图、存储过程、

    2024年02月21日
    浏览(44)
  • 数据结构与算法之美学习笔记:48 | B+树:MySQL数据库索引是如何实现的?

    本节课程思维导图: 作为一个软件开发工程师,你对数据库肯定再熟悉不过了。作为主流的数据存储系统,它在我们的业务开发中,有着举足轻重的地位。在工作中,为了加速数据库中数据的查找速度,我们常用的处理思路是,对表中数据创建索引。那你是否思考过,数据库

    2024年01月16日
    浏览(59)
  • mysql从入门到放弃之数据库体系结构与管理

    第一篇文章中主要学习了mysql二进制的基本安装及数据库初始化等操作,本篇文章主要了解mysql的体系结构和管理,例如: mysql的实例组成、逻辑存储结构、物理存储结构等方面展开学习 提示:以下是本篇文章正文内容,下面案例可供参考 3.1、mysqld守护进程结构 3.2、 引入sql语句

    2024年01月21日
    浏览(33)
  • MySQL数据库---库基本操作 以及 表结构的操作(DDL)

    目录 前言 一.数据库的操作 1.1显示当前数据库 1.2创建数据库 1.3使用数据库  1.4删除数据库  二.数据类型 2.1数值类型 2.2字符串类型 2.3日期类型 三.数据表的操作  3.1 创建表结构。  3.2查看数据库中拥有的数据表  3.3查看指定的表结构   3.4修改表结构   3.5删除表结构  

    2024年02月09日
    浏览(52)
  • MySQL高级第十一篇:数据库调优策略(定位-调优-结构)

    1.尽可能节省系统资源,以便系统可以提供更大负荷的服务。 (吞吐量更大) 2.合理的结构设计和参数调整,以提高用户操作响应的速度。 (响应速度更快) 3.减少系统的瓶颈,提高MySQL数据库整体的性能。 用户是我们的服务对象,因此他们的反馈是最直接的。虽然他们不会

    2023年04月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包