MySQL(二)——基本操作

2023-11-18

数据库操作

- 创建数据库

CREATE DATABASE

# impact为数据库名
# if not exists可选,防止mysql报错
CREATE DATABASE (if not exists) impact;

- 列出 MySQL数据库列表

SHOW DATABASES

show databases;

- 使用数据库

USE 数据库名

use impact;
Database changed

- 判断当前所处的数据库

SELECT DATABASE()

SELECT DATABASE();

- 删除数据库

DROP DATABASE 数据库名

# runoob为数据库名,IF EXISTS可选,防止mysql报错
DROP DATABASE (IF EXISTS) runoob;

数据库表操作

- 数据库中的所有表

SHOW TABLES

show tables;

- 创建数据表

CREATE TABLE 表名()

# 第一列为表字段名,第二列为数据类型
# 表字段用','隔开
# comment '说明' 可选,字段的属性 可选
create table charact_tbl(
       id int comment '编号',
       name varchar(10) comment '姓名',
       country varchar(10) comment '国家',
       sex varchar(1) comment '性别'
       ) comment '角色表';

- 查询表结构

desc 表名

# 可查询多个表,用逗号隔开
desc charact_tb;

- 查询指定表的建表语句

SHOW CREATE TABLE 表名

show create table charact_tb;

- 修改表名

ALTER TABLE 表名 RENAME TO 新表名

ALTER TABLE charact_tb RENAME TO alter_tbl;

- 删除表单

DROP TABLE (IF EXISTS) 表名

DROP TABLE IF EXISTS charact_tb;

- 删除该表并重新再创建(格式化)

TRUNCATE TABLE 表名

TRUNCATE TABLE charact_tbl;

- 添加表字段

ALTER TABLE 表名 ADD 字段名 类型
会添加到表单的末尾

alter table charact_tb add age int;

- 修改字段类型及名称

  • ALTER TABLE 表名 MODIFY 字段名 类型 ;
    只修改数据类型
alter table charact_tb modify age tinyint;
  • ALTER TABLE 表名 MODIFY 字段名 新字段名 类型
alter table charact_tb change age school varchar(10);

- 删除表字段

ALTER TABLE 表名 DROP 表字段名 ;
如果数据表中只剩一个字段则无法使用DROP来删除字段

alter table charact_tb drop school;

- 从表中查询数据

  • SELECT 列名称 FROM 表名称
# 查询多个列可以用逗号隔开
select name from alter_tbl;
  • SELECT * FROM 表名称
    '*'代表表中的所有列
select * from alter_tbl;

- 在表单中插入数据

INSERT INTO 表名 ( 表字段 )VALUES( 插入的数据 );

insert into user(name,age,school,grade,gender,date)
    ->  VALUES
    -> ("小何",17,"xx大学","大一","女",now());

where子句

用于规定选择的标准,可用于增删查改

  • 查找数据

SELECT 表字段 FROM 表名称 WHERE 表字段 运算符 值

 select * from user where age>17;

AND和OR 运算符

信息的进一步过滤

- AND运算符

# 使用AND显示年龄大于17并且年级是大一
 select * from user where age>17 AND grade="大一";

- OR运算符

# 使用OR显示年龄大于17或者年级是大一
select * from user where age>17 OR grade="大一";

- 同时使用OR和AND运算符

# 使用OR显示年龄大于17或者年级是大一并且年龄小于19
 select * from user where(age>17 OR grade="大一") AND age<19;

LIKE 子句

模糊匹配

- %通配符

  • 在字符后代表着匹配从这几个字符开始
#  查询id以1开始的
select * from user where id LIKE "1%" ;
  • 在字符代前代表着匹配以这几个字符结束
 #  查询id以1结尾的
select * from user where id LIKE "%1" ;
  • 字符两边都有%表示包含
# 查询日期中含有16的
select * from user where date LIKE "%16%" ;

- _运算符

  • 相当于代替任意1个字符
