首页 > 数据库 >MySQL学习笔记(第三天)

MySQL学习笔记(第三天)

时间:2024-12-08 20:31:39浏览次数:9  
标签:product cid price 第三天 笔记 查询 MySQL WHERE SELECT

第三天

常见的字段约束

NOT NULL: 不能为空

UNIQUE: 字段值必须唯一的(不能重复)

DEFAULT: 默认值(当插入数据的时候没有给初始值,使用默认值) -> 成绩字段 -> 0

                -> 保密

PRIMARY KEY: 主键(UNIQUE+NOT NULL)

FOREIGN KEY: 外键 ()

测试NOT NULL

MariaDB [test2]> CREATE TABLE test_not_null (

    -> name VARCHAR(10) NOT NULL,

    -> age TINYINT NOT NULL

    -> );

指定一个默认值 DEFAULT

MariaDB [test2]> CREATE TABLE test_default (

    -> name VARCHAR(10),

    -> status ENUM('active', 'inactive') DEFAULT 'active'

    -> );

唯一约束 UNIQUE => 字段值 必须是唯一(不能重复)

MariaDB [test2]> CREATE TABLE test_unique (

    -> name VARCHAR(10) UNIQUE,

    -> age TINYINT

    -> );

主键:UNIQUE+NOT NULL

不允许为空,也不请允许重复,一般情况每个表都会有一个主键

● 唯一标识一条记录

● 数据完整性和准确性

● 建立表间关系需要用到主键

● 提高查询效率

● 主键索引

MariaDB [test2]> CREATE TABLE test_primarykey (

    -> id INT AUTO_INCREMENT PRIMARY KEY,

    -> name VARCHAR(10),

    -> age TINYINT

    -> );

 INSERT INTO test_primarykey (id) VALUES (10);主键id插入值为10,然后后面插入的id就会从10自增

外键

优点:

    * 节省空间

    * 数据一致性

    * 数据完整性

缺点:

    * 外键可能会引入一定的性能开销(内存/cpu)

    * 复杂性(进行数据插入和删除时,由于约束可能更麻烦)

    * 兼容性问题,不同数据支持不同

企业中:

    DBA不推荐使用外键,使用代码来解决一致性和完整性的问题

students (student_id, name)

scores (score_id, student_id, subject, score)

 

ON DELETE CASCADE => 主表数据删除,子表也删除
ON DELETE SET NULL => 当主表中的一行被删除时,所有引用该行的子表中的外键列将被设置为NULL
ON DELETE SET DEFAULT => 当主表中的一行被删除时,所有引用该行的子表中的外键列将被设置为默认值(如果列有默认值的话)
ON DELETE NO ACTION=>这是一个限制,意味着如果尝试删除主表中的一行,同时子表中还有引用该行的记录,那么操作将被拒绝,并且会抛出一个错误。

ON UPDATE=>主表更新,子表也更新

CREATE TABLE Orders (

OrderID int,

CustomerID int,

PRIMARY KEY (OrderID),

FOREIGN KEY (CustomerID) REFERENCES

Customers( CustomerID )

ON DELETE CASCADE

);

数据查询

SELECT [DISTINCT] 列1,列2....,* FROM 表名 WHERE 条件 ORDER BY [排序]列名 GROUP BY [分组]列名

SELECT * FROM product; 查询表中所有数据

SELECT pname,price FROM product; 查询指定列

SELECT pname AS 商品名, price AS 商品价格, price*0.9 AS 九折价 FROM product; 添加别名映射

SELECT DISTINCT cid FROM product; 查询不重复的cid

SELECT * FROM product WHERE pname!="香奈儿"; 查询非香奈儿的商品信息

SELECT * FROM product WHERE price >=900; 查询价格大于等于900的商品信息

逻辑查询 AND, OR, NOT

SELECT * FROM product WHERE cid='c001' OR cid='c003';

SELECT * FROM product WHERE cid='c001' AND price >4000;

SELECT * FROM product WHERE NOT (cid='c001');

CustomerID int,

PRIMARY KEY (OrderID),

FOREIGN KEY (CustomerID) REFERENCES

Customers( CustomerID )

ON DELETE CASCADE

);

数据查询

SELECT [DISTINCT] 列1,列2....,* FROM 表名 WHERE 条件 ORDER BY [排序]列名 GROUP BY [分组]列名

SELECT * FROM product; 查询表中所有数据

SELECT pname,price FROM product; 查询指定列

SELECT pname AS 商品名, price AS 商品价格, price*0.9 AS 九折价 FROM product; 添加别名映射

