当前位置: 首页 > news >正文

MySQL基础操作指南:第一篇

MySQL基础操作指南

一、数据库操作

1.1 概念阐述

基本操作语法结构
创建数据库create database 数据库名 character set utf8;
删除数据库drop database 数据库名
选择数据库use 数据库名;
查看当前选择的数据库select database();
查看当前数据库包含的数据表show tables;
查看数据库建表语句show create database 数据库名;

1.2 相关代码

# 创建数据库
create database mark_test character set utf8;
# 查看数据库建表语句
show create database mark_test;
# CREATE DATABASE `mark_test` /*!40100 DEFAULT CHARACTER SET utf8 */
# 切换数据库
use mark_test;
# 查看数据库表
show tables;
# 查看当前所在的数据库
select database();
# 删除数据库
drop database mark_test;


二、数据库表操作

2.1 概念阐述

基本操作语法结构
创建表create table表名[列及类型];
查看表结构desc 表名;
修改表alter table 表名 add[change]drop 列名;
修改表名称rename table 原名 to 新名;
查看表的创建语句show create table 表名;
删除表drop table 表名;

2.2 数据表约束条件

约束条件说明
primary key主键(唯一、不能为空)
not null不为空
null允许为空
auto_increment自增长(一般和主键结合使用)
unique唯一,不能重复
foreign key外键,指向另一个表的主键

2.3 相关的代码

# 创建表
create table sutdent(id int primary key auto_increment,name varchar(20),bothday datetime,sex char(1)
)charset =utf8;# 查看表结构
desc sutdent;# 修改表
# 1.添加字段
alter table sutdent add tel int(11);
alter table sutdent add class int after id;
desc sutdent;
# 2. 修改数据类型
alter table sutdent modify class varchar(10);
desc sutdent;
# 3. 删除字段
alter table sutdent drop class;
desc sutdent;
# 4. 修改字段名
alter table sutdent change bothday birthday datetime;
desc sutdent;
# 5. 表重命名(2法)
alter table sutdent rename studen;
desc studen;
rename table studen to student;
desc student;# 删除表
drop table student;
desc student;

2.4 alter表字段操作

  • 添加字段(add)
    • alter table 表名 add 字段名 数据类型;
    • alter table 表名 add 字段名 数据类型 first;
    • alter table 表名 add 字段名 数据类型 after 字段名; # 在那个字段名之后添加
  • 删除字段(drop)
    • alter table 表名 drop字段名;
  • 修改数据类型(modify)
    • alter table 表名 modify 字段名 新数据类型;
  • 修改字段名(change)
    • alter table 表名 change 旧字段名 新字段名 新数据类型;
  • 表重命名(rename)
    • alter table 表名 rename 新表名;

2.5 练一练

作业要求:

  • 1、创建老师表
  • 2、给教师表添加 tel char (11) not null 这个字段;
  • 3、在age之后添加height字段;
  • 4、删除height字段;
  • 5、修改age字段为最小的整数字段;
  • 6、把sex字段改成gender;
  • 7、把老师表改名。
# 创建老师表
create table LaoShi(id int primary key auto_increment,name varchar(20) not null,sex char(1) not null
)charset = utf8;
desc LaoShi;
# 添加tel字段
alter table LaoShi add tel char(11) not null;
# 添加age字段
alter table  LaoShi add age int not null after sex;
# 添加height
alter table LaoShi add height float not null after age;
# 修改age类型
alter table LaoShi modify age TINYINT;
# 修改sex字段名为gender
alter table LaoShi change sex gender char(5);
# 修改表名
alter table LaoShi rename teachers;


三、数据库DML操作

3.1 DML基本操作

  • 插入数据(增)
    • 全列插入:insert into 表名 values(值1,值2,…);
    • 缺省插入:insert into 表名(列1,列2,…) values(值1,值2,…);
    • 批量插入:insert into 表名 values (值1,值2,…), (值1,值2,…), …;
  • 更新数据(改)
    • update 表名 set 列1=值1,… where 条件;
  • 删除数据(删)
    • delete from 表名 where 条件;
    • delete from 表名;
    • truncate table 表名;

3.2 相关代码

create table students(id int primary key auto_increment,age int not null,name varchar(10)
)engine =innodb charset =utf8;# 查看表结构
desc students;
# 插入数据# 1、 全列插入
insert into students values(0, 15, "小明"); # 要与表字段名一一对应
select *from students;# 查看表已有数据# 2、 缺省插入
alter table students modify age int; # 修改约束
insert into students(id, name) values(0, "小芳");# 3、 批量插入
insert into students values(0, 13, "张三"),(0, 14,"李四"),(0, 18,"王五");# 更新数据
update students set age=18 where age>=14;
update students set age=5 where name="小芳";
# 删除数据
delete from students where age<=5;
select *from students;


