MySQL根本一

[复制链接]
发表于 2026-2-1 04:06:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一.前言

随着文件中存储的内容越来越多,在文件中修改和查找某些数据已经变得非常困难了,以是人们发明白一种专门的软件来管理存储的数据,这些数据依照肯定格式生存,通过这个软件可以方便的对数据举行增编削查利用,从而极大的提升了数据管理服从,人们就把这个管理数据的软件叫做数据库管理体系(英文:Database Management System,简称:DBMS)
MySQL是一种开源的关系型数据库,以其高性能、稳固性和可靠性而著名,由于其体积小、速率快,尤其是开放源码这一特点,并被广泛应用于各种规模的应用步调和网站
本日我就不给各人先容怎样安装了,而是说一些理论知识和语法,各人可以先收藏,毕竟收藏了就是学完了。
二.SQL简介

对数据库举行查询和修改利用的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL是专为数据库而创建的利用下令集,是一种功能齐备的数据库语言。
SQL 是一种数据库查询和步调计划语言,用于存取数据以及查询、更新和管理关系数据库体系。与其他步调计划语言(如 C语言、Java 等)差别的是,SQL 由很少的关键字构成,每个 SQL 语句通过一个或多个关键字构成。
在使用它时,只须要发出“做什么”的下令,“怎么做”是不消使用者思量的。SQL功能强盛、简单易学、使用方便,已经成为了数据库利用的根本,而且现在险些全部的数据库(Oracle、DB2、Sybase、SQL Server )均支持sql。
SQL的规范:

  •         在数据库体系中,SQL语句不区分巨细写(发起用大写) 。但字符串常量区分巨细写。发起下令大写,表名库名小写;
  •         SQL语句可单行或多行誊写,以“;”末端。关键词不能跨多行或简写。
  •         用空格和缩进以及折行来进步语句的可读性。子句通常位于独立行,便于编辑,进步可读性。                                                                                                                              SELECT column1, column2, column3
            FROM table1
            WHERE column1 = 'value1'
              AND column2 = 'value2'
              AND column3 = 'value3'
  •         解释                                                                                                                                  -- 单行解释
            /*
            多行解释
            */
     三.数据库利用 

 我们安装好而且设置好暗码之后,实行mysql -u root -p,然后输入暗码就能毗连到你的数据库了

-- 1.检察数据库
    show databases;  -- 检察全部数据库
    SHOW DATABASES LIKE '%test%';-- 检察名字中包罗 test 的数据库
    show create database db_name; -- 检察数据库的创建方式
    
-- 2.创建数据库(在磁盘上创建一个对应的文件夹)
    create database [if not exists] db_name [character set xxx] 
-- 3.修改数据库
    alter database db_name [character set xxx] 
-- 4.删除数据库
    drop database [if exists] db_name;
    
-- 5.使用数据库
    use db_name; -- 切换数据库  留意:进入到某个数据库后没办法再退回之前状态,但可以通过use举行切换
    select database(); --  检察当前使用的数据库
    
-- 数据库备份
   mysqldump -u username -p password database_name > backup.sql

数据库的利用的话没什么好说的,我们在开发一样平常都是毗连创建一个数据库,然后毗连上,在内里创建表来举行利用,这里给各人演示一下就好

我们就把大概的都展示了,接下来我会用这个数据库来举行表的利用
使用 DROP DATABASE 下令时要非常审慎,在实行该下令后,MySQL 不会给出任何提示确认信息。
DROP DATABASE 删除数据库后,数据库中存储的全部数据表和数据也将一同被删除,而且不能规复。因此最幸亏删除数据库之前先将数据库举行备份。
四.数据表利用

数据表是数据库的告急构成部门,每一个数据库都是由多少个数据表构成的。比如,在电脑中一个文件夹有多少excel文件。这里的文件夹就相当于数据库,excel文件就相当于数据表。
MySQL 的数据范例有大概可以分为 5 种,分别是整数范例、浮点数范例、日期和时间范例、字符串范例、二进制范例等。
4.1 数据库数据范例


