MySQL快速入门,基本操作语法[忘了翻看一下]

本文详细讲解了MySQL的基础操作,包括DDL(数据定义语言)创建、删除和修改表结构,DML(数据操纵语言)的增删改操作,以及DQL(数据查询语言)的复杂查询技巧。还涉及了数据库设计原则、外键约束和事务管理,适合数据库开发者和初学者参考。
摘要由CSDN通过智能技术生成

MySQL

SQL语句

  1. DDL 是对数据库和表的增删改查操作
  2. DML是对数据的增删改操作
  3. DQL是对数据的查询操作

一、DDL

1.DDL --操作数据库

1.1.查询
    SHOW DATABASES;
1.2.创建
    1. CREATE DATEBASE 数据库名称;
    2. CREATE DATABASE IF NOT EXISTS 数据库名称;
1.3.删除
    1.DROP DATABASE 数据库名称;
    2.DROP DATABASE IF EXISTS 数据库名称;
1.4.使用数据库

1.查看当前使用使用数据库

    SELECT DATABASE( );

2.使用数据库

    USE 数据库名称;

2.DDL --操作表

2.1查询表

1.查询当前数据库下所有表:

    SHOW TABLES;

2.查询表结构

    DESC 表名称;
2.2创建表
CREAT TABLE 表名(

       字段名1 数据类型1,
       字段名2 数据类型2,
       字段名n 数据类型n
);

注意:最后一行末尾不能加分号,每一个用逗号隔开,用小括号

数据类型

MySQL 支持多种类型,可以分为三类:
数值型,日期,字符串
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p31tXx8n-1668562992280)(en-resource://database/1017:1)]

2.3删除表
  1. 删除表:

     DROP TABLE 表名;
    

2.删除表时判断表是否存在

    DROP TABLE IF EXISTS 表名;
2.4修改表
  1. 修改表名

     ALTER TABLE 表名 RENAME TO 新的表名;
    
  2. 添加一列

     ALTER TABLE 表名 ADD 列名 数据类型;
    
  3. 修改数据类型

     ALTER TABLE 表名 MODIFY 列名 新数据类型;
    
  4. 修改列名和数据类型

     ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
    
  5. 删除列

     ALTER TABLE 表名 DROP 列名;
    

二、DML --对数据的增删改操作

1.添加数据

  1. 给指定列添加数据

     INSERT INTO 表名(列名1,列名2,···) VALUES(值1,值2···);
    
  2. 给全部列添加数据

     INSERT INTO 表名 VALUES(值1,值2···);
    
  3. 批量添加数据

     INSERT INTO 表名(列名1,列名2,···) VALUES(值1,值2···),(值1,值2···),(值1,值2···)···);
     INSERT INTO 表名 VALUES(值1,值2···),(值1,值2···),(值1,值2···)···;
    

2.修改数据

        UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,···[WHERE 条件] ;

注意:修改语句中如果不加添加条件,则所有数据都会被修改

3.删除数据

    DELETE FROM 表名 [WHERE 条件];

注意:修改语句中如果不加添加条件,则所有数据都会被删除

三、DQL --对数据的查询

注释:

  1. SELECT [DISTINCT] 子句:指定查询结果中需要显示的列,当子句为 * 时表示查询所有数据。DISTNCT是用来在查询中去掉重复数据项。
  2. AS:是来更改查询结果中的列名。
  3. FROM 子句:指定要查询的的表。
  4. WHERE 表达式:指定查询的检索条件。
  5. GROUP BY 子句:指定查询结果的分组条件。
  6. HAUING 表达式:指定分组的筛选条件。
  7. ORDER BY 子句:指定查询结果的排序列和排序方法。
  8. INTO OUTFILE 输出文件名:将查询的结果保存到指定的文件中。

1.基础查询

  1. 查询多个字段

     SELECT 字段列表 FROM 表名;
     SELECT * FROM 表名; -- 查询所有数据
    
  2. 去除重复记录

     SELECT DISTINCT 字段列表 FROM 表名;
    
  3. 起别名

     AS: (AS也可以省略,用空格隔开)
    

2.条件查询(WHERE)

  1. 条件查询语法

     SELECT 字段列表 FROM 表名 WHERE 条件列表;
    

注意:null值的比较不能用 = != 需要用 is, is not来比较

like 
 通配符:_:可以匹配单个任意字符
           %:匹配多个任意字符,可以是0个