四、数据库DQL操作

4.1 数据库数据表常见查询语句

  • 全部查询

    select *from 表名
    
  • 条件查询

  • select *from 表名 where 条件;
    
  • 算法运算符:+、-、*、/、%(求余)…

  • 比较运算符:>、<、=、!= <>(不等于)、<= ,>=, between(两者之间) and … ,in…

  • 逻辑运算符:and,or,not/! ,…

  • 位运算符:&,|,^,!,<<,>>

4.2 其他查询

  • 模糊查询

  • 分页查询

  • 排序查询

4.3 题目练习

4.3.1 常见查询操作练习

创建学生表,并插入数据

# 创建表
create table student(id int auto_increment primary key ,age int,sid char(20),sex bit,name char(20),isDelete bit default 0
)engine =innodb charset =utf8;
# 查看表结构
desc student;
# 插入数据
insert into student(age, sid, sex, name) values
(18, "0001", 1, "liudehua"),
(20, "0002", 0, "zhanghuimei"),
(23, "0003", 1, "daotang"),
(15, "0004", 0, "yunduo"),
(30, "0005", 1, "zhangxueyou"),
(32, "0006", 1, "zhangguorong"),
(22, "0007", 0, "liruotong"),
(40, "0008", 1, "zhongminghgiu"),
(50, "0009", 1, "zhouxingchi"),
(30, "0010", 1, "zhazhahui"),
(60, "0011", 1, "renxiaoqi");# 缺省插入
insert into student(age,sex,name) values(18, 1, "liudehua");
insert into student(age,sid, sex,name) values(18, '', 1, "liudehua");
insert into student(age,sex,name) values(36, 1, "高磊"),(20, 1, "高鹏鹏"),(30, 1, "高子龙"),(20, 1, "高兴") ;
insert into student(age,sex,name) values(34, 1, "高%");
insert into student(age,sex,name) values(34, 1, "高%1"),(34, 1, "高%2"),(34, 1, "高%3");

1、查询年龄在30岁以下的学生信息

2、查询年龄在20~30岁之间的学生信息(包含)

3、查询学生年龄小于20岁或大于30岁的学生信息

4、查询学生id为1,3,5的学生信息。

5、查询学生sid不为空的学生信息

# 全部查找
select *from student;# 1、查询年龄在30岁以下的学生信息
select *from student where age<=30;# 2、查询年龄在20~30岁之间的学生信息(包含)
select * from student where age between 20 and 30;
select * from student where age>=20 and age<=30;
# 3、查询学生年龄小于20岁或大于30岁的学生信息
select *from student where age<20 or age>30;
# 4、查询学生id为1,3,5的学生信息。
select *from student where id in(1,3,5);
# 5、查询学生sid不为空的学生信息
select *from student where sid is not null;  # 会把空字符的也保留下来。
select *from student where sid !=''; # 应该使用这种形式查看非空信息

4.3.2 时间查询操作练习

  • 时间类型相关概述
类型大小(字节)范围格式用途
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:59’YYYY-MM-DD HH:MM:SS混合日期和时间值
timestamp41970-01-01 00:00:00 ~2038结束时间是第2147483647秒,北京时间2038-1-18 11:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳
  • 时间日期函数:

    • now()返回服务器当前时间,格式对应datetime
    • curdate()返回当前日期,格式对应date
    • curtime()返回当前时间,格式对应time
  • 时间操作

  • 日期运算:select *from 表名 where 字段名 运算符(时间-interval 时间 间隔单位)

练习1

'''
题目要求:1、创建马拉松表 marathon2、编号,姓名,注册时间,成绩;id int, name varchar(32), registDateTime, score time3、给表添加数据,注册时间分别 now、curdate、curtime。对比效果。
'''
# 建表
create table marathon(id int auto_increment primary key ,name varchar(32),regist datetime,score time
)engine =innodb charset =utf8;
desc marathon;# 插入数据
insert into marathon values(0, "aaa", now(),now());
insert into marathon values (0, "bbb", curdate(),curdate());
insert into marathon values (0, "ccc", curtime(),curdate());
select *from marathon;

练习2:在练习1的基础上增加操作

