MySQL基本操作语句

2023-11-05

目录

基本的操作数据库的语句

操作库的基本SQL语句

针对表的基本SQL语句

针对记录的基本SQL语句

扩展知识

select 标准用法


基本的操作数据库的语句

show databases;    >>>> 查看所有的数据库

show tables;   >.>> 查看所有的表

select * from mysql.user;   >>>> 查看user表里面所有的记录

SQL语句的结束符是英文状态下的分号   ;

取消SQL语句的执行  >>>  \C

操作库的基本SQL语句

1.增
    create database 库名;
2.查
    show databases;
    show create database 库名;
3.改
    alter database 库名 charset='gbk';
4.删
    drop database 库名;

create database 库名 charset utf8mb4 collate utf8mb4_bin;
数据库名                字符集            排序规则    

建库规范:
1.库名不能有大写字母       #多平台兼容问题
2.建库要加字符集         
3.库名不能有数字开头
4.库名要和业务相关
5.库名不要太长
6.不要使用内置字符

create database xiaowu;
show create database xiaowu;    #查看建库的基本命令(建库语句)
 

show create database school;
alter database xiaowu charset utf8;

注意:修改字符集,修改后的字符集一定是原字符集的严格超集
只能改库属性,不能改库名。
 

show databases;
show create database xiaowu;    #查看建库的基本命令(建库语句)

针对表的基本SQL语句

查看当前所在的库名    select database();      
如果没有切换指定的库 那么默认是NULL    
use 库名;
1.增    create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型);
        新增字段:
                alter table 表名 add 字段名 字段类型(数字) 约束条件;
                alter table 表名 add 字段名 字段类型(数字) 约束条件 after 已经存在的字段;
                alter table 表名 add 字段名 字段类型(数字) 约束条件 first;

2.查    show tables;    show create table 表名;   
        describe 表名;  desc 表名;
3.改    alter table 旧表名 rename 新表名;  # 改表名
        修改字段
                alter table 表名 change 旧字段 新字段 字段类型(数字) 约束条件;
                alter table 表名 modify 字段名 新的字段类型(数字) 约束条件;
4.删    drop table 表名;

                        alter table 表名 drop 字段名;

create table stu(
列1  属性(数据类型、约束、其他属性) ,
列2  属性,
列3  属性
)

USE school;
CREATE TABLE stu(
id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
sname   VARCHAR(255) NOT NULL COMMENT '姓名',
sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
sfz     CHAR(18) NOT NULL UNIQUE  COMMENT '身份证',
intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
) ENGINE=INNODB CHARSET=utf8mb4 COMMENT '学生表';

 ENGINE=INNODB         CHARSET=utf8mb4            COMMENT '学生表'
 存储引擎                          字符集                                        注释

1. 表名小写    #多平台兼容问题
2. 不能是数字开头
3. 注意字符集和存储引擎
4. 表名和业务有关
5. 选择合适的数据类型    #合适,简短,足够
6. 每个列都要有注释
7. 每个列设置为非空,无法保证非空,默认值或用0来填充。
8. 必须要有主键
9. 列名不要太长

针对记录的基本SQL语句

"""
既然想操作记录 那么肯定的先有库和表
   
"""
1.增
    insert into 表名 values(数据,数据);
    insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
2.查
    select * from 表名;  # *表示查看所有字段
     select 字段1,字段2 from 表名;
    ps:如果表中字段较多出现了错乱 可以结尾写\G
3.改
    update 表名 set 字段名=新数据 where 筛选条件;
4.删
    delete from 表名;  # 删除表中所有的数据
      delete from 表名 where 筛选条件  # 按照条件删除数据

扩展知识

1、伪删除
用update来替代delete,最终保证业务中查不到(select)即可
  删除id为1
    原操作:
        mysql> delete from stu where id=1;
    
    伪删除:
        1.添加状态列
        ALTER TABLE stu ADD state TINYINT NOT NULL DEFAULT 1 ;
        SELECT * FROM stu;
        2. UPDATE 替代 DELETE
        UPDATE stu SET state=0 WHERE id=6;
        3. 业务语句查询
        SELECT * FROM stu WHERE state=1;
        
2、delete from stu ,drop table stu,truncate table stu的区别
    1.都可以删除全表

    2.区别
    delete
        逻辑上,逐行删除。数据行多,操作慢
        并没有真正从磁盘删除,只是在存储层面打标记,磁盘空间不立即释放。HWM高水位线()不会降低。(自增列继续)
    
    drop
    将表结构(元数据)和数据行物理层次删除
    
    truncate
    清空表段中的所有数据页。物理层次删除全表数据磁盘空间立即释放,HWM高水位会降低。(自增列重新开始)
    
#delete,drop,truncate如果不小心删除了,他们都可以恢复吗?
    可以
    常规方法:
    都可以通过 备份+日志,恢复数据。
    
    灵活办法
    delete可以通过,翻转日志(binlog)
    三种删除数据情况,也可以通过《延时从库进行恢复》
    
    
    
