MySQL基础篇(一)SQL

视频地址: 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

SQL,全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一 标准

一、SQL通用语法

SQL 语言的通用语法:
(1)SQL语句可以单行或多行书写,以分号结尾。
(2)SQL语句可以使用空格/缩进来增强语句的可读性。
(3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
(4)注释:
1️⃣单行注释:-- 注释内容 或 # 注释内容
2️⃣多行注释:/* 注释内容 */

二、SQL 分类

在这里插入图片描述

三、DDL

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。

1. DDL - 数据库操作

1.1 查询所有数据库

SHOW DATABASES;

1.2 查询当前数据库

SELECT DATABASE();

1.3 创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

1.4 删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

1.5 切换数据库

我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。

USE 数据库名;

2. DDL - 表操作 - 查询创建

2.1 查询当前数据库所有表

show tables;

比如,我们可以切换到 sys 这个系统数据库,并查看系统数据库中的所有表结构。

use sys;
show tables;

2.2 查看指定表结构

desc 表名 ;

通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为 NULL,是否存在默认值等信息。

2.3 查询指定表的建表语句

show create table 表名 ;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。

2.4 创建表结构

CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;

注意: […] 内为可选参数,最后一个字段后面没有逗号

比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:在这里插入图片描述

create table tb_user(
id int comment '编号',
name varchar(50) comment '姓名',
age int comment '年龄',
gender varchar(1) comment '性别'
) comment '用户表';

3. DDL - 表操作 - 数据类型

MySQL 中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

3.1 数值类型

在这里插入图片描述

如:
1). 年龄字段 -- 不会出现负数, 而且人的年龄不会太大
age tinyint unsigned2). 分数 -- 总分100分, 最多出现一位小数
score double(4,1)

3.2 字符串类型

在这里插入图片描述

char 与 varchar 都可以描述字符串,char 是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而 varchar 是变长字符串,指定的长度为最大占用长度 。相对来说,char 的性能会更高些。

如:
1). 用户名 username ------> 长度不定, 最长不会超过50
username varchar(50)2). 性别 gender ---------> 存储值, 不是男,就是女
gender char(1)3). 手机号 phone --------> 固定长度为11
phone char(11)

3.3 日期时间类型

在这里插入图片描述

如:
1). 生日字段 birthday
birthday date2). 创建时间 createtime
createtime datetime

4. 表操作-案例

设计一张员工信息表,要求如下:
(1)编号(纯数字)
(2)员工工号 (字符串类型,长度不超过10位)
(3)3. 员工姓名(字符串类型,长度不超过10位)
(4)性别(男/女,存储一个汉字)
(5)年龄(正常人年龄,不可能存储负数)
(6)身份证号(二代身份证号均为18位,身份证中有X这样的字符)
(7)入职时间(取值年月日即可)

create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证号',entrydate date comment '入职时间'
) comment '员工表';

5. DDL - 表操作 - 修改

5.1 添加字段

ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例:
为 emp 表增加一个新的字段”昵称”为 nickname,类型为 varchar(20)

ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';

5.2 修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

5.3 修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例:
将 emp 表的 nickname 字段修改为 username,类型为 varchar(30)

ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '昵称';

5.4 删除字段

ALTER TABLE 表名 DROP 字段名;

案例:
将 emp 表的字段 username 删除

ALTER TABLE emp DROP username;

5.5 修改表名

ALTER TABLE 表名 RENAME TO 新表名; 

案例:
将 emp 表的表名修改为 employee

ALTER TABLE emp RENAME TO employee;

6. DDL - 表操作 - 删除

6.1 删除表

DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。

案例:
如果 tb_user 表存在,则删除 tb_user 表

DROP TABLE IF EXISTS tb_user;

6.2 删除指定表, 并重新创建表

TRUNCATE TABLE 表名;

注意: 在删除表的时候,表中的全部数据也都会被删除。

四、DML

DML 英文全称是 Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
(1)添加数据(INSERT)
(2)修改数据(UPDATE)
(3)删除数据(DELETE)

1. 添加数据

1.1 给指定字段添加数据

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);

案例:
给 employee 表所有的字段添加数据

insert into employee(id,workno,name,gender,age,idcard,entrydate)
values(1,'1','Itcast','男',10,'123456789012345678','2000-01-01');

1.2 给全部字段添加数据

INSERT INTO 表名 VALUES (1,2, ...);

案例:
插入数据到 employee 表

insert into employee values(2,'2','张无忌','男',18,'123456789012345670','2005-01-01');

1.3 批量添加数据

INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (1,2, ...), (1,2, ...), (1,2, ...) ;
INSERT INTO 表名 VALUES (1,2, ...), (1,2, ...), (1,2, ...) ; 1

案例:
插入数据到 employee 表

insert into employee values(2,'2','张无忌','男',18,'123456789012345670','2005-01-01');

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

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

相关文章

electron自定义菜单