这里先给出截图给各人 
 

在 MySQL 中,布尔范例被称为 BOOLEAN 或 BOOL 范例。BOOLEAN 范例用于存储布尔值,即 TRUE(真)或 FALSE(假)。
MySQL 中的布尔范例可以有以下几种表现方式:

  •         整数范例:布尔范例可以表现为整数范例,此中 0 表现 FALSE,非零整数表现 TRUE。常见的表现 TRUE 的整数值为 1。
  •         字符串范例:布尔范例也可以表现为字符串范例,此中 '0' 表现 FALSE,而 '1' 表现 TRUE。这种表现方式更贴近人类可读的布尔值。
须要留意的是,只管 MySQL 支持布尔范例的差别表现方式,但它并没有专门的存储布尔值的数据范例。在实际使用中,你可以选择使用 TINYINT(1) 或 VARCHAR(1) 等其他数据范例来存储布尔值,但约定使用 0 和 1 或 '0' 和 '1' 来表现布尔值。
 


4.2 创建数据表

-- 语法
CREATE TABLE tab_name(
            field1 type [束缚条件],
            field2 type,
            ...
            fieldn type    -- 肯定不要加逗号,否则报错!
        )[character set utf8];
show tables; -- 检察全部的创建的表信息
 这里我现在用pycham内里的数据库管理工具和各人演示实例
  1. CREATE TABLE student(
  2.             name varchar(20),
  3.             gender bit,
  4.             age int,
  5.             birth date,
  6.             gpa double(8,2) unsigned-- 平均绩点
  7.           )character set=utf8;
  8. show tables;
复制代码

如许就乐成创建了 ,然后可以看到天生了一个student表
4.3 束缚

束缚是一种限定,它通过限定表中的数据,来确保数据的完备性和唯一性。使用束缚来限定表中的数据许多情况下是很有须要的。在 MySQL 中,束缚是指对表中数据的一种束缚,可以或许资助数据库管理员更好地管理数据库,而且可以或许确保数据库中数据的准确性和有效性。比方,在数据表中存放年事的值时,假如存入 200、300 这些无效的值就毫偶然义了。因此,使用束缚来限定表中的数据范围是很有须要的。
添加记载:
INSERT <表名> 字段1,...字段n VALUES (值1,...值n) ;
4.3.1 非空束缚

非空束缚用来束缚表中的字段不能为空。比如,在用户信息表中,假如不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空束缚。
创建表时可以使用NOT NULL关键字设置非空束缚
  1. CREATE TABLE user(
  2.     name VARCHAR(22),
  3.     age int NOT NULL
  4. );
  5. insert user (name,age) values ('往日情怀酿作酒',19);
复制代码
 4.3.2 唯一束缚

唯一束缚(Unique Key)是指全部记载中字段的值不能重复出现。比方,为name字段加上唯一性束缚后,每条记载的name值都是唯一的,不能出现重复的情况。
创建表时可以使用UNIQUE关键字设置非空束缚
比方,在用户信息表中,要制止表中的用户名重名,就可以把用户名列设置为唯一束缚。
  1. CREATE TABLE user(
  2.     name VARCHAR(22) UNIQUE,
  3.     age int
  4. );
  5. insert user (name) values ("yuan");
复制代码
4.3.3 默认值束缚

默认值束缚用来束缚当数据表中某个字段不输入值时,主动为其添加一个已经设置好的值。
创建表时可以使用DEFAULT关键字设置默认值束缚
  1. CREATE TABLE user(
  2.     name VARCHAR(22),
  3.     gender bit default 1
  4. );
  5. insert user (name) values ("yuan");
复制代码
4.3.4 主键束缚