数据查询之select

1.配合内置函数使用

        mysql> select now(); #查看当前时间

        mysql> select database(); #查看当前所在库

        mysql> select concat("hello word!"); #命令拼接,显示某字符串

2.计算         

        mysql> select 10*100; #进行计算

3.查询数据库的参数

        mysql> select @@port; #查询当前端口

        mysql> select @@datadir; #查看数据存储位置

        show variables; ##查看所有参数

        mysql> show variables like '%trx%'; #like 模糊查询

select 标准用法

    单表
    前提:
    select
        1.from 表1,表2,。。。
        2.where 过滤条件1,过滤条件2...
        3.group by  条件列1 条件列2。。。分组字段
        4.select_list 列名
        5.having    过滤条件1 过滤条件2。。。
        6.order by  条件列1 条件列2。。。排序字段
        7.limit    分页限制
 

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

MySQL基本操作语句 的相关文章

  • Thymeleaf 3 Spring 5 映射加载字符串而不是 HTML

    我正在尝试将 Spring 5 和 Thymeleaf 3 一起配置 我正在 Eclipse 上工作 我使用 全新安装 构建并使用 springboot run 运行应用程序 我已经设置了一个控制器和几个模板 但 Thymeleaf 似乎找
  • 如何在 Java 中向时间戳添加/减去时区偏移量?

    我正在使用 JDK 8 并且玩过ZonedDateTime and Timestamp很多 但我仍然无法解决我面临的问题 假设我得到了格式化的Timestamp在格林威治标准时间 UTC 我的服务器位于某处 假设它设置为Asia Calcu
  • Runtime.exec 处理包含多个空格的参数

    我怎样才能进行以下运行 public class ExecTest public static void main String args try Notice the multiple spaces in the argument Str
  • 提供节点名或服务名,或未知 Java

    最近我尝试运行我的 Java 项目 每当我运行它并将其打开到我得到的服务器地址时 Unable to determine host name java net UnknownHostException Caused by java net
  • 如何在单个查询中搜索 RealmObject 的 RealmList 字段

    假设我有一堂课 public class Company extends RealmObject private String companyId private RealmList
  • 如何在php中根据url从mysql获取数据?

    我在 mysql 数据库中有一个页表 其中包含 page name title content author 字段 我想用 php 来获取它http www domain com index php page page name http
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • 使用数据库进行日志记录

    大多数日志似乎都是纯文本形式 而不是放入 MySQL 其他类型的数据库中 这是否有原因 在我看来 将它们放入数据库将使分析变得非常非常容易 但这会以牺牲速度还是其他什么为代价 我不太关心可移植性 显然你会有数据库连接的文本日志 我能想到两大
  • Java Applet 中的 Apache FOP - 未找到数据的 ImagePreloader

    我正在研究成熟商业产品中的一个问题 简而言之 我们使用 Apache POI 库的一部分来读取 Word DOC 或 DOCX 文件 并将其转换为 XSL FO 以便我们可以进行标记替换 然后 我们使用嵌入到 Java 程序中的 FOP 将
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 列表过滤器内的 Java 8 lambda 列表

    示例 JSON id 1 products id 333 status Active id 222 status Inactive id 111 status Active id 2 products id 6 status Active
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • mysql 数据库正在复制,但在主服务器上创建的用户未在从服务器上复制

    在主从复制中 我们使用 mysql DB 在从服务器上复制少量数据库 我在主服务器上创建了一个用户 不幸的是它没有在从服务器上复制 Replicate Do DB app1 app2 mysql 用户创建命令 GRANT SELECT on
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v