SELECT DISTINCT cid FROM product; 查询不重复的cid

SELECT * FROM product WHERE pname!="香奈儿"; 查询非香奈儿的商品信息

SELECT * FROM product WHERE price >=900; 查询价格大于等于900的商品信息

逻辑查询 AND, OR, NOT

SELECT * FROM product WHERE cid='c001' OR cid='c003';

SELECT * FROM product WHERE cid='c001' AND price >4000;

SELECT * FROM product WHERE NOT (cid='c001');

标签:product,cid,price,第三天,笔记,查询,MySQL,WHERE,SELECT
From: https://blog.csdn.net/2303_78135757/article/details/144262723

相关文章

  • MySQL学习笔记(第四天)
    第四天范围查询BETWEENANDIN(1,2,3,4)SELECT*FROMproductWHEREpriceBETWEEN300AND800;查询价格在300~800之间的商品SELECT*FROMproductWHEREcidIN('c001','c003');查询商品cid=c001或c003LIMIT限制返回数量LIMITN=>返回前N条数据LIMITN,M=>......
  • Linux命令学习笔记(第六天)
    第六天cat>zijinjie.txt<<EOF当前页面编辑文件(不用vim)按EOF退出head默认读取文件的前10行-nnl/etc/passwd|head-5读取passwd文件的前五行并显示行号tail默认读取文件的尾10行-ntail-n+2从第2行开始显示到末尾tail-fsc.txt动态监控文件末尾的变化,一旦有新......
  • Java毕设项目案例实战II基于Java+Spring Boot+MySQL的玩具租赁系统设计与实现(开发文档
    目录一、前言二、技术介绍三、系统实现四、核心代码五、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。一、前言在环保意识日益增强的今天,玩具租赁作为一种绿色、经济的消费方式,逐渐受到家长和孩......
  • mysql客户端(查看命令,部分命令介绍,从sql文件执行sql语句的两种方法)
    目录mysql客户端介绍查看命令tee/noteepromptsourcesystemhelpcontents从.sql文件执行sql语句介绍方式source从外部直接导入mysql客户端介绍可以执行sql语句,也可以执行一些命令其中,sql语句以;  \g  \G为分隔符前两个显示的结果都是以表格形式\G......
  • java + mysql + 38_在线网络教学平台的设计与实现 +(完整源码 + 说明文档 + 演示视频)
     ......
  • LLM学习笔记(17)序列标注任务(训练模型阶段)
    训练模型这段代码的主要功能是构建一个用于序列标注任务的模型,尤其是针对命名实体识别(NER,NamedEntityRecognition)的任务。通过利用BERT模型和Transformers库提供的工具,快速构建一个可用于标注每个token的实体标签的分类器。构建模型具体功能AutoModelFo......
  • MySQL 系统变量和 SET 命令
    MySQL的系统变量配置了MySQLServer如何运行,SET语句用于修改系统变量。MySQLSET命令有多种选项,用于指定如何以及何时修改系统变量。重要的是要了解这些修改如何反映在当前会话(连接)、以后的会话以及数据库服务器重启后。 用户可以使用SET修改的变量由其权限级别决定。系......
  • 11下笔记
    AI图像⼯具3.1AI图⽚插画⽣成Midjourney:由同名研究实验室开发的⼈⼯智能程序,具有⽂⽣图,图⽣图等功能。Midjourney(需要魔法)StableDiffusion:根据⽂本的描述产⽣详细图像,也可以应⽤于其他任务,如内补绘制、外补绘制,以及在提示词指导下产⽣图⽣图的翻译。StableDi......
  • 12月3日笔记
    Al⾳频⼯具4.1Al语⾳转⽂字/⽂字转语⾳通义听悟:Al会议转录和总结⼯具,⽀持⼀键⾼亮要点、智能提炼总结、⾼效记录、整理和共享⾳视频内容。多种字幕,⾃动区分发⾔⼈,总结关键词,议程、摘要、代待事项和问题。通义听悟讯⻜智作:AI⽂字转语⾳、语⾳合成、智能配⾳、Al......
  • MCCMO论文阅读笔记
    1.前置知识:1.1概述约束多目标优化问题(ConstrainedMulti-ObjectiveOptimizationProblems,CMOPs)是一种优化问题类型,广泛存在于实际工程、科学和经济领域。CMOPs不仅需要同时优化多个目标函数,还需要满足一定的约束条件。这些约束条件使得问题更加复杂,因为可能存在一个可行......