"""
题目要求:1、向表marathon中添加一些数据,查询马拉松成绩大于2:30分的人(两种写法)2、查找马拉松表距现在一周以内的报名信息。
"""
# 添加一些数据
insert into marathon(id, name, regist, score) values
(null, "ddd", "2022-12-01", "20:50:30"),
(null, "eee", "2022-11-01", "20:50:25"),
(null, "fff", "2022-12-03", "20:50:30"),
(null, "ggg", "2022-12-14", "20:10:30"),
(null, "mmm", "2023-03-03", "20:10:00"),
(null, "ggg", "2022-03-04", "20:40:20");
select *from marathon;# 查找马拉松成绩时间大于2:30分的人
select * from marathon where score>='2:30:00';
select * from marathon where score>(time('3:00:00') - interval 30 minute );# 查找马拉松表距现在一周以内的报名信息。
select *from marathon where regist>(now() - interval 7 day);

4.3.3 其他查询操作练习

题目要求:在之前创建的学生表中,完成以下操作:

​ 1、查询姓高的学生信息
​ 2、查询姓高并且姓名由两个汉字组成的学生信息
​ 3、查询学生姓名为高%的学生信息
​ 4、查询前5条学生信息
​ 5、查询名字不为空,sid不为空的所有学生信息,按照年龄降序输出。

# 1、查询姓高的学生信息
select * from student where name like '高%'; # %代表以”高“开头的任意字符
# 2、查询姓高并且姓名由两个汉字组成的学生信息
select *from student where name like '高_'; # _代表以”高“开头的一个字符
# 3、查询学生姓名为高%的学生信息
select * from student where name='高%';
# 4、查询前5条学生信息
select * from student limit 5;
# 5、查询名字不为空,sid不为空的所有学生信息,按照年龄降序输出。
select *from student where name!='' and sid!='' order by age desc;

相关文章:

MySQL基础操作指南:第一篇

MySQL基础操作指南 一、数据库操作 1.1 概念阐述 基本操作语法结构创建数据库create database 数据库名 character set utf8;删除数据库drop database 数据库名选择数据库use 数据库名&#xff1b;查看当前选择的数据库select database();查看当前数据库包含的数据表show ta…...

C#中包含?的运算符使用汇总

总目录 文章目录总目录前言一、使用概述二、使用说明1.可空类型修饰符2.三目运算符3.空合并运算符4.NULL 检查运算符结语前言 本文将含有&#xff1f;运算符的各种使用进行汇总&#xff0c;方便系统性记忆和知识回顾。 一、使用概述 用法描述?可空类型修饰符?:三目运算符?…...

剑指 Offer 56 - I. 数组中数字出现的次数

剑指 Offer 56 - I. 数组中数字出现的次数 难度&#xff1a;middle\color{orange}{middle}middle 题目描述 一个整型数组 numsnumsnums 里除两个数字之外&#xff0c;其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)&#xff0c;空间复杂度…...

MySQL事务日志

1.概述 事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢? 事务的隔离性由 锁机制 实现而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证 REDO LOG 称为 重做日志&#xff0c;提供再写入操作&#xff0c;恢复…...

极速开发,无限可能,2023网易低代码大赛全新赛季启动

去年火爆的低代码大赛还犹在目&#xff0c;近800人用轻舟低代码平台畅享开发乐趣。这不&#xff0c;2023网易低代码大赛即刻启动&#xff0c;3月6日至3月27日限时开放报名&#xff0c;全新角逐&#xff0c;正式展开&#xff01;1\ 获胜者可得万元大奖、猪厂工作机会 /Low Code …...

C++ | 详细介绍缺省参数的作用

文章目录一、前言1、缺省参数概念2、缺省参数的使用规则二、全缺省参数【备胎是如何使用的♿】1、四种实参传递方式说明2、疑难细究三、半缺省参数【⭐】1、错误用法示范2、正确用法示范&#x1f525;实参缺省与形参缺省的混合辨析&#x1f525;3、小结四、缺省参数的实际应用 …...

【sdx62】sdx62分析代码中Serial Number的寄存器地址及获取Serial Number的方法

计算Serial Number寄存器地址 查看Serial Number ./boot_images/boot/QcomPkg/SocPkg/Library/XBLLoaderLib/boot_info_log.c /* Array of raw fuse addresses and names to be logged during boot loginitialization. Array must be null terminated. */ static struct boot_…...

MATLAB的快速入门

第一部分&#xff1a;基础知识常用命令&#xff1a;clc %清除命令行窗口 clear %清空工作区数据 cd %显示或改变工作目录 clf %清除图形窗口 help %打开帮助文档 save %保存内存变量到指定文件 hold %保持图形 close %关闭当前图窗 quit %退出变量&#x…...

Python中赋值、引用、深浅拷贝的区别和联系

文章目录一、对象的唯一id二、赋值三、可变对象和不可变对象四、函数的参数传递五、深拷贝和浅拷贝六、举个栗子6.1 不可变对象的拷贝6.2 可变对象的拷贝6.3 可变对象改变外层元素6.4 可变对象改变内层元素七、总结一、对象的唯一id python中的所有对象都有自己的唯一id&#…...

