首页 > 数据库 >Mysql常用语法详解

Mysql常用语法详解

时间:2023-03-23 16:12:05浏览次数:53  
标签:数据库 Mysql 查询 语法 索引 详解 表名 table 字段名

一、数据库

  1. 创建数据库
    create database 数据库名;
  2. 查询所有数据库
    show databases;
  3. 查看正在创建的数据库信息
    show create database 数据库名;
  4. 删除数据库
    drop database 数据库名;
  5. 使用数据库
    use 数据库名;

二、表

  1. 创建表
    create table 表名(字段名 数据类型(长度),字段名 数据类型(长度)...);

例如:
create table employee(
id int(10),
name varchar(25),
age int(3)
);

进阶:
create table employee(
id int(10) not null primary key comment '主键id',
name varchar(25) not null comment '姓名',
age int(3) not null comment '年龄',
address varchar(200) not null comment '住址'
);
)

  1. 查询所有表
    show tables;
  2. 查询正在创建的表信息
    show create table 表名;
  3. 查询表的详细信息
    desc 表名;
  4. 删除表
    drop table 表名;
  5. 添加新的字段
    alter table 表名 add 字段名 数据类型(长度);
  6. 修改字段的数据类型、长度
    alter table 表名 modify 字段名 数据类型(长度);
  7. 删除字段
    alter table 表名字 drop 字段名;
  8. 修改字段名
    alter table 表名 change 旧字段名 新字段名 新字段数据类型(长度);
  9. 修改表名
    rename table 旧表名 to 新表名;

三、增删改查

  1. 增(插入)
    insert into 表名(字段1,字段2,字段3,...) values (值1,值2,值3,...);

注意:必须插入的值与表字段循序一一对应,且字符串和日期类型的数据库必须有单引号括起来
insert into 表名 values (值1,值2,值3,...);


  1. delete from 表名 where 条件表达式(说明:字段 = 'xxx');

  2. update 表名 set 字段1 = 值1,字段2 = 值2,... where 某字段 = 'xxx';

  3. select 字段1, 字段2,字段3,... from 表名 [where 条件表达式];

四、范式

  1. 第一范式:
  2. 第二范式:
  3. 第三范式:

五、判断对象是否存在

  1. 判断数据库是否存在
    if exists (select * from sysdatabases where name = '数据库名');
  2. 判断表是否存在
    if not exists (select * from sysobjects where name = '表名');

七、数据记录同济函数

  1. 平均值
    avg(字段名)
  2. 行数
    count(字段名)
  3. 列最大值
    max(字段名)
  4. 列最小值
    min(字段名)
  5. 列总和
    sum(字段名)

例如:
select count(name) form employee;

八、连接

  1. 内连接(inner join)
    查询返回满足条件的所有记录

默认情况下没有指定任何连接的则为内连接

  1. 左外连接(left join)
    不仅查询返回条件的所有记录,而且还会返回不满足连接条件的左边表的其他行
  2. 右外连接(right join)
    不仅查询返回条件的所有记录,而且还会返回不满足连接条件的右边表的其他行
  3. 全连接
    Mysql暂不支持,Union代替

九、索引

1.简介
MySQL索引是一种特殊的数据结构,能够帮助数据库系统快速地检索数据。索引常常被用于WHERE子句和JOIN子句中的列上,以提高查询性能。
2.MySQL中常见的索引类型

2.1 BTree索引
BTree索引是MySQL中最常见的索引类型,它使用B-Tree数据结构来存储索引。B-Tree索引非常适合进行范围查询和排序。如果使用了前缀索引,则B-Tree索引还可以用于在较短的字符前缀上进行查询。

2.2 哈希索引
哈希索引使用哈希算法来计算每个索引值的位置。这种类型的索引适合进行等值查询,但不适合进行范围查询和排序。哈希索引不能用于解决ORDER BY子句的性能问题,因为它无法保证数据的有序性。

