首页 > 数据库 >MySQL-基础篇 ( 相关了解 + SQL-DDL )

MySQL-基础篇 ( 相关了解 + SQL-DDL )

时间:2023-08-17 19:47:14浏览次数:46  
标签:语句 SQL 数据库 表名 MySQL TABLE DDL

MySQL-基础篇 ( 相关了解 + SQL-DDL )

目录

认知了解

  • 数据库,DataBase 简称 DB,是有组织的存储数据的仓库

  • 数据库管理系统,DBMS,是操纵和管理数据库的大型软件

  • SQL,全名 Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准

  • 主流的关系型数据库管理系统

    • Oracle
    • MySQL
    • SQL Server
    • PostgreSQL

MySQL 数据库

  • 数据库的下载过程见另一文章:

  • MySQL 数据库的启动

    • 手动打开任务管理器 ( 可 ctrl + alt + 数字键的"." ),找到服务中的 MySQL 即可右键启动

      image-20230720161031058

    • windows + R,输入 services.msc 直接打开服务

      image-20230720161211194

    • 管理员身份进入命令行输入 net start mysql 启动,输入 net stop mysql 停止

      • 其中 mysql 与上述方法中的服务里显示的一致

      image-20230720161725801

  • 关系型数据库 ( RDBMS )

    • 建立在关系模型基础上,由多张相互连接的二维表组成的数据库
    • 使用表存储数据,格式统一便于维护
    • 使用 SQL 语言操作,标准统一使用方便
    • 一个 DBMS 可建多个库,一个库可建多个表

SQL

通用语法

  • SQL 语句可以单行或多行书写,以分号结尾
  • SQL 语句可以使用空格 / 缩进来增强语句的可读性
  • MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写
  • 注解
    • 单行注释:-- 注解内容或者 # 注解内容
    • 多行注释:/* 注释内容 */

分类

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象 ( 库、表、字段 )
DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的访问权限
  • 打开命令行输入 mysql -uroot -p,然后输入密码,成功后显示 mysql> 就表示可以对 MySQL 进行操作了

数据类型

  • 数据类型

    • 主要分为三类:数值类型、字符串类型、日期时间类型

数值类型

类型 大小 相当于 java 里的 描述
TINTINT 1 byte byte 小整数值
SMALLINT 2 byte short 大整数值
MEDIUMINT 3 byte 大整数值
INT / INTEGER 4 byte int 大整数值
BIGINT 8 byte long 极大整数值
FLOAT 4 byte float 单精度浮点数值
DOUBLE 8 byte double 双精度浮点数值
DECIMAL 依赖于精度M与标度D 小数值 ( 精确定点数 )
  • decimal 使用时需要指定:如 123.45,则 M 为 5,D 为 2

  • 上述类型后面加上 UNSIGNED 表示无符号位,如:age TINYINT UNSIGNED,就表示 age 字段的范围为 ( 0, 255 )

  • double ( 全部整体长度, 小数点后位数 ):score double(4, 1),

字符串类型

类型 大小 描述
CHAR 0 ~ 255 bytes 定长字符串
VARCHAR 0 ~ 65535 bytes 变长字符串
TEXT 0 ~ 65535 bytes 长文本数据
... ... ...
  • char(10) / varchar(10):括号内指定参数,表示当前字符串能存储的最大长度是 10,超出就会报错
  • char(2):存储 2 个字符,还是占用 10 个字符的空间,未用到的就用空格补位
  • varchar(3):存储 3 个字符,就占用 3 个字符的空间
  • 但是 char 性能更高,因为 varchar 使用时会根据内容计算所占用的空间
  • 如在要求游戏用户名长度时,长短不一,最好用 varchar,而在要求性别时就用 char

日期时间类型

类型 格式 描述
DATE YYYY-MM-DD 日期值
TIME HH:MM:SS 时间值或持续时间
YEAR YYYY 年份值
DATETIME YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP YYYY-MM-DD HH:MM:SS 混合日期和时间值
  • TIMESTAMP:时间戳,范围为 1970-01-01 00:00:01 至 2038-01-19 03:14:07

DDL

数据定义语言,用来定义数据库对象

数据库操作

查询
  • 查询所有数据库 SHOW DATABASES;
  • 查询当前数据库 SELECT DATABASE();
    • 若不知道此时是哪个数据库时使用此语句查询
创建
  • CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];
  • 方括号内的都是可选语句
  • 上述语句中插入 IF NOT EXISTS:只有数据库名不存在时才创建
删除
  • DROP DATABASE[IF EXISTS]数据库名;
  • 上述语句插入 IF EXISTS:不存在就不删,不加此语句的话,若库名不存在就会报错
使用
  • USE 数据库名;

  • 示例

    image-20230720203511859

表操作

查询
  • 查询当前数据库所有表

    • SHOW TABLES;
  • 查询表结构

    • DESC 表名;
  • 查询指定表的建表语句

    • SHOW CREATE TABLE 表名;
创建
  • 创建

    • CREATE TABLE 表名(

      字段1 字段1类型[COMMENT 字段1注释],

      ......

      字段n 字段n类型[COMMENT 字段n注释]

      )[COMMENT 表注释];

    • 注意最后一个字段没有逗号分隔

  • 示例

    image-20230720203624462

    image-20230720204830845

