【MySQL】基础学习全解(二)基础语句

本文精炼总结了廖雪峰老师的MySQL教程,涵盖SQL语言的DDL、DML、DQL三大核心部分,包括数据库定义、数据操作及查询语言的详细解析。深入探讨了数据库模型、主流数据库类型以及MySQL的安装与使用技巧,特别强调了SQL语句的正确运用,如聚合、分页、多表查询等高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为博主学习 廖雪峰老师mysql教程 的 笔记,如有出错欢迎指出!

目录

 

1、介绍

2、SQL

2.1  DDL:Data Definition Language

(1)对数据库

(2)对表

(3)对表字段

(4)对表字段的约束(primary key,foreign key,unique,check,default,not null)

2.2  DML:Data Manipulation Language

(1)增(INSERT)

(2)删(DELETE)

(3)改(UPDATE)

2.3  DQL:Data Query Language

(1)基本查询:select * from students

(2)子查询

(3)条件查询:优先级:NOT、AND、OR

(4)模糊查询

(5)投影查询:使用SELECT 列1, 列2, 列3则可以仅返回指定列,这种操作称为投影

(6)排序查询

(7)分页查询

(8)聚合查询

(9)多表查询

(10)连接查询

3、实用SQL语句


1、介绍

数据库模型

  • 层次模型
  • 网状模型
  • 关系模型

主流关系数据库

  • 商用数据库,例如:Oracle,SQL Server,DB2等;
  • 开源数据库,例如:MySQL,PostgreSQL等;
  • 桌面数据库,以微软Access为代表,适合桌面应用程序使用;
  • 嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。

一些概念

  • 记录(Record):表的每一行,记录是一个逻辑意义上的数据。
  • 字段(Column):表的每一列,同一个表的每一行记录都拥有相同的若干字段。
  • 通常情况下,字段应该避免允许为NULL。不允许为NULL可以简化查询条件,加快查询速度,也利于应用程序读取数据后无需判断是否为NULL。
  • 注:
    • 安装完MySQL后,除了MySQL Server(真正的MySQL服务器),还附赠一个MySQL Client
    •  MySQL Client的可执行程序是mysql,MySQL Server的可执行程序是mysqld
    • 甲方---乙方产品经理---乙方
  • MySQL Client:命令行客户端,可以通过MySQL Client登录MySQL并输入SQL语句执行
    • 连接MySQL Server:
      • sudo service mysql start
      • mysql -u root -p
    • 远程连接MySQL Server:mysql -h 10.0.1.99 -u root -p (10.0.1.99:MySQL Server的IP地址)
    • 输入SQL语句:在MySQL Client中输入的SQL语句通过TCP连接发送到MySQL Server。默认端口号是3306,即如果发送到本机MySQL Server,地址就是127.0.0.1:3306。

2、SQL

2.1  DDL:Data Definition Language

允许用户定义数据,也就是创建表、删除表、修改表结构这些操作。通常,DDL由数据库管理员执行。

(1)对数据库

(2)对表

为了验证你的表是按你期望的方式创建,使用一个 DESCRIBE 语句或者SHOW语句:

mysql> DESCRIBE pet;
SHOW COLUMNS FROM pets;

(3)对表字段

(4)对表字段的约束(primary key,foreign key,unique,check,default,not null)

有关外键:

    在连接两个表的时候并不需要外键约束。对于除InnoDB表以外的表,可以使用REFERENCES tbl_name(col_name)语句定义将它的列设置为外键,但是该语句并没有实际的作用,只是作为备注来提醒你现在正在定义的列指向另外一个表的列。在执行该语句的时候需要注意以下几点:

  • MySQL 并不会执行任何操作检查列col_name是否存在于表tbl_name中(它甚至不会检查tbl_name这个表是否真正存在)。
  • MySQL 不执行表tbl_name中的操作,例如对你正定义的行的进行更改行为,致使 ON DELETE 或 ON UPDATE 语句在该行上不会生效(意思是如果你在REFERENCES子句中写入 ON DELETE 或 ON UPDATE 子句,将被忽略)。
  • 该句法可以创建一个列;但不创建任何索引或关键字。

2.2  DML:Data Manipulation Language

为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。

(1)增(INSERT)

(2)删(DELETE)

(3)改(UPDATE)

2.3  DQL:Data Query Language

where后的条件表达式里不允许使用聚合函数,而having可以。

where---group by---select---having(先分组)---order by

允许用户查询数据,这也是通常最频繁的数据库日常操作。

(1)基本查询:select * from students

 

(2)子查询

(3)条件查询:优先级:NOT、AND、OR

   ps: 使用UNION将表里面的两个关键字一起使用进行搜索 

SELECT field1_index, field2_index
    FROM test_table WHERE field1_index = '1'
    UNION
SELECT field1_index, field2_index
    FROM test_table WHERE field2_index = '1';

   UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。

(4)模糊查询

正则表达式匹配:由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXPNOT REGEXP操作符(或RLIKENOT RLIKE,它们是同义词)。

(5)投影查询:使用SELECT 列1, 列2, 列3则可以仅返回指定列,这种操作称为投影

(6)排序查询

(7)分页查询

(8)聚合查询

  • 普通聚合

        

  • 分组聚合

        

 

查看每种动物的数量:

mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;

查看每种性别的动物数量:

mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;

按种类和性别组合分类的动物数量:

mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;

你也可以不必检索整个表。例如, 当只对狗和猫进行查询时,应为:

mysql> SELECT species, sex, COUNT(*) FROM pet
    -> WHERE species = 'dog' OR species = 'cat'
    -> GROUP BY species, sex;

 

(9)多表查询

(10)连接查询

  • 内连接(INNER JOIN):只返回同时存在于两张表的行数据,A∩B

  • 外连接(OUTER JOIN)

         

 

3、实用SQL语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值