# _代替了年龄的第二位
select * from user where age LIKE "1_" ;

IN操作符

在 WHERE 子句中规定多个值

SELECT 表字段 FROM 表名 WHERE 表字段 IN (表字段值)

SELECT * FROM user WHERE age IN (16,17);

BETWEEN 操作符

选取介于两个值之间的数据范围,和AND连用

SELECT 表字段 FROM 表名 WHERE 表字段 BETWEEN 表字段值1 AND 表字段值2

包括表字段值1,包括表字段值2

select * from user where id BETWEEN 1 AND 3;

在BETWEEN前加NOT,选取范围之外

select * from user where id NOT BETWEEN 4 AND 11;

UNION 操作符

合并两个或多个 SELECT 语句的结果

重复值不会显示

UNION ALL可以显示重复值

排序

ORDER BY 用于定义排序的方式

# 默认升序
select * from employees order by last;

desc降序

select * from employees order by last desc;

asc升序

 select * from employees order by last asc;

分组

group by 把数据分组

# 计数count()
 select age ,count(*) from user group by age;

更新数据

UPDATE 表名 SET 字段名=新值 WHERE 字段名 操作符 值

update user SET school="xxx大学" where age=16;

删除数据

DELETE FROM 表名 WHERE 字段名 操作符 值

delete from user where age<17;

JOIN子句

- INNER JOIN

获取两个表中字段匹配关系的记录
两表之间必须匹配

select * from user inner join employees on employees.id=user.id;

以上等价于

select * from user ,employees where employees.id =user.id;

- LEFT JOIN

获取左表所有记录,即使右表没有对应匹配的记录

select * from employees left join user on employees.id=user.id order by employees.id ;

- RIGHT JOIN

获取右表所有记录,即使左表没有对应匹配的记录

select * from user right join employees on employees.id=user.id order by employees.id ;

SELECT DISTINCT 语句

列出不同的值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL(二)——基本操作 的相关文章