创建menu.js const { app, Menu } require("electron"); const createMenu () > {const menu [{label: "菜单",submenu: [{label: "新增",click: () > {},}, ],},{label: "关于",submenu: [{label: "新增",click:…

Java数据结构:1. 数据结构前置知识

文章目录 一、初识数据结构二、初识集合框架1. 什么是集合框架2. 集合框架的重要性3. 背后所涉及的数据结构以及算法 三、时间复杂度空间复杂度1. 算法效率2. 时间复杂度(1)概念(2)大O的渐进表示法(3)推导大…

计算机系统基础

C 语言相关内容省略,复习自用,仅供参考~ 概述 冯诺伊曼结构 存储程序工作方式:将事先编好的程序和原始数据送入主存后才能执行程序,程序被启动执行后,计算机能在不需要操作人员干预下自动完成逐条指令取出和执行的任…

奋楫扬帆,奔赴新程 | 2023 年图扑大事记回顾,与您携手共迎 2024

2023.01 工信部公示了 2022 年度智能制造示范工厂揭榜单位和优秀场景名单。图扑软件和上海洲邦合作建设的宁波甬友数字孪生工厂被评为优秀场景,全国共有 369 个智能制造典型场景入选。 2023.01 在第十一届中国创新创业大赛全国赛(新一代信息技术&#…

RabbitMQ(八)消息的序列化

目录 一、为什么需要消息序列化?二、常用的消息序列化方式1)Java原生序列化(默认)2)JSON格式3)Protobuf 格式4)Avro 格式5)MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…

通信基础——带宽

随着信息社会的发展和数字化进程的加速,通信技术已经成为现代社会最为重要的基础设施之一。而在通信技术中,带宽作为一个重要的概念,对于我们理解和应用现代通信技术具有至关重要的意义。本文将以“通信基础——带宽”为主题,对带…

高性能NVMe Host Controller IP

NVMe Host Controller IP 介绍 NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的NVMe协议命令,具备独立的数据写入AXI4-Stream/FIFO接口和数据读取AXI4-Stream/FIFO接口,非常适合于超高…

华芯微特MCU之TIMER触发ADC

01 TIMER定时器之脉冲发送功能 我们今天详细讲解一下TIMER的ADC触发功能。 SWM190的TIMER2/3支持SAR ADC触发功能,此功能配置为定时器或脉冲发送均有效,可通过配置相应寄存器实现。 将SAR ADC CTRL寄存器中TRIG设置为TIMER2触发或TIMER3触发。TIMER可作…

技术旅程分享:收获与成长的探索

2023年对我而言是充满挑战和机遇的一年,我在这段时间里积累了丰富的技术经验和个人成长。通过不懈努力和持续学习,我在技术领域迈出了一系列坚实的步伐。在这篇文章中,我将分享我在这段时间中的收获和技术成长经历,与CSDN的朋友们…

数据库存储过程

存储过程(特定功能的 SQL 语句集) 一组为了完成特定功能的 SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是…

vue的小入门

vue的快速上手 Vue概念 是一个用于构建用户界面的渐进式框架优点:大大提高开发效率缺点:需要理解记忆规则 创建Vue实例 步骤: 准备容器引包创建Vue实例new Vue()指定配置项el data>渲染数据 el指定挂载点,选择器指定控制…

解决burpsuite代理8080端口无法勾选以及卸载NI系列软件的方法

使用burpsuite中遇到这样一个问题 默认的8080端口无法绑定 提示端口已经被占用 尝试绑定其他端口,是可行的,也可以正常抓包 但是总感觉每次进来都设置添加一次,有点麻烦不舒服 那么我们来看一下8080端口到底被什么进程占用了 使用如下命令…

计算机视觉中的神经网络可视化工具与项目

前言 本文介绍了一些关于神经网络可视化的项目,主要有CNN解释器,特征图、卷积核、类可视化的一些代码和项目,结构可视化工具,网络结构手动画图工具。 CNN解释器 这是一个中国博士发布的名叫CNN解释器的在线交互可视化工具。 主要…

下载的 MongoDB bin目录下没有mongo.exe文件问题解决

MongoDB 4.4版本之前,我们可以在MongoDB的安装目录的bin文件夹中找到mongo.exe这个命令行工具。但是从MongoDB 4.4版本开始,MongoDB官方已经不再提供独立的mongo.exe可执行文件,而是将其整合到了mongosh这个新的交互式Shell中。 我们可以访问…

云计算:OpenStack 分布式架构管理FLAT网络(单控制节点与多计算节点)

目录 一、实验 1.环境 2.控制节点创建网络 3.控制节点创建规格 4.控制节点新增安全组入口规则 5.控制节点创建实例 二、问题 1.FLAT网络底层如何实现 2.无法SSH 云主机实例 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— DevEco Studio下载与安装

一、下载DevEco Studio IDE开发工具 1. 登录鸿蒙官网 网址为: ​​​​​​​华为HarmonyOS智能终端操作系统官网 | 应用设备分布式开发者生态 页面如下: 2. 搜索“DevEco Studio IDE” 点击右上角的“请输入关键词”,在其中搜索“DevEc…

Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架

目录 一、FastAPI框架概述 二、FastAPI与Flask和Tornado的性能对比 1、路由性能 2、请求处理性能 3、内存占用 三、FastAPI的优点与特色 四、代码示例 五、注意事项 六、结论 在当今的软件开发领域,快速、高效地构建API成为了许多项目的关键需求。为了满足…

pytorch06:权重初始化

目录 一、梯度消失和梯度爆炸1.1相关概念1.2 代码实现1.3 实验结果1.4 方差计算1.5 标准差计算1.6 控制网络层输出标准差为11.7 带有激活函数的权重初始化 二、Xavier方法与Kaiming方法2.1 Xavier初始化2.2 Kaiming初始化2.3 常见的初始化方法 三、nn.init.calculate_gain 一、…

Golang Leetcode19 删除链表的倒数第N个节点 递归 双指针法+迭代

删除链表的倒数第N个节点 leetcode19 递归 由于本体是倒数第几个节点,非常适合递归 从终到始 的运行方式 func removeNthFromEnd(head *ListNode, n int) *ListNode {// 创建一个虚拟头节点,简化边界条件处理dummy : &ListNode{Next: head}//检查…

【Week-P4】CNN猴痘病识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.3 ⭐torch.utils.data.DataLoader()参数详解6.1 print()常用的三种输出格式6.2 修改网络结构,观察训练结果6.2.1 增加pool2、conv6、bn6,test_accuracy82.5%6.…