2.3 全文索引
全文索引是一种特殊的索引类型,用于在文本中进行全文检索。它可以在文本中搜索特定的单词或短语,并返回与之匹配的结果。MySQL的全文索引可以用于MyISAM和InnoDB表。

3.MySQL索引的使用方式取决于查询的类型和数据的分布情况。以下是一些MySQL索引的使用注意事项

3.1 不要对大型表中的每个列都创建索引。这样做会影响查询性能并占用大量磁盘空间。

3.2 对于经常使用的列,创建索引可以提高查询性能。例如,对于经常使用的日期列或状态列,可以创建一个B-Tree索引。

3.3 尽量避免使用LIKE子句进行模糊查询。这样的查询不能使用索引,而是需要进行全表扫描。

3.4 对于查询经常使用的列,可以使用覆盖索引来提高查询性能。覆盖索引是指索引列就包含了查询所需的所有数据,不需要再到表中进行查找。

3.5 考虑使用复合索引。复合索引是由多个列组成的索引。复合索引可以减少索引数量,并提高查询性能。

3.6在对表进行大量写入操作时,索引可能会降低性能。因此,应该谨慎地对表进行索引,以避免写入性能问题。

标签:数据库,Mysql,查询,语法,索引,详解,表名,table,字段名
From: https://www.cnblogs.com/arek/p/16663589.html

相关文章

  • MySQL创建数据库(CREATE DATABASE语句)
    在 MySQL 中,可以使用 CREATEDATABASE 语句创建数据库,语法格式如下:CREATEDATABASE[IFNOTEXISTS]<数据库名>[[DEFAULT]CHARACTERSET<字符集名>] [[DEFAUL......
  • SpringBoot详解
    一、介绍1.SpringBoot是一个基于Spring框架的开源框架,用于构建微服务和Web应用程序。它可以帮助开发者轻松创建独立的、基于Spring的应用程序,并在较短的时间内完......
  • 虚拟内存与malloc/new原理详解
    mallocmalloc()函数并不是系统调用,而是C库里的函数,用于动态分配内存。malloc()分配的是虚拟内存,而不是物理内存。如果分配后的虚拟内存没有被访问的话,是不会将虚拟内存......
  • mac M2 colima下 mysql 镜像问题
    一开始时使用如下配置version:"3"services:mysql:image:mysql:5.7.22container_name:mysqlports:-3306:3306environment:TZ:......
  • 力扣569(MySQL)-员工薪水中位数(困难)
    题目: 写一个SQL查询,找出每个公司的工资中位数,以任意顺序返回结果表。查询结果个数如下所示。  输出结果如下: 解题思路:中位数:位于集合正中间的元素。当数据总书......
  • MySQL求最大同时在线人数的一种解法
    目录题目地址代码题目地址https://www.nowcoder.com/practice/d69677e41f9a4bf3b3ed7a42573e9490代码withtotal_infoas(selectct.course_id,ct.course_name,......
  • MySQL过程式编程,case when嵌套,差分(自联结完成),PERIOD_DIFF求月份差
    题目地址https://www.nowcoder.com/practice/aef5adcef574468c82659e8911bb297f代码#还是过程式编程吧,否则万一签到奖励规则变了,SQL代码你根本不知道怎么改#Keepin......
  • 【web 开发基础】PHP 快速入门(9)-PHP 运算符之位运算符详解
    前言PHP开发基础开速入门系列目录:《【web开发基础】php开发基础快速入门(1)-PHP介绍及开发环境快速安装和基本使用介绍》《【web开发基础】php开发基础快速入门(2)-......
  • 在mysql中分组和排序同时使用
    在mysql中,分组和排序同时使用时,需要注意配置中的sql_mode是否有only_full_group,如果运行在这个模式下,orderby语句中的字段,必须出现在groupby中,否则会提示错误Expressio......
  • 关于MySQL”Tablespace for table **** exists“错误如何解决
    前段时间服务器蹦造成所有项目都启动不了,需要重装系统。而在重装前把数据及项目代码都打包备份。重装好后重新搭建项目,而在导入数据库时出现了个别数据表导不进,而后查看报......