随机推荐

  • SKB几个复制函数的区别

    1 skb clone Skb clone 函数只是复制sk buff结构 并不复制skb的数据缓冲区 Clone后的sk buff结构与原始的sk buff指向同一数据缓冲区 原始的和clone后的skb描述符的cloned值都会被置1
  • 前端基础之滚动显示

    marquee滚动标签 注 该标签已经过时 被w3c弃用 使用样例
  • 设计模式(一)- 模板方法模式

    模板方法模式 文章目录 模板方法模式 1 模板方法模式 1 介绍 2 应用实例 代码 1 父类抽象模板 统一方法定为final 2 子类去实现不同的方法 3 其他子类实现不同的方法 4 结果展示 1 模板方法模式 在模板模式 Templat
  • 微信小程序 功能页导航 functional-page-navigator 组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 仅在插件中有效 用于跳转到插件功能页 属性 类型 默认值 必填 说明 最低版本 version string release 否 跳转到的小程序版本 线上版本必须设置为 release
  • linux安装idea并创建快捷方式

    一 安装 1 下载 在linux自带的火狐浏览器打开下载更方便 下载 IntelliJ IDEA JetBrains 功能强大 符合人体工程学的 Java IDE 选择Linux 这里以下载社区版为例 我下载的版本是2022 2 3 文件名
  • 了解应用层

    应用层 1 概述 2 应用程序组织方式 2 1 C S方式 2 1 P2P方式 3 动态主机配置协议DHCP 3 1 DHCP工作流程 4 域名系统DNS 4 1 域名结构 4 2 域名分类 4 3 域名服务器 4 3 1 分类 4 4 D
  • Python-爬虫(Scrapy爬虫框架,爬取豆瓣读书和评分)

    文章目录 1 Scrapy注意点 2 Scrapy爬取豆瓣读书和评分 代码部分 数据定义items py 爬虫部分spiders book py 数据存储部分pipelines py 启动爬虫执行cmd命令 start py 1 Scrap
  • QT设计电子时钟类

    1 界面效果 2 类的声明 wedgit h class Widget public QWidget Q OBJECT public Widget QWidget parent nullptr 默认构造函数 Widget 默认析构函数 vo
  • 磁共振检查头部能检测出什么_头部核磁共振可以检查什么?

    很多人会疑惑为什么要做头部核磁共振 做CT不好吗 这是因为脑CT具有一定的局限性 有时候脑CT是不能诊断出脑部异常情况的 头部核磁共振检査较CT更为敏感 具有多方向切层 多参数成像的特点 能更精确的现实病变位置 范围大小及组织学特性 是发现
  • 【Java】利用SpringBoot搭建WebService服务接口

    前言 在项目开发过程中经常会碰到对接医疗软件系统的时候对方要求提供WebService形式的接口 本篇文章记载了个人对接项目过程中整合并搭建的WebService形式的接口 希望对您能够有所帮助 一 在pom xml文件中导入WebServ
  • 期权、期货及其他衍生产品 第一章读书笔记

    期权 期货及其他衍生产品 第一章读书笔记 介绍 什么是衍生产品 衍生产品的特点 有哪些交易所场所 交易所市场 一些著名的交易所市场 场外市场 我国的场外市场 远期合约 远期合约可以用来对冲外汇风险 远期合约的收益 远期价格和即期价格 期货合
  • lua学习笔记—table

    1 什么是table table是lua的一种数据结构 可以用来创建数组或映射 lua中的table使用的是关联型数组 关联数组的key值可以是除过nil之外任意类型的值 table的大小是不固定的 可以自己进行扩容 2 如何构造table
  • iOS autorelease 示例研究

    iOS autorelease是Objective C中的一个自动内存管理机制 它通过在对象创建时将其添加到自动释放池中 在池被释放时自动释放对象 从而减少手动内存管理的工作量 本文将介绍如何使用autorelease机制来管理内存 aut
  • 跨部门的高效沟通与协作

    在企业管理当中 沟通是一个非常重要的技能 它运用我们管理当中每一个细节 首先要做好沟通和协作 我们需要有一个很好的思维模式 这个就像盖房子一样 它是地基 是一个房子的地基部分 没有一个正确的思维模式 那我们其后的技巧都不会有一个很好的效果
  • 大数据框架总结

    hdfs 1 写数据流程 2 HDFS读数据流程1 3 HDFS副本节点选择 4 HDFS nn 2nn 镜像文件以及编辑日志的工作机制 注意此类机制都是先更新编辑日志 再更新内存文件block元数据 checkpoint触发默认条件是一小
  • 谈谈虚幻引擎4的Global Illumination

    本届GDC 2013 Epic再次展示了UE4的最新demo 效果惊艳毋庸置疑 不过今天我们只谈UE4的光照利器 SVOGI SVOGI全称Sparse Voxel Octree Global Illumination 由Epic的Andr
  • DES的加密与解密(C语言实现)——大三密码学实验

    目录 DES的描述 Feistel体制 密钥扩展函数 F函数 总流程 代码 get函数的构建 yihuo函数的构建 fuck函数的构建 left move函数的构建 exchange函数的构建 erzhuanshi函数的构建 shizhua
  • 利用Vulnhub复现漏洞 - GoAhead 远程命令执行漏洞(CVE-2017-17562)

    GoAhead 远程命令执行漏洞 CVE 2017 17562 Vulnhub官方复现教程 漏洞原理 复现漏洞 启动环境 漏洞复现 动态链接库源码 编译so文件 发送payload Vulnhub官方复现教程 https vulhub or
  • EasyExcel导出模板实现下拉选(解决下拉超过50个限制)

    学习地址 https d9bp4nr5ye feishu cn wiki O3obweIbgi2Rk1ksXJncpClTnAf B站视频 https www bilibili com video BV1H34y1T7Lm 先来看看最终实现
  • MySQL基本操作语句

    目录 基本的操作数据库的语句 操作库的基本SQL语句 针对表的基本SQL语句 针对记录的基本SQL语句 扩展知识 select 标准用法 基本的操作数据库的语句 show databases gt gt gt gt 查看所有的数据库 sho