主键束缚是使用最频仍的束缚。在计划数据表时,一样平常情况下,都会要求表中设置一个主键。主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。
  1. -- 没有唯一能标识该表中的每条记录的字段值
  2. CREATE TABLE user(
  3.   id INT PRIMARY KEY AUTO_INCREMENT,
  4.   name VARCHAR(20)
  5. );
  6. insert user (name) values ("yuan");
  7. select * from user;
复制代码

  •         一张表中最多只能有一个主键
  •         主键范例不肯定必须是整型
  •         表中假如没有设置主键,默认设置NOT NULL和UNIQUE的字段为主键;别的,表中假如有多个NOT NULL和UNIQUE的字段,则按次序将第一个设置NOT NULL和UNIQUE的字段设为主键。以是主键肯定黑白空且唯一,但非空且唯一的字段不肯定是主键。  
4.4 检察表 

desc employee;    -- 检察表结构,等同于show columns from tab_name  
show tables            -- 检察当前数据库中的全部的表
show create table tab_name      -- 检察当前数据库表建表语句  
4.5 删除表 

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...] 
4.6 修改表结构

修改表名和编码
修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
修该表所用的字符集
ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名> 
修改表字段

  •         增长列(字段)
    1. ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件][first|after 字段名];
    复制代码
  •         增长多个字段
    1. alter table users2
    2.      add addr varchar(20),
    3.      add age  int first,
    4.      add birth varchar(20) after name;
    复制代码
  •         删除某字段
    1. ALTER TABLE <表名> DROP <字段名>;
    复制代码
  •         修改某字段范例
    1. ALTER TABLE <表名> MODIFY <字段名> <数据类型> [完整性约束条件][first|after 字段名];
    复制代码
  •         修改某字段名
    1. ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>  [完整性约束条件][first|after 字段名];
    复制代码
五.表记载利用

5.1 添加记载

INSERT 语句有两种语法情势,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。
5.1.1 INSERT…VALUES语句

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
INSERT [INTO] <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1…,值n),
                                                      (值1…,值n),
                                                      ...
                                                      (值1…,值n);
-- 用单条 INSERT 语句处置惩罚多个插入要比使用多条 INSERT 语句更快。 
INSERT [INTO] <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1…,值n),
                                                      (值1…,值n),
                                                      ...
                                                      (值1…,值n);
-- 用单条 INSERT 语句处置惩罚多个插入要比使用多条 INSERT 语句更快。 
 案例
  1. CREATE TABLE student
  2. (
  3.     id     int primary key auto_increment,
  4.     name   varchar(20) not null,
  5.     gender bit default 1,
  6.     age    int,
  7.     birth  date
  8. )character set=utf8;
  9. -- 单行插入
  10. INSERT
  11. student (name,gender,age,birth) VALUES
  12.               ("yuan",1,18,"2002-11-12"),
  13. -- 多行批量插入
  14. INSERT student (name,gender,age,birth) VALUES
  15. ("张三",1,22,"2000-12-12"),
  16. ("李四",1,32,"1990-12-12"),
  17. ("王五",0,42,"1980-06-06");
复制代码
5.1.2 INSERT…SET语句

INSERT INTO table_name
SET column1 = value1, column2 = value2, ...;
 此语句用于直接给表中的某些列指定对应的列值,即要插入的数据的列名在 SET 子句中指定。对于未指定的列,列值会指定为该列的默认值。这个语句平常用的不多,相识即可
5.2 查询语句

这个在数据库利用中是最为告急的部门,无论是反面的删除,修改值,都是基于查询来的,这里我会具体和各人讲
标准语法:
-- 查询语法:
   SELECT *|field1,filed2 ...   FROM tab_name
                  WHERE 条件
                  GROUP BY field
                  HAVING 筛选
                  ORDER BY field
                  LIMIT 限定条数

-- Mysql在实行sql语句时的实行次序:
                -- from  where  select  group by  having order by
