04_SQL概述及DDL

文章目录

    • 一、关于SQL
      • 1.1、SQL概述
      • 1.2、SQL分类
    • 二、数据库操作
      • 2.1、查看数据库
      • 2.2、切换数据库
      • 2.3、查询当前使用的数据库
      • 2.4、创建数据库
      • 2.5、查看数据库创建信息
      • 2.6、修改数据库
      • 2.7、删除数据库
    • 三、表的操作
      • 3.1、数据类型
        • 3.1.1、数值类型
        • 3.1.2、字符串类型
        • 3.1.3、日期时间类型
      • 3.2、创建表
      • 3.3、查看表
      • 3.4、修改表
      • 3.5、删除表

一、关于SQL

1.1、SQL概述

SQL:Structured Query Language(结构化查询语言),客户端使用SQL来操作数据库,可以应用到所有关系型数据库中。

SQL语言标准由ISO(国际标准化组织)发布,ISO定义了很多SQL标准(例如SQL99)对RDBMS进行统一的操作,相同的语句可以操作Oracle,MySQL。各个数据库厂商有自己的标准,类似于方言,MySQL中的limit。

SQL语法:

  • SQL语句可以在单行或多行书写,以分号结尾;
  • 可使用空格和缩进来增强语句的可读性;
  • MySQL不区分大小写,建议大写。

经验:通常执行对数据库的“增删改查”,简称C(Create)R(Read)U(Update)D(Delete)。

1.2、SQL分类

DDL(Data Definition Language)数据定义语言:创建、删除、修改库与表结构;

DML(Data Manipulation Language)数据操作语言:增、删、改表记录;

TPL(Transaction Process Language)事务处理语言:用于对事务进行处理;

DQL(Data Query Language)数据查询语言:用来查询记录;

DCL(Data Control Language)数据控制语言:用来定义访问权限和安全级别。

二、数据库操作

2.1、查看数据库

# 查看所有的数据库
mysql> SHOW DATABASES; 
数据库名称描述
information_schema信息数据库,其中保存着关于所有数据库的信息(元数据),元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。
mysql核心数据库,主要负责存储数据库的用户、权限设置、关键字等,以及需要使用的控制和管理信息,不可以删除。
performance_schema性能优化的数据库,MySQL 5.5版本中新增的一个性能优化的引擎。
sys系统数据库,MySQL5.7版本中新增的可以快速的了解元数据信息的系统库,便于发现数据库的多样信息,解决性能瓶颈问题。

2.2、切换数据库

# 切换到想要操作的数据库
mysql> USE sys;

2.3、查询当前使用的数据库

mysql>  select database();

2.4、创建数据库

#创建名字为mydb1数据库
mysql> CREATE DATABASE mydb1; 
#创建数据库并设置编码格式为utf8
mysql> CREATE DATABASE mydb2 CHARACTER SET utf8;
#如果mydb3数据库不存在,则创建;如果存在,则不创建。
mysql> CREATE DATABASE IF NOT EXISTS mydb3; 

2.5、查看数据库创建信息

 mysql> SHOW CREATE DATABASE mydb1;

2.6、修改数据库

#修改数据库的字符集
mysql> ALTER DATABASE mydb1 CHARACTER SET gbk; 

2.7、删除数据库

#删除数据库mydb1
mysql> DROP DATABASE mydb1; 
#如果存在数据库mydb2就删除
mysql> DROP DATABASE IF EXISTS mydb2; 

三、表的操作

3.1、数据类型

MySQL支持多种类型,大致可以分为三类:

  • 数值;
  • 字符串(字符)类型;
  • 日期时间。

数据类型对于我们约束数据的类型有很大的帮助。

3.1.1、数值类型
类型大小范围(有符号)范围(无符号)用途
INT4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
DOUBLE8 字节(-1.797E+308,-2.22E-308)(0,2.22E-308,1.797E+308)双精度浮点数值
DOUBLE(M,D)8个字节,M表示长度,D表示小数位数同上,受M和D的约束 DOUBLE(5,2) -999.99-999.99同上,受M和D的约束双精度浮点数值
DECIMAL(M,D)DECIMAL(M,D)依赖于M和D的值,M最大值为65依赖于M和D的值,M最大值为65小数值,和钱相关,不会出现精度缺失的问题
3.1.2、字符串类型
类型大小用途
CHAR0-255字符定长字符串CHAR(10)10个字符
VARCHAR0-65535 字节变长字符串VARCHAR(10)10个字符
BLOB(binary large object)0-65535字节二进制形式的长文本数据
TEXT0-65535字节长文本数据

关于CHAR和VARCHAR:

  • CHAR(255) 数据长度不足指定长度,补足到指定长度,用于身份证号,手机号,时间固定长度的内容;
  • VARCHAR(65535) 数据长度不足指定长度,不补足到指定长度,用于用户名,备注不固定长度的内容;
  • VARCHAR单独至少花一个字节保存数据长度,如果长度超过一个字节,就要花费两个字节。
