首页 > 数据库 >MySQL

MySQL

时间:2023-12-03 22:22:38浏览次数:48  
标签:... 数据库 MySQL 字段 表名 where select

基础篇

通用语法及分类

  • DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
  • DML: 数据操作语言,用来对数据库表中的数据进行增删改
  • DQL: 数据查询语言,用来查询数据库中表的记录
  • DCL: 数据控制语言,用来创建数据库用户、控制数据库的控制权限

DDL(数据定义语言)

数据库操作

  • 查询所有数据库:

    show databases;
    
  • 查询当前数据库

    select database();
    
  • 创建数据库

    create database [if not exists] 数据库名;
    
  • 删除数据库

    drop database [if exists] 数据库名;
    
  • 使用数据库

    use 数据库名;
    

表操作

  • 查询当前数据库的所有表

    show tables;
    
  • 查询表结构

    desc 表名;   # 但是不会显示出来注释信息,需要查询建表语句才能显示出来
    
  • 查询指定表的建表语句

    show create table 表名;
    
  • 创建表

    CREATE TABLE 表名(
        字段1 字段1类型 [COMMENT 字段1注释],
        字段2 字段2类型 [COMMENT 字段2注释],
        字段3 字段3类型 [COMMENT 字段3注释],
        ...
        字段n 字段n类型 [COMMENT 字段n注释]			# 注意逗号
    )[ COMMENT 表注释 ];
    
    create table test_age(
    	id int comment '编号',
    	name varchar(50) comment '姓名',
    	age int comment '年龄',
    	sex varchar(1) comment '性别'
    ) comment 'test_7';
    

数据类型

image-20231203160057894

image-20231203160637347

age tinyint unsigned	# 年龄 够用范围下的无符号数
score double(4, 1)		# 整体长度为4,小数长度为1

varchar(10)				# 超过10个字符串大小将报错
char(10)				# 即使1个字符,也会占用10个字符的存储空间   性能好
# 一个汉字占用3个字节,但是是算一个字符

image-20231203161121230

修改表

  • 添加字段

    alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
    
  • 修改数据类型

    alter table 表名 modify 字段名 新数据类型(长度);
    
  • 删除字段

    alter table 表名 drop 字段名;
    
  • 修改表名

    alter table 表名 rename to 新表名;
    
  • 删除表

    drop table 表名;
    
  • 删除表,并重新创建该表

    truncate table 表名;
    

DML(数据操作语言)

添加数据

  • 指定字段添加数据

    insert into 表名 (字段名1, 字段名2...) values (值1, 值2...);
    
  • 全部字段

    insert into 表名 values (值1, 值2...);
    
  • 批量添加数据

    insert into 表名 (字段名1, 字段名2...) values (值1, 值2...),(值1, 值2...)...(值1, 值2...);
    insert into 表名 values (值1, 值2...),(值1, 值2...)...;
    

修改数据

  • 修改数据

    update 表名 set 字段名1 = 值1, 字段名2 = 值2, ... [ where 条件 ];
    # 没有where条件时就是修改表内所有的数据
    
    update test set name = 'ucas' where id = 1;
    
  • 删除表中数据

    drop table 是删除整张表(结构和数据)

    delete from 表名 [where 条件];	
    
    # 没有条件就是删除所有数据
    # delete不能删除某一个字段的值(可以使用update更新某个字段的值为NULL)
    

DQL(数据查询语言)

select
    字段列表
from
    表名字段
where
    条件列表
group by
    分组字段列表
having
    分组后的条件列表
order by
    排序字段列表
limit
    分页参数

基础查询

  • 查询字段

    select 字段1, 字段2, ... from 表名;
    # *为全部字段,但是在开发中尽量不要使用
    
  • 设置显示别名

    select 字段1 as '地址' from 表名;		# as可以省略
    
  • 去除重复记录

    select distinct 字段1 from 表名;
    

条件查询

select 字段 from 表名 where 条件列表;
比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<> 或 != 不等于
between… and… 在某个范围内(含最小、最大值)
in(…) 在in之后的列表中的值,多选一
like占位符 模糊匹配:_匹配单个字符,%匹配任意个字符
is null 是NULL
逻辑运算符 功能
and 或 && 并且(多个条件同时成立)
or 或 || 或者(多个条件任意一个成立)
not 或 ! 非,不是
# 没有身份证
select * from employee where idcard is null ;
# 不等于
select * from employee where age != 30;		#<> 30
# 年龄在20到30之间
select * from employee where age between 20 and 30;
# 下面语句不报错,但查不到任何信息
select * from employee where age between 30 and 20;
# 年龄等于25或30或35
select * from employee where age = 25 or age = 30 or age = 35;
select * from employee where age in (25, 30, 35);
# 姓名为两个字
select * from employee where name like '__';
# 身份证最后为X
select * from employee where idcard like '%X';