随机推荐

  • -day17 面向对象基础

    第三模块 面向对象 网络 并发编程 此模块包含如下三大部分知识 面向对象 Python中支持两种编程方式来写代码 分别是 函数式编程 面向对象式编程 函数式 定义函数 在函数中实现功能 def func print 一个功能 执行函数 fu
  • mysql高可用分库分表ShardingSphere之Sharding-proxy

    文章目录 一 ShardingSphere 1 1 官网地址说明 1 2 为什么分库分表 二 官网整合说明 1 1 下载sharding proxy 1 2 sharding proxy集成注册中心 1 3 查看配置手册 1 3 1 官网数
  • C++ 快速排序

    快速排序是比较常用的一种排序 平均时间复杂度为O nlogn 最坏的时间复杂度为O n 话不多说 上代码 include
  • [Python人工智能] 三十三.Bert模型 (2)keras-bert库构建Bert模型实现文本分类

    从本专栏开始 作者正式研究Python深度学习 神经网络及人工智能相关知识 前一篇文章开启了新的内容 Bert 首先介绍Keras bert库安装及基础用法 这将为后续文本分类 命名实体识别提供帮助 这篇文章将通过keras bert库构建
  • 【C++】异常

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 异常 1 C语言处理异常的方式 2 C 处理异常的方式
  • MyBatis 中if 标签 判断字符串不生效

    今天遇到if 标签判断字符串不生效 导致查询结果错误 异常sql 的mapper 文件
  • Ubuntu14.04安装ssh实现远程登陆

    Ubuntu14 04安装ssh实现远程登陆 安装 sudo apt get install y ssh 修改ubuntu的ip地址和PC在同一网段内 配置 sudo gedit etc ssh sshd config 修改成如下设置 重启
  • C++给变量起别名

    以下代码展示给变量a取一个别名b 两者指向同一个内存空间位置 改变b a也会相应改变 include
  • AR模型脱卡,unity端实现步骤详情

    AR模型脱卡unity端实现具体步骤 AR模型脱卡的原理 利用一些unity端AR插件做AR应用 通常会有一个需求 当识别物消失的时候 将3D模型从识别物这个父物体上移除 显示在屏幕中央 那么原理就显而易见了 就是在识别物追踪方法中 写一些
  • Pytorch固定部分参数(只训练部分层)

    参考 https www cnblogs com jiangkejie p 11199847 html 在迁移学习中我们经常会用到预训练模型 并在预训练模型的基础上添加额外层 训练时先将预训练层参数固定 只训练额外添加的部分 完了之后再全部
  • 字节对齐和字节序

    1 字节对齐 1 什么是字节对齐 内存空间是按字节划分 理论上可以从任意起始地址访问任意类型的变量 但实际上在访问特定类型变量是经常在特定的内存地址访问 这就需要各种数据类型按照一定的规则进行排列 而不是一个接一个紧接着排放 简单的讲就是数
  • C++拷贝构造函数—类临时对象的构建与析构

    一 对象的概念 对象的基本概念 我们最开始学习数据类型的时候 我们会学到 int a 10 这种写法 这种写法是数据类型 标识符的形式 标识符来给我们程序运行中需要使用到的内存空间取名字 这个标识符一般指的是变量 而利用常量来对我们向系统申
  • 针对“PL2303HXA自2012已停产,请联系供货商”问题的解决办法

    连接nanopi友善之臂时遇到这种情况 首先尝试更新驱动程序 在更新驱动程序后当时可以正常用putty连接板子 但在第二天又出现了这个问题 其实就是驱动程序太新了 安装旧版驱动程序就可以 查看现在的驱动程序版本 是2021年的 打开设备管理
  • 全网最详细中英文ChatGPT-GPT-4示例文档-语句情绪分类从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    从0到1快速入门语句情绪分类应用场景 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node js接口请求示例 cu
  • android从一个应用跳转到另一个应用

    获取launcher中的应用列表 Intent intent new Intent intent setAction Intent ACTION MAIN intent addCategory Intent CATEGORY LAUNCHE
  • 奇异谱分解轴承故障诊断代码编写

    答 我可以为您提供一些建议 以帮助您编写奇异谱分解轴承故障诊断代码 1 首先 要确定故障类型 以便确定诊断策略 2 然后 可以使用多种故障诊断技术 包括奇异谱分析 以及其他故障诊断技术 3 为了更好地掌握故障特征 可以使用相关的轴承数据库
  • 最近在学动态规划,很有意思的算法(1)拿金币

    问题描述 有一个N x N的方格 每一个格子都有一些金币 只要站在格子里就能拿到里面的金币 你站在最左上角的格子里 每次可以从一个格子走到它右边或下边的格子里 请问如何走才能拿到最多的金币 输入格式 第一行输入一个正整数n 以下n行描述该方
  • 代码扫描工具对比

    1 概述 随着网络的飞速发展 各种网络应用不断成熟 各种开发技术层出不穷 上网已经成为人们日常生活中的一个重要组成部分 在享受互联网带来的各种方便之处的同时 安全问题也变得越来越重要 黑客 病毒 木马等不断攻击着各种网站 如何保证网站的安全
  • asm:常见指令大全

    常见指令大全 算数指令 INC 指令 DEC 指令 ADD 指令 SUB指令 MUL指令 IMUL指令 DIV指令 IDIV指令 逻辑指令 AND指令 OR指令 XOR 指令 TEST指令 NOT指令 交换指令 xchg 比较指令 CMP指
  • MySQL(二)——基本操作

    MySQL操作 数据库操作 创建数据库 列出 MySQL数据库列表 使用数据库 判断当前所处的数据库 删除数据库 数据库表操作 数据库中的所有表 创建数据表 查询表结构 查询指定表的建表语句 修改表名 删除表单 删除该表并重新再创建 格式化