春招冲刺(十一):前端面试之网络总结

网络总结 Q1: GET和POST的请求的区别 应用场景&#xff1a;Get是一个幂等请求&#xff0c;一般用于请求资源。post不是幂等请求&#xff0c;一般用于修改资源。缓存&#xff1a;Get请求一般缓存&#xff0c;Post一般不缓存报文格式&#xff1a;Get请求体一般为空&#xff0c;…...

Mybatis插件

插件使用 动手实现plugin 首先我们需要实现一下这个Interceptor&#xff0c;其中plugin和setProperties方法可以不实现&#xff0c;plugin是因为已经有了完善的逻辑&#xff0c;而setProperties&#xff0c;如果不需要在intercept()中使用属性&#xff0c;也可以不设置。然后…...

计算机学科专业基础综合科目(408)

文章目录408 第一章 数据结构数据是客观事物的符号表示&#xff0c;是对现实世界的事物采用计算机能够识别&#xff0c;存储和处理的形式进行描述的符号的集合。 数据元素是数据的基本单位。一个数据元素由若干个数据项组成。数据项又成为简单数据项及复合数据项两种。简单数据…...

centos7安装教程

1.点击文件–新建虚拟机 2.根据图片一直下一步或者做一些改动 3. 点击自定义硬件&#xff0c;点击浏览选中下载好的ISO文件 4.配置完成后启动虚拟机 5.选择语言&#xff0c;中英文都可&#xff0c;按需求选择 6.进行设置目标位置&#xff0c;配置分区 7.选择网络和主机名 8.配置…...

Kafka 重平衡

Kafka 重平衡协调者RebalanceRebalance 条件Rebalance 避免Rebalance : 让单 Group 下所有的 Consumer 怎么消费订阅主题的所有分区Rebalance 时 , 所有 Consumer 要共同参与 (无法消费)&#xff0c;在协调者 (Coordinator) 协调下&#xff0c;完成订阅主题分区的分配 协调者…...

PTA:L1-022 奇偶分家、L1-023 输出GPLT、L1-024 后天(C++)

目录 L1-022 奇偶分家 问题描述&#xff1a; L1-023 输出GPLT 问题描述&#xff1a; 实现代码&#xff1a; L1-024 后天 问题描述&#xff1a; 实现代码&#xff1a; 简单题&#xff0c;没写题解&#xff0c;看代码就能看懂 L1-022 奇偶分家 问题描述&#xff1a; 给…...

IDEA插件开发入门.02

前言许久没更新IDEA插件开发系列了。最近刚好在汇总日常开发中常见的代码“异味”&#xff0c;共享文档复制黏贴略显麻烦&#xff0c;所以想着是否可以搞一个IDEA插件来帮忙收集常见代码&#xff0c;毕竟IDEA作为后端程序员必备的开发工具&#xff0c;显然会方便很多。于是&…...

如何用 23 种编程语言说“Hello World”

在编程的世界里&#xff0c;" Hello World " 往往是开发者开始学习一种新语言时写的第一个程序。这个简单的程序会将 “Hello World“ 输出在我们的屏幕上。看似很简单的行为&#xff0c;实际上对于每一个新学习编程语言的人来说&#xff0c;它代表着新的起点。那么&…...

【Linux快速入门】文件目录操作

文章目录概念1. Linux文件系统概述2. Linux文件目录结构3. Linux文件和目录操作3.1 文件操作3.1.1 创建文件3.1.2 复制文件3.1.3 移动文件3.1.4 删除文件3.1.5 查看文件3.1.6 输出指令3.1.7 >和>>指令3.2 目录操作3.2.1 创建目录3.2.2 复制目录3.2.3 移动目录3.2.4 删…...

字体反爬慢慢总结破解方式

什么是字体反爬 网页开发者自己创造一种字体&#xff0c;因为在字体中每个汉字都有其代号&#xff0c;那么以后再网页中不会直接显示这个文字的效果。而是显示其代号&#xff0c;因此即使获取了网页的文本内容。也只是获取到文字的代号&#xff0c;而不是文字本身。 简单来说&…...

Kafka 位移提交

Kafka 位移提交自动提交手动提交Consumer 的消费位移 : 记录 Consumer 下一条消息的消费位移 如 : Consumer 已消费 5 条消息 (位移: 0 - 4) , 此时 Consumer 位移 5 : 指向下一条消息的位移 提交位移 (Committing Offsets) : Consumer 向 Kafka 汇报位移数据 Consumer 能同…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...