3.1.3、日期时间类型
类型大小范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038 结束时间是第 2147483647 秒北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳

3.2、创建表

语法:

CREATE TABLE [IF NOT EXISTS] 表名(列名 数据类型 [约束],列名 数据类型 [约束],列名 数据类型 [约束]       //最后一列的末尾不加逗号[CHARSET=utf8];			//可根据需要指定表的字符编码集

关于约束后面会讲到,这里可以暂时不关注。

举例:

学生表(student)

列名数据类型说明
idINT编号
nameVARCHAR(20)姓名
ageINT年龄
birthdayTIMESTAMP生日
phonenumCHAR(11)手机号
addressVARCHAR(20)住址
CREATE TABLE student (id INT,name VARCHAR(20),age INT,birthday TIMESTAMP,phonenum CHAR(11),address VARCHAR(20)
);

3.3、查看表

# 查看当前数据库中所有表名称
SHOW TABLES;
# 查看指定表的创建语句
SHOW CREATE TABLE 表名;
# 查看表结构
DESC 表名;

3.4、修改表

# 添加列
ALTER TABLE 表名 ADD (列名 列类型,列名 列类型
)# 修改列类型(如果被修改的列已存在数据,那么新的类型可能会影响到已存在数据), 修改表中的某列时,也要写全列的名字,数据类型,约束
ALTER TABLE 表名 MODIFY 列名 列类型;   # 修改列名, 在给定列新名称时,要指定列的类型和约束
ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;# 删除列, 删除列时,每次只能删除一列
ALTER TABLE 表名 DROP 列名;# 修改表名称
ALTER TABLE 原表名 RENAME TO 新表名;
ALTER TABLE 原表名 RENAME 新表名; 

3.5、删除表

DROP TABLE 表名;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIA-数据通信datacom认证

文章目录 一、数据通信简介1.1 标准协议1.2 数据传输过程 二、通用路由平台VRP2.1 VRP简介2.2 命令行基础 三 、网络层协议IP3.1 数据封装3.2 数据包传输2.3 IP地址2.4 子网划分2.5 ICMP 四、IP路由基础4.1 路由概述4.2 路由表4.3 路由转发4.4 静态路由4.5 动态路由4.6 路由高级…

fast_pow(),c语言幂函数

double fast_pow(double a, int n) { double res 1.0; while (n > 0) { if (n & 1) res * a; // 如果当前位是1,累乘 a * a; // 平方 n >> 1; // 右移一位(相当于 n / 2&…

OpenBMC:BmcWeb 处理http请求2 查找路由对象

OpenBMC:BmcWeb 处理http请求1 生成Request和AsyncResp对象_bmc web-CSDN博客 当接收到http请求,并且完成解析后,调用了App::handle处理请求 而App::handle又调用了router.handle(req, asyncResp);来处理请求 1.Router::handle void handle(const std::shared_ptr<Requ…

[Mac]利用hexo-theme-fluid美化个人博客

接上文,使用Fluid美化个人博客 文章目录 一、安装hexo-theme-fluid安装依赖指定主题创建「关于页」效果展示 二、修改个性化配置1. 修改网站设置2.修改文章路径显示3.体验分类和标签4.左上角博客名称修改5.修改背景图片6.修改关于界面 欢迎大家参观 一、安装hexo-theme-fluid 参…

深入理解二叉树、B树与B+树:原理、应用与实现

文章目录 引言一、二叉树&#xff1a;基础而强大的结构基本概念特性分析Java实现应用场景 二、B树&#xff1a;适合外存的多路平衡树基本概念关键特性查询流程示例Java简化实现典型应用 三、B树&#xff1a;数据库索引的首选核心改进优势分析范围查询示例Java简化实现实际应用 …

8.4考研408简单选择排序与堆排序知识点深度解析

考研408「简单选择排序与堆排序」知识点全解析 一、简单选择排序 1.1 定义与核心思想 简单选择排序(Selection Sort)是一种选择排序算法,其核心思想是: 每趟选择:从待排序序列中选择最小(或最大)的元素,与当前位置的元素交换。逐步构建有序序列:经过 n − 1 n-1

为什么需要开源成分分析?库博同源分析工具介绍

在当今的软件开发世界中&#xff0c;开源组件已经成为不可或缺的一部分。无论是加速开发进程&#xff0c;还是降低开发成本&#xff0c;开源组件都为我们带来了巨大的便利。然而&#xff0c;随着开源组件的广泛使用&#xff0c;安全风险也随之而来。你是否曾担心过&#xff0c;…

ros2 humble无法识别头文件<rclcpp/rclcpp.hpp>

首先在C/C配置中设置路径&#xff1a; 可以编辑文件.vscode/c_cpp_properties.json ${workspaceFolder}/**/opt/ros/humble/include/**编译配置 确保配置好了CMakeLists.txt文件。 colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDSON这样会在目录下生成compile_com…

常用的排序算法及对比

1. 选择排序&#xff08;Selection Sort&#xff09; 算法思想与理论推导 基本思想&#xff1a; 每次从待排序数组中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将它与当前序列的起始位置交换&#xff0c;逐步将整个数组排序。 推导过程&#xff1a; 设数组长…

Linux基础入门:从零开始掌握Linux命令行操作

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f388;有没有觉得电影里的黑客&#x1f412;酷毙了&#xff1f;他们只用键盘⌨就能搞定一切。今天&#xff0c;毛毛张要带你们体验这种快感&#x1f600;&…

OpenAI发布的《Addendum to GPT-4o System Card: Native image generation》文件的详尽笔记

Native_Image_Generation_System_Card 文件基本信息 文件名称&#xff1a;《Addendum to GPT-4o System Card: Native image generation》发布机构&#xff1a;OpenAI发布日期&#xff1a;2025年3月25日主要内容&#xff1a;介绍GPT-4o模型中新增的原生图像生成功能&#xff…

5.02 WPF的 Combox、ListBox,slider、ProgressBar使用

1. 关于Combox\ListBox使用&#xff1a; 1.1 内容绑定有两种方法&#xff0c; 优先使用方法1&#xff0c;因为列表变化的时候&#xff0c;Combox会自动显示新的内容。而方法2并不会实时更新。 方法1&#xff1a;使用DataContext this.comboBox1.DisplayMemberPath "na…

《孟婆汤的SHA-256加密》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 文章目录 **第一章&#xff1a;黄泉路上的数据风暴****第二章&#xff1a;碱基对的非对称加密****第三章&#xff1a;RAFT协议暴动事件****第四章&#xff1a;灵魂分叉与硬重放****终章&…

SpringBoot事务管理(四)

记录几条SpringBoot事务管理中踩过的坑及解决办法&#xff1a; 1. 自调用问题 问题描述 在同一个类中&#xff0c;一个非事务方法调用另一个有 Transactional 注解的事务方法&#xff0c;事务不会生效。因为 Spring 的事务管理是基于 AOP 代理实现的&#xff0c;自调用时不会…

HTTP 1.1长连接问题

在长连接问题上&#xff0c;HTTP 1.1与HTTP 1.0还是有所区别的。 下面一起来看看&#xff1a; HTTP 1.1 支持长连接&#xff08;PersistentConnection&#xff09;和请求的流水线&#xff08;Pipelining&#xff09;处理&#xff0c;在一个 TCP 连接上可以传送多个 HTTP 请求…

鸿蒙应用元服务开发-Account Kit概述

Account Kit&#xff08;华为账号服务&#xff09;提供简单、快速、安全的登录功能&#xff0c;让用户快捷地使用华为账号登录元服务。用户授权后&#xff0c;Account Kit可提供头像、手机号码等信息&#xff0c;帮助元服务更了解用户。Account Kit提供的SampleCode示例工程体现…

IP综合实验

1.配置eth-trunk进行绑定 [LSW1]interface Eth-Trunk 0 [LSW1-Eth-Trunk0]q [LSW1]interface g0/0/2 [LSW1-GigabitEthernet0/0/2]eth-trunk 0 [LSW1-GigabitEthernet0/0/2]int g0/0/3 [LSW1-GigabitEthernet0/0/3]eth-trunk 0 [LSW1-GigabitEthernet0/0/3]display et…

SAP 学习笔记 - 系统移行业务 - MALSY(由Excel 移行到SAP 的收费工具)

以前有关移行&#xff0c;也写过一些文章&#xff0c;比如 SAP 学习笔记 - 系统移行业务 - Migration cockpit工具 - 移行Material&#xff08;品目&#xff09;-CSDN博客 SAP 学习笔记 - 系统移行业务 - Migration cockpit工具2 - Lot导入_sap cockpit-CSDN博客 SAP学习笔记…

二叉树搜索树与双向链表

一&#xff1a;题目 二&#xff1a;思路 把二叉搜索树的值升序的打印出来&#xff0c;中序打印即可&#xff0c;但是此题不仅仅是有序的打印出二叉搜索树的值&#xff0c;而是要将其的结构也改变了&#xff0c;也就是说要改变节点间的指向&#xff0c;让其成为一个双向链表 我…

31天Python入门——第17天:初识面向对象

你好&#xff0c;我是安然无虞。 文章目录 面向对象编程1. 什么是面向对象2. 类(class)3. 类的实例关于self 4. 对象的初始化5. __str__6. 类之间的关系继承关系组合关系 7. 补充练习 面向对象编程 1. 什么是面向对象 面向对象编程是一种编程思想,它将现实世界的概念和关系映…