3.分组查询(GROUP BY)

  1. 分组查询语法

     SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定]  GROUP BY 分组字段名 [HAVING 分组后条件过滤];
    

注意: 分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

  1. where 和 having 区别:
    • 执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
    • 可判断的条件不一样: where不能对聚合函数进行判断,having可以

执行顺序:where>聚合函数>having

分完组之后用聚合函数进行计算操作

聚合函数
  1. 概念
    将一列数据作为一个整体,进行纵向计算
  2. 聚合函数分类
函数名功能
count(列名)统计数量(一般不用选用为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值
  1. 聚合函数语法:

     SELECT 聚合函数名(列名)FROM 表;
    

注意:null值不参与所有聚合函数运算

注意点:
1. count取值:主键、*

4.排序查询(ORDER BY)

  1. 排序查询语法

     SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]···;
    
  2. 排序方式:
    ASC: 升序排列(默认值)
    DESC:降序排列
    注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

5.分页查询(LIMIT)

1.分页查询语法:

    SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
  • 起始索引: 从0开始

计算公式: 起始索引= (当前页面-1)*每页显示的条数

tips:

  • 分页查询limit 是MySQL数据库的方言
  • Oracle 分页查询使用 rownumber
  • SQL Server 分页查询使用top

约束

1. 约束的概念

  • 约束是作用于表中列上的规则,用于限制加入表的数据
  • 约束的存在保证了数据库中数据的正确性,有效性和完整性

2. 约束的分类

约束名称描述关键字
非空约束保证列中所有数据不能有null值NOT NULL
唯一约束保证列中所有数据各不相同UNIQUE
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
检查约束(MySQL 不支持)保证列中的值满足某一条件CHECK
默认约束保存数据时,未指定值则采用默认值DEFAULT
外键约束外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性FOREIGN KEY

自动增长:auto_increment;(当列是数字类型且 唯一约束)

3. 外键约束

  1. 添加约束:
   -- 创建表的时候添加外键约束
   
   CREATE TABLE 表名(
   列名 数据类型,
   ···
   
  [CONSTRAINT] [ 外键名称 ] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)    
   );
   
   
   --建完表后添加外键约束
   
   ALTER TABLE 表名 ADD CONSTRAING 外键名称 FOREION KEY(外键字段名称) REFERENCES 主键名称(主键列名称);
   
   
  1. 删除约束

    ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    

数据库设计

表关系:一对一,一对多,多对多

1.表关系之一对多

  • 如:部门表和员工表
  • 一个部门对应多个员工,多个员工对应一个部门

实现方式:在多的一方建立外键,指向一的一方的主键

2.多对多

  • 如:订单和商品
  • 一个商品对应多个订单,一个订单包含多个商品

实现方式:建立第三章中间表,中间表至少包含两个外键,分别关联两方主键·

3.一对一

  • 如:用户和用户详情
  • 一对一关系多用于表的拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能

实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一

多表查询

从多张表查询数据

  1. 连接查询:
    • 内连接:相当于查询A,B交集的数据
    • 外连接:
      • 左外连接:相当于查询A表所有数据和交集部分数据
      • 右外连接:相当于查询B表所有数据和交集部分数据
    • 子查询:

1.内连接

内连接 相当于查询A,B交集的数据

1.内连接查询语法

   -- 隐式内连接
   SELECT 字段列表 FROM 表1,表2... WHERE 条件;
   
   -- 显示内连接
   SELECT 字段列表 FROM 表1 INNER JOIN 表2 ON 条件;  

2.外连接

  • 左外连接:相当于查询A表所有数据和交集部分数据
  • 右外连接:相当于查询B表所有数据和交集部分数据

    --左外连接
    SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
    
    --右外连接
    SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

3.子查询

  • 子查询:查询中嵌套查询,称嵌套查询为子查询
  • 子查询根据查询结果不同,作用不同:
    • 单行单列
    • 多行单列
    • 多行多列

事务

1.事物简介:

  • 数据库事务(Transaction)是一种机制,一个操作序列,包含了一组数据库操作命令
  • 这一组数据库命令要么同时成功,要么同时失败
  • 事务是一个不可分割的工作逻辑单元

2.事务操作


    -- 开启事务
    START TRANSACTION; 或者 BEGIN;
    
    -- 提交事务
        COMMIT;
    -- 回滚事务
        ROLLBACK;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dingzitu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值