MySQL第二章、数据库基础

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL第二章、数据库基础

 回顾:

image.gif编辑

image.gif编辑

目录

一、数据库的操作

1.1创建数据库

1.2显示当前数据库

1.3使用数据库

1.4删除数据库

二、常用数据类型

2.1数值类型(分为整型和浮点型)

2.2字符串类型

2.3 日期类型

三、表的操作

3.1创建表

3.2查看表结构

3.3查看表目录

3.4删除表

3.5作业

四、相关问题解释

4.1客户端报错

4.2数据库概念混淆

4.3游戏公司面试真题

4.4小结


一、数据库的操作

1.1创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
    [DEFAULT] CHARACTER SET charset_name
    [DEFAULT] COLLATE collation_name

image.gif

说明:

    • 大写的表示关键字

    image.gif编辑

      • [] 是可选项

      image.gif编辑

        • CHARACTER SET: 指定数据库采用的字符集

        image.gif编辑

        image.gif编辑

        image.gif编辑

          • COLLATE: 指定数据库字符集的校验规则

          image.gif编辑

          示例:

          1.创建数据库:名为Mydata

          image.gif编辑

          2.创建数据库:指定字符集为utf-8

          说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci.

          image.gif编辑

          3.如果系统没有Mydata的数据库,则创建一个名叫Mydata的数据库,如果有则不创建

          image.gif编辑

          4.如果系统没有Mydata 的数据库,则创建一个使用utf8mb4字符集的Mydata数据库,如果有则不创建 。(注意:utf8不包括表情符号,而utf8mb4包括Unicode全部字符。建议大家都使用utf8mb4)

          image.gif编辑

          5.sec含义:

          image.gif编辑

          1.2显示当前数据库

          SHOW DATABASES;

          image.gif

          image.gif编辑

          1.3使用数据库

          use 数据库名;

          image.gif

          image.gif编辑

          1.4删除数据库

          DROP DATABASE [IF EXISTS] db_name;
          //举例:
          drop database if exists db_test1;
          drop database if exists db_test2;

          image.gif

          image.gif编辑

          注意:数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除

          image.gif编辑


          二、常用数据类型

          2.1数值类型(分为整型和浮点型)

          image.gif编辑

          数值类型可以指定为无符号(unsigned),表示不取负数。

          1字节(bytes)= 8bit。

          对于整型类型的范围:

          1. 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就

          是-2^31到2^31-1

          2. 无符号范围:0到2^(类型字节数*8)-1,如int就是2^32-1。尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

          2.2字符串类型

          image.gif编辑

          image.gif编辑

          2.3 日期类型

          image.gif

          image.gif编辑

          image.gif编辑


          三、表的操作

          需要操作数据库中的表时,需要先使用该数据库:

          use db_test;

          image.gif

          image.gif编辑

          3.1创建表

          image.gif编辑

          语法:

          CREATE TABLE table_name (
              field1 datatype,
              field2 datatype,
              field3 datatype
          );
          //示例:
          create table stu_test (
              id int,
              name varchar(20) comment '姓名',
              password varchar(50) comment '密码',
              age int,
              sex varchar(1),
              birthday timestamp,
              amout decimal(13,2),
              resume text
          );

          image.gif

          image.gif编辑image.gif编辑  

          可以使用comment增加字段说明。

          3.2查看表结构

          desc 表名;

          image.gif

          image.gif编辑

          image.gif编辑

          3.3查看表目录

          show tables;

          image.gif

          3.4删除表

          语法格式:

          DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

          image.gif

          -- 删除 stu_test 表
          drop table stu_test;
          -- 如果存在 stu_test 表,则删除 stu_test 表
          drop table if exists stu_test;

          image.gif

          3.5作业

          介绍:有一个商店的数据,记录客户及购物情况,有以下三个表组成:

            • 商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供应商provider)
            • 客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证card_id)
            • 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)
            -- 创建数据库
            create database if not exists bit32mall
            default character set utf8 ;
            -- 选择数据库
            use bit32mall;
            -- 创建数据库表
            -- 商品
            create table if not exists goods
            (
            goods_id int comment '商品编号',
            goods_name varchar(32) comment '商品名称',
            unitprice int comment '单价,单位分',
            category varchar(12) comment '商品分类',
            provider varchar(64) comment '供应商名称'
            );
            -- 客户
            create table if not exists customer
            (
            customer_id int comment '客户编号',
            name varchar(32) comment '客户姓名',
            address varchar(256) comment '客户地址',
            email varchar(64) comment '电子邮箱',
            sex bit comment '性别',
            card_id varchar(18) comment '身份证'
            );
            -- 购买
            create table if not exists purchase
            (
            order_id int comment '订单号',
            customer_id int comment '客户编号',
            goods_id int comment '商品编号',
            nums int comment '购买数量'
            );

            image.gif


            四、相关问题解释

            4.1客户端报错

            image.gif编辑4.2数据库概念混淆

            image.gif编辑

            4.3游戏公司面试真题

            image.gif编辑

            4.4小结

            image.gif编辑

            相关实践学习
            如何在云端创建MySQL数据库
            开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
            全面了解阿里云能为你做什么
            阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
            目录
            相关文章
            |
            5天前
            |
            存储 关系型数据库 MySQL
            MySQL——数据库备份上传到阿里云OSS存储
            MySQL——数据库备份上传到阿里云OSS存储
            20 0
            |
            5天前
            |
            缓存 NoSQL Redis
            一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
            这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
            |
            3天前
            |
            关系型数据库 MySQL 数据库
            探究数据库开源协议:PostgreSQL vs MySQL
            探究数据库开源协议:PostgreSQL vs MySQL
            |
            4天前
            |
            SQL 关系型数据库 MySQL
            如何在 MySQL 或 MariaDB 中导入和导出数据库
            如何在 MySQL 或 MariaDB 中导入和导出数据库
            16 0
            |
            4天前
            |
            安全 关系型数据库 MySQL
            如何在 MySQL 中导入和导出数据库以及重置 root 密码
            如何在 MySQL 中导入和导出数据库以及重置 root 密码
            14 0
            |
            4天前
            |
            SQL Ubuntu 关系型数据库
            如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
            如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
            8 0
            |
            5天前
            |
            SQL 关系型数据库 MySQL
            MySql⭐一、配置MySql数据库,并创建一个表单
            MySql⭐一、配置MySql数据库,并创建一个表单
            |
            11天前
            |
            SQL druid Java
            Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
            Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
            34 3
            Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
            |
            9天前
            |
            SQL 存储 关系型数据库
            "MySQL增列必锁表?揭秘InnoDB在线DDL,让你的数据库操作飞一般,性能无忧!"
            【8月更文挑战第11天】在数据库领域,MySQL凭借其稳定高效的表现深受开发者喜爱。对于是否会在给数据表添加列时锁表的问题,MySQL的行为受版本、存储引擎等因素影响。从5.6版起,InnoDB支持在线DDL,可在改动表结构时保持表的可访问性,避免长时间锁表。而MyISAM等则需锁表完成操作。例如,在使用InnoDB的表上运行`ALTER TABLE users ADD COLUMN email VARCHAR(255);`时,通常不会完全锁表。虽然在线DDL提高了灵活性,但复杂操作或大表变更仍可能暂时影响性能。因此,进行结构变更前应评估其影响并择机执行。
            30 6
            |
            8天前
            |
            Oracle 关系型数据库 MySQL
            Mysql和Oracle数据库死锁查看以及解决
            【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。