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.hqwc.cn/news/317575.html

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

相关文章

【力扣题解】P700-二叉搜索树中的搜索-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P700-二叉搜索树中的搜索-Java题解🌏题目描述💡题解&#x1f…

Python 面向对象之绑定和非绑定方法

Python 面向对象之绑定和非绑定方法 【一】序言 在Python类的成员中分为两类:一个是属性,另一个就是方法(就是定义的函数)方法又分为两大类:绑定方法(动态方法)和非绑定方法(静态方…

RocketMQ5.0消息过滤

前言 消费者订阅了某个主题后,RocketMQ 会将该主题中的所有消息投递给消费者。若消费者只需要关注部分消息,可通过设置过滤条件在 Broker 端进行过滤,只获取到需要关注的消息子集,避免接收到大量无效的消息。 以电商交易场景为例…

海外住宅IP代理的工作原理和应用场景分析,新手必看

海外住宅IP代理作为一种技术解决方案,为用户提供了访问全球网络资源和维护隐私安全的方法。本文将介绍海外住宅IP代理的工作原理和应用场景,帮助读者更好地理解和利用这一技术。 一、工作原理 海外住宅IP代理的工作原理基于代理服务器和IP地址的转发。它…

Docker实战02|Namespace

在上一文《Docker实战01|容器与开发语言》中主要介绍了Docker的基本概念与Docker安装、Go语言安装等实战技巧。 本文继续针对Namespace技术展开讲解并利用Go语言进行实践。 本系列所有代码均已经开源。关公众号回复「Go语言实现Docker」即可获得。 目录 2.1.2 U…

Spring ApplicationEvent事件处理

Spring的事件 ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。 ApplicationEvent就是Spring的事件接口Applic…

谷歌推出创新SynCLR技术:借助AI生成的数据实现高效图像建模,开启自我训练新纪元!

谷歌推出了一种创新性的合成图像框架,这一框架独特之处在于它完全不依赖真实数据。这个框架首先从合成的图像标题开始,然后基于这些标题生成相应的图像。接下来,通过对比学习的技术进行深度学习,从而训练出能够精准识别和理解这些…

leetcode:1464. 数组中两元素的最大乘积(python3解法)

难度:简单 给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。 请你计算并返回该式的最大值。 示例 1: 输入:nums [3,4,5,2] 输出:12 解释:如…

海外静态IP和动态IP有什么区别?推荐哪种?

什么是静态ip、动态ip,二者有什么区别?哪种好?关于这个问题,不难发现,在知道、知乎上面的解释有很多,但据小编的发现,这些回答都是关于静态ip和动态ip的专业术语解释,普通非专业人事…

一、初识Redis与分布式系统

目录 一、Redis应用 二、实现方式 三、Redis应用 四、分布式系统 五、分布式系统实现 1、应用服务和数据库服务分离 2、引入负载均衡,应用服务器集群(解决高并发) 3、引入读写分离,数据库主从结构(解决高并发&a…

CentOS 7 实战指南:文本处理命令详解

前言 在Linux系统中,文本处理是非常基础却又必不可少的一项技能。如果你正在使用CentOS系统,那么学会如何利用文本操作命令来高效地处理文本文件无疑将会是一个强有力的工具。 本篇文章将介绍一些最常用和最实用的文本操作命令,并通过详尽的…

为什么要用扫码出入库?

一、什么是扫码出入库管理系统 传统的仓库管理模式存在很多问题,如:货物积压、过期、丢失等。这些问题不仅影响了企业的正常运营,还给企业带来了经济损失。为了解决这些问题,扫码出入库管理系统应运而生。该系统采用先进的二维码…