准备数据:
  1. CREATE TABLE emp(
  2.     id       INT PRIMARY KEY AUTO_INCREMENT,
  3.     name     VARCHAR(20),
  4.     gender   ENUM("male","female","other"),
  5.     age      TINYINT,
  6.     dep      VARCHAR(20),
  7.     province VARCHAR(20),
  8.     salary    DOUBLE(7,2),
  9.     birthday DATE
  10. ) CHARACTER SET=utf8;
  11. INSERT INTO emp (name, gender, age, dep, province, salary, birthday)
  12. VALUES ("George", "male", 24, "教学部", "河北省", 6000, '1999-02-18'),
  13.        ("danae", "male", 32, "运营部", "北京", 12000, '1992-07-12'),
  14.        ("Sera", "male", 38, "运营部", "河北省", 7000, '1986-11-05'),
  15.        ("Echo", "male", 19, "运营部", "河北省", 9000, '2002-03-28'),
  16.        ("Abel", "female", 24, "销售部", "北京", 9000, '1999-09-10'),
  17.        ("John", "male", 28, "教学部", "山东省", 8000, '1993-06-15'),
  18.        ("Alice", "female", 32, "运营部", "北京", 10000, '1990-12-25'),
  19.        ("Bob", "male", 24, "教学部", "河北省", 9000, '1999-08-03'),
  20.        ("Cather", "female", 28, "销售部", "山东省", 6000, '1993-04-20'),
  21.        ("David", "male", 34, "销售部", "山东省", 12000, '1987-09-01'),
  22.        ("Emily", "female", 22, "教学部", "北京", 7000, '1999-01-08'),
  23.        ("Frank", "male", 24, "教学部", "河北省", 9000, '1999-07-17'),
  24.        ("Grace", "female", 32, "运营部", "北京", 8000, '1990-05-30'),
  25.        ("Henry", "male", 38, "运营部", "河北省", 9000, '1984-03-12'),
  26.        ("Ivy", "female", 19, "运营部", "河北省", 9000, '2002-08-22'),
  27.        ("Jack", "male", 24, "销售部", "北京", 8000, '1999-10-05'),
  28.        ("Kelly", "female", 28, "教学部", "山东省", 10000, '1993-02-28'),
  29.        ("Leo", "male", 32, "运营部", "北京", 6000, '1990-11-11'),
  30.        ("Megan", "female", 24, "教学部", "河北省", 12000, '1999-06-03'),
  31.        ("Nick", "male", 34, "销售部", "山东省", 7000, '1987-07-08'),
  32.        ("Olivia", "female", 22, "销售部", "山东省", 9000, '1999-03-18'),
  33.        ("Peter", "male", 24, "教学部", "北京", 8000, '1999-12-01'),
  34.        ("Queen", "female", 32, "运营部", "河北省", 9000, '1990-09-15'),
  35.        ("Ryan", "male", 38, "运营部", "北京", 8000, '1984-11-20'),
  36.        ("Sandy", "female", 19, "运营部", "河北省", 10000, '2002-05-07'),
  37.        ("Tom", "male", 24, "销售部", "北京", 7000, '1999-04-27'),
  38.        ("Uma", "female", 28, "教学部", "山东省", 9000, '1993-08-14'),
  39.        ("Victor", "male", 32, "运营部", "北京", 6000, '1990-02-05'),
  40.        ("Wendy", "female", 24, "教学部", "河北省", 12000, '1999-07-23'),
  41.        ("Xander", "male", 34, "销售部", "山东省", 7000, '1987-12-16'),
  42.        ("Yvonne", "female", 22, "销售部", "山东省", 9000, '1999-01-30'),
  43.        ("Zack", "male", 24, "教学部", "北京", 8000, '1999-10-13');
复制代码

我们把这些数据都插入进去,接下来就来实行我们的利用了
5.2.1 查询字段(select)
  1. SELECT  * FROM emp;
  2. SELECT  name,dep,salary FROM emp;
复制代码
如许我们就能看到查询的内容了,通常我们查询还须要举行筛选,接下来我们都讲筛选语句
5.2.2 where语句