修改删除
  • 添加字段
    • ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];
  • 修改字段数据类型
    • ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
  • 修改字段名和字段数据类型
    • ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
  • 删除字段
    • ALTER TABLE 表名 DROP 字段名;
  • 修改表名
    • ALTER TABLE 表名 RENAME TO 新表名;
  • 删除表
    • DROP TABLE[IF EXISTS] 表名;
  • 删除指定表,并重新创建该表
    • TRUNCATE TABLE 表名;
    • 相当于表名不变所有数据清空

数据库图形化界面工具

  • 可以用 IDEA 自带数据库 ( 似 DataGrip 使用 )

    image-20230721111747366

  • 输入用户名和密码就可以测试使用

    image-20230721112409277

  • 点击连接后面的选择 All 就可以显示所有的库

    image-20230721112441663

  • 右键连接选择 Schema 为新建库

    image-20230721112628385

  • 输入库名即可完成创建,注意:红线画出的 schema 与 database 同义,作用相同

    image-20230721112808860

  • 右键库,创建表

    image-20230721112956578

  • 点击加号或者直接右键都可以选择 Column 创建字段

    image-20230721113118009

  • 完成表格创建,下方为创建表的生成语言

    image-20230721113226506

  • 可以右键对表进行修改

    image-20230721113350469

    image-20230721113636799

  • 也可以选择右键表选择不通过图形化页面工具,而是自行编写 SQL 语句

    image-20230721113747347

  • 显示在 test 库下,可以输入语句,点击运行,显示结果

    image-20230721114128445

标签:语句,SQL,数据库,表名,MySQL,TABLE,DDL
From: https://www.cnblogs.com/zhu-ya-zhu/p/17638661.html

相关文章

  • mysql代理、中间件技术
    mysql代理、中间件技术代理简介名词DBproxy数据库中间件功能读写分离:读写分离导致处理速度迅速,一般情况下是主服务器进行写操作而从服务器进行读操作负载均衡支持数据的分片自动路由和聚合本文主要围绕Mycat实现、且在完成MM-SS集群的条件下实验步骤1.配置五台虚拟机......
  • MySQL-进阶篇 ( 存储引擎 + 索引一:结构 + 分类 + 语法 + SQL 性能分析 )
    MySQL-进阶篇(存储引擎+索引一)目录MySQL-进阶篇(存储引擎+索引一)存储引擎MySQL体系结构存储引擎简介存储引擎特点InnoDBMyISAMMemory引擎特点区分存储引擎选择索引索引概述索引结构二叉树B-Tree(B树,多路平衡查找树)B+Tree(B加树)Hash面试思考题索引分类在In......
  • MySQL-基础篇 ( SQL-DML + DQL + DCL )
    MySQL-基础篇(SQL-DML+DQL+DCL)目录MySQL-基础篇(SQL-DML+DQL+DCL)SQLDML添加数据INSERT修改数据UPDATE删除数据DELETEDQL语句编写顺序基本查询条件查询(WHERE)聚合函数(count、max、min、avg、sum)分组函数(GROUPBY)排序查询(ORDERBY)分页查询(......
  • MySQL 8 下载安装过程
    MySQL8安装过程搜索MySQL官网——>点击DOWNLOADS——>MySQLCommunity(GPL)Downloads本文是下载社区版本,商业版本的话点击此页面的MySQLEnterpriseEdition(商业的是有技术支持收费的,本文介绍的是免费的社区版)点击MySQLCommunityServer选择......
  • 【技术积累】MySQL优化及进阶
    MySql优化及进阶一、MySQL体系结构连接层:是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信服务层:大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行引擎层:负责了MySQL中数据的存储和提取,服......
  • 内网服务器离线编译安装mysql5
    目录一.前言二.关于MySQL三.MySQL安装篇3.1部署环境3.2前期准备工具3.3挂载系统ISO镜像,配置yum源3.4安装mysql编译所需的依赖包3.5源码编译安装mysql5.73.6配置mysql四.MySQL调优篇4.1对MySQL进行安全设置4.2设置MySQL超时时间4.3MySQL配置文件优化参......
  • 8种最坑的SQL语法
    SQL语句的执行顺序:LIMIT语句分页查询是最常用的场景之一,也是最容易出问题的地方。比如下面的简单的语句,一般DBA想要的办法是在type,name,create_time字段上加组合索引,这样条件排序都能有效的利用的索引,性能迅速提升。SELECT*FROMoperationWHEREtype='SQLStats'ANDname......
  • Linux centos7.6 在线及离线安装postgresql12 详细教程
    一、在线安装官网找到对应的版本PostgreSQL: https://www.postgresql.org/     1.配置yum源sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 2.在线安装PostgreSQLsudoyuminsta......
  • mysql
    几乎每张业务表都带有一个日期列,用于记录每条记录产生和变更的时间。比如用户表会有一个日期列记录用户注册的时间、用户最后登录的时间。又比如,电商行业中的订单表(核心业务表)会有一个订单产生的时间列,当支付时间超过订单产生的时间,这个订单可能会被系统自动取消。日期类型虽然常......
  • ctfshow-web入门-sql注入-SELECT模块
    title:ctfshow-web入门-sql注入-SELECT模块date:2023-08-1322:06:17categories:web刷题记录description:web171~web172基础知识缺乏的推荐看我的sqli-labs系列web171单引号包裹,思路很简单。先看多少列1'ORDERBY3--+确定三列查看回显1'UNIONSELECT1,2,3--+......