聚合函数

函数 功能
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
select 聚合函数(字段列表) from 表名;

select count(*) from emp where age = 88;
# NULL值不参与所有聚合函数运算 但select*还是会显示,只是单独的字段时

分组查询

标签:...,数据库,MySQL,字段,表名,where,select
From: https://www.cnblogs.com/cyl018/p/17873924.html

相关文章

  • MySQL触发器
    前言触发器(trigger)是由事件来触发某个操作,这些事件包括:insert语句、update语句、delete语句,当数据库系统执行这些事件时,就会激活执行相应的操作。一、创建触发器触发器是由insert、update和delete等事件来触发的某种特定的操作,满足触发器的触发条件时,数据库系统就会执行触发器......
  • Redis缓存和MySQL数据一致性方案详解
    需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MYSQL)间......
  • mysql批量替换字段
    一、需求将数据库内指定的数据进行批量修改,可使用replace函数如IP:端口号,只改端口号的部分,将所有192.168.1.1:8001的数据8001的端口号修改为3001replace函数的用法如下:(可实现将满足条件的A的数组从B替换至C)selectrepalce(A,'B','C')astestfromABCwhereAlike'%xxx%'二、......
  • 基于Docker搭建 Mysql8.0 主从架构
    创建主从数据库文件夹mkdir-p/usr/local/mysql/master1/confmkdir-p/usr/local/mysql/master1/datamkdir-p/usr/local/mysql/slave1/confmkdir-p/usr/local/mysql/slave1/data初始化主数据库配置文件cd/usr/local/mysql/master1/confvimy.cnf-----------------......
  • 第十四章:MySQL数据库系统
    MySQL数据库系统本章的主要内容就是MySQL关系数据库系统;介绍了MySQL数据库系统和它的重要性;Linux系统下MySQL的安装与使用方式;MySQL数据库的命令模式和批处理模式的SQL脚本管理方法;C与MySQL数据库的有机结合;MySQL数据库与PHP的集成,通过动态Web创建和管理MySQL数据库。MySQL是一......
  • 选择适合您网站的 SQL 托管:MS SQL Server、Oracle、MySQL
    SQL托管如果您希望您的网站能够存储和检索数据,您的Web服务器应该能够访问使用SQL语言的数据库系统。以下是一些常见的SQL托管选项:MSSQLServerMicrosoft的SQLServer是一个流行的数据库软件,适用于具有高流量的数据库驱动网站。它是一个强大、稳健且功能齐全的SQL数据库系统。O......
  • 选择适合您网站的 SQL 托管:MS SQL Server、Oracle、MySQL
    SQL托管如果您希望您的网站能够存储和检索数据,您的Web服务器应该能够访问使用SQL语言的数据库系统。以下是一些常见的SQL托管选项:MSSQLServerMicrosoft的SQLServer是一个流行的数据库软件,适用于具有高流量的数据库驱动网站。它是一个强大、稳健且功能齐全的SQL数据库系统。......
  • 整合springboot+mybatisplus+mysql+swagger,开发后端接口
    一、版本1.springboot:2.7.82.mybatisplus:3.5.3.13.mysql:8.04.swagger:3.0二、建立数据表(省略表结构)三、新建maven工程及springboot项目1.完成后的项目目录:2.maven工程的pom文件引入依赖:点击查看代码<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http......
  • MySQL数据库管理系统
    MySQL数据库管理系统一、知识点归纳本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在Linux机器上安装和运行MySQL;演示了如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;说明了如何将MySQL与C编程相结合;演示了如何将MySQL与PHP......
  • docker 安装mysql 8.0.26
    sudodockerpullmysql:8.0.26创建数据目录和配置文件:在你的宿主机上创建一个目录来存放MySQL的配置文件和数据。你还需要为这个目录设置适当的权限1:sudomkdir-p/data/mysql8.0/conf/data/mysql8.0/data/data/mysql8.0/logssudochmod-R755/data/mysql8.0/conf/data/......