-- where字句中可以使用:
      --比力运算符:
      > < >= <= <> != = 
      between 10 and 100 值在10到100之间
      in(10,20,30) 值是10或20或30
      like 'yuan%'
      /*
      pattern可以是%大概_,
      假如是%则表现恣意多字符,此比方唐僧,唐国强
      假如是_则表现一个字符唐_,只有唐僧符合。两个_则表现两个字符:__
              */
      -- 正则 
                  SELECT * FROM emp WHERE emp_name REGEXP '^yu';
                  SELECT * FROM emp WHERE name REGEXP 'n$';  
     -- 逻辑运算符
                  在多个条件直接可以使用逻辑运算符 and or not                                       
练习
  1. -- 查询年纪大于24的员工
  2. SELECT * FROM emp WHERE age > 24;
  3. -- 查询年龄在20到30之间的员工
  4. SELECT * FROM emp WHERE age between 20 and 30;
  5. -- 查询工资等于7000,8000和9000的所有员工
  6. SELECT * FROM emp WHERE salary in (7000,8000,9000);
  7. -- 查询名字以A开头的员工
  8. SELECT * FROM emp WHERE name like "A%";
  9. -- 查询名字包含A的员工
  10. SELECT * FROM emp WHERE name like "%A%";
  11. SELECT * FROM emp WHERE REGEXP_LIKE(name, '.*A.*',"c");
  12. -- 查询教学部的男老师信息
  13. SELECT * FROM emp WHERE dep="教学部" AND gender="male";
  14. -- 查询名字以A开头的员工并且工资大于等于10000的员工的姓名
  15. SELECT * FROM emp WHERE name like "A%" and salary>=10000;
  16. -- 查询年龄小于25或工资低于10000的员工
  17. SELECT * FROM emp WHERE age<25 or  salary < 8000;
  18. -- 日期相关的
  19. SELECT *
  20. FROM emp
  21. WHERE birthday > '1990-01-01';
  22. SELECT *
  23. FROM emp
  24. WHERE MONTH(birthday) = 12;
复制代码
这里下令太多我就不一个个演示了
5.2.3 order:排序

按指定的枚举行,排序的列即但是表中的列名,也可以是select语句后指定的别名
-- 语法:
select *|field1,field2... from tab_name order by field [Asc|Desc]
 -- Asc 升序、Desc 降序,此中asc为默认值 ORDER BY 子句应位于SELECT语句的末端。
练习:
  1. -- 按年龄从高到低进行排序
  2. SELECT * FROM emp ORDER BY age DESC ;
  3. -- 按工资从低到高进行排序
  4. SELECT * FROM emp ORDER BY salary;
  5. -- 先按工资排序,工资相同的按年龄排序
  6. SELECT * FROM emp ORDER BY salary,age;
复制代码
5.2.4 group by:分组查询

GROUP BY 语句根据某个列对效果集举行分组。分组一样平常共同着聚合函数完成查询。
常用聚合(统计)函数

  •         max():最大值。
  •         min():最小值。
  •         avg():匀称值。
  •         sum():总和。
  •         count():个数。
在MySQL的SQL实行逻辑中,where条件必须放在group by前面!也就是先通过where条件将效果查询出来,再交给group by去分组,完事之后举行统计,统计之后的查询用having。
  1. -- 练习案例
  2. -- 查询男女员工各有多少人
  3. select count(*) as count from  emp group by gender;
  4. -- 查询教学部的员工最高工资:
  5. select max(salary) as '教学部最高工资' from emp where dep='教学部';
  6. -- 查询平均薪水超过8000的部门
  7. SELECT dep FROM emp GROUP BY dep HAVING AVG(salary) > 8000;
复制代码
5.2.5 limit:记载条数限定

SELECT * from emp limit 10;
SELECT * from emp limit 2,5;        --  跳过前两条表现接下来的五条记载
SELECT * from emp limit 2,2;
5.2.6 distinct:查询去重

-- 获取员工表中不重复的年事值和薪水值,并按照相应的字段举行升序排序。
SELECT distinct age from emp order by age;
SELECT distinct salary from emp order by salary;
 5.3 更新记载

UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ]
5.4 删除记载

DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
 六. 案例练习

标题要求:

  •         创建一个名为shop的数据库
  •         在shop数据库创建一个名为 orders 的表,包罗以下字段:

    •                 id (整数型,主键,自增)
    •                 customer_id (整数型,顾客ID)
    •                 order_date (日期型,订单日期)
    •                 order_time (时间型,订单时间)
    •                 total_amount (浮点型,订单总额)
    •                 status (字符串型,订单状态)
    •                 shipping_address (字符串型,配送所在)
    •                 payment_method (字符串型,付出方式)
    •                 payment_status (字符串型,付出状态)
           
  •         创建表:
    1. CREATE TABLE orders
    2. (
    3.     id               INT PRIMARY KEY AUTO_INCREMENT,
    4.     customer_id      INT,
    5.     order_date       DATE,
    6.     order_time       TIME,
    7.     total_amount     DECIMAL(10, 2),
    8.     status           VARCHAR(50),
    9.     shipping_address VARCHAR(100),
    10.     payment_method   VARCHAR(50),
    11.     payment_status   VARCHAR(50)
    12. )
    复制代码

  •         插入订单记载
    1. ​
    2. INSERT INTO orders (order_id, customer_id, order_date, order_time, total_amount, status, shipping_address, payment_method, payment_status)
    3. VALUES
    4. (1, 1, '2024-05-07', '10:00:00', 100.50, '已完成', '北京市朝阳区', '微信支付', '已支付'),
    5. (2, 2, '2024-05-07', '11:30:00', 56.20, '已发货', '上海市浦东新区', '支付宝', '已支付'),
    6. (3, 3, '2024-05-07', '13:45:00', 220.00, '待发货', '广州市天河区', '微信支付', '已支付'),
    7. (4, 4, '2024-05-07', '14:20:00', 75.80, '已取消', '深圳市福田区', '支付宝', '已支付'),
    8. (5, 5, '2024-05-07', '16:10:00', 180.90, '已发货', '成都市武侯区', '支付宝', '已支付'),
    9. (6, 1, '2024-05-07', '09:30:00', 50.00, '待付款', '北京市朝阳区', NULL, '未支付'),
    10. (7, 2, '2024-05-08', '14:00:00', 120.00, '待付款', '上海市静安区', NULL, '未支付'),
    11. (8, 3, '2024-05-08', '16:30:00', 89.50, '待付款', '广州市越秀区', NULL, '未支付'),
    12. (9, 4, '2024-05-08', '18:45:00', 75.20, '待付款', '深圳市南山区', NULL, '未支付'),
    13. (10, 5, '2024-05-08', '20:20:00', 200.00, '待付款', '成都市锦江区', NULL, '未支付'),
    14. (11, 1, '2024-05-09', '11:15:00', 150.80, '已发货', '北京市海淀区', '微信支付', '已支付'),
    15. (12, 2, '2024-05-09', '13:40:00', 95.60, '已发货', '上海市徐汇区', '支付宝', '已支付'),
    16. (13, 3, '2024-05-09', '16:00:00', 180.00, '已完成', '广州市白云区', '微信支付', '已支付'),
    17. (14, 4, '2024-05-09', '18:20:00', 60.50, '已完成', '深圳市龙岗区', '支付宝', '已支付'),
    18. (15, 5, '2024-05-09', '20:45:00', 210.30, '已发货', '成都市高新区', '微信支付', '已支付'),
    19. (16, 1, '2024-05-10', '09:10:00', 80.00, '已完成', '北京市朝阳区', '支付宝', '已支付'),
    20. (17, 2, '2024-05-10', '12:30:00', 120.50, '待发货', '上海市浦东新区', '微信支付', '已支付'),
    21. (18, 3, '2024-05-10', '15:15:00', 45.20, '已取消', '广州市天河区', '支付宝', '已支付'),
    22. (19, 4, '2024-05-10', '17:40:00', 160.90, '待发货', '深圳市福田区', '微信支付', '已支付'),
    23. (20, 5, '2024-05-10', '17:41:00', 78.90, '待发货', '深圳市福田区', '微信支付', '已支付'),
    24. (21, 1, '2024-05-11', '10:30:00', 75.60, '待付款', '北京市朝阳区', NULL, '未支付'),
    25. (22, 2, '2024-05-11', '12:45:00', 90.20, '已发货', '上海市静安区', '支付宝', '已支付'),
    26. (23, 3, '2024-05-11', '15:00:00', 200.00, '已发货', '广州市越秀区', '微信支付', '已支付'),
    27. (24, 4, '2024-05-11', '17:20:00', 65.80, '已取消', '深圳市南山区', '支付宝', '已支付'),
    28. (25, 5, '2024-05-11', '19:40:00', 180.90, '待发货', '成都市锦江区', '微信支付', '已支付'),
    29. (26, 1, '2024-05-12', '10:15:00', 150.80, '已完成', '北京市海淀区', '支付宝', '已支付'),
    30. (27, 2, '2024-05-12', '12:30:00', 95.60, '已完成', '上海市徐汇区', '微信支付', '已支付'),
    31. (28, 3, '2024-05-12', '15:10:00', 180.00, '已发货', '广州市白云区', '支付宝', '已支付'),
    32. (29, 4, '2024-05-12', '17:35:00', 60.50, '已发货', '深圳市龙岗区', '微信支付', '已支付'),
    33. (30, 5, '2024-05-12', '20:00:00', 210.30, '待付款', '成都市高新区', NULL, '未支付');
    34. ​
    复制代码

  •         完成相应查询                                                                                                                            
 -- 查询订单表中总订单金额。
-- 查询订单表中订单总额最高的订单记载。
-- 查询订单ID为5的订单详情。
-- 查询客户ID为3的全部订单记载。
-- 查询订单状态为"已发货"的订单数目。
-- 查询总金额凌驾100元的订单数目。
-- 查询订单表中各个订单状态的订单数目。
-- 查询订单表中每个客户的订单数目。
-- 查询订单表中每个客户的总订单金额。
-- 查询订单表中订单总额凌驾匀称订单金额的订单记载。
-- 查询订单表中迩来一周内的订单记载。
-- 查询订单表中每个客户的迩来一笔订单记载。
-- 查询订单日期为2024-05-07的全部订单记载。
-- 查询付出方式为"微信付出"的订单数目。
-- 查询订单总金额最高的订单信息。
-- 查询收货所在中包罗"北京市"关键词的订单记载。
-- 查询每个客户的订单总数,并按订单总数降序分列。
-- 查询每个客户的订单总金额,并按订单总金额升序分列。
-- 查询订单日期为2024-05-10且总金额大于50的订单数目。
-- 查询订单状态不为"已取消"的订单数目。
-- 查询每个客户的订单匀称金额,并按匀称金额降序分列。
-- 查询付出方式为空值或为默认值的订单数目。
-- 删除客户ID为3且订单状态为"已取消"的全部订单记载
-- 更新订单状态为"待付款"且订单日期为2024-05-10的全部订单的收货所在为"上海市浦东区" 
 这个案例各人可以做做,我比力懒就没做,不会的可以问问gpt
七.总结

本日说的是mysql的根本,下一章会说一点进阶的关系,pymysql等等,固然,mysql的知识远不止这些,各人借助gpt好好学习,肯定能手拿把掐的
八.增补

有什么题目私我,记得点赞关注加收藏哦,有求必应,有什么需求已经想要学习资料都能看我名字
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表