MySql语言操作数据库---MySql引擎,数据表,约束,基本查询,条件查询

news2024/9/29 15:37:03

数据库引擎

作用:引擎决定了数据是如何存在于数据库中的.不同引擎存储结构和特征是不同的.
常见引擎: InnoDB,MyISAM,Memory

Mysql引擎操作:
查看支持的引擎: show engines;
给表设置引擎:
create table student2(
    name varchar(20),
    age int
)engine = 'InnoDB';
-- todo 展示所有的引擎
show engines ;

清空表数据

方式1: delete from 表名;
方式2: truncate [table] 表名;

-- todo ----清空表数据的两种方式-----------
# 例如,使用命令完成:
# (1) 分别创建student、teacher表,字段包含:整型自动增长、主键的id编号、字符型的name姓名、整型的age年龄:
create table student(
    id int primary key auto_increment,
    name varchar(20),
    age int
);
create table teacher(
    id int primary key auto_increment,
    name varchar(20),
    age int
);

# (2) 分别给两个表添加两条数据:
insert into student values (1,'张三',18);
insert into teacher values (1,'李四',19);

# (3)分别使用两种删除方式清空数据;
delete from teacher;
truncate student;
# (4)再插入一条新数据并查询,对比数据并观察id编号效果。
insert into student values (null,'张三',18);
insert into teacher values (null,'李四',19);

DataGrip创建sql文件

==方式1: 创建由datagrip自己维护路径的sql文件.==

==方式2: 关联外部指定的目录或者文件==

mysql的约束

主键约束: 非空且唯一 (mysql推荐一个表必须有一个主键) 
非空约束: 数据为空插入失败
唯一约束: 数据重复插入失败
自动增长约束: 不能独立使用.必须依附于键约束的后边.
外键约束: 来关联另一张表.从而对另一张表有约束作用.

主键和自动增长约束

-- tode 主键约束---------------------------------
# 例如,使用命令完成:
# (1)在MySQL中新建一个数据库班级db_game,并设定编码为utf8;
create database db_game character set utf8;
use db_game;

# (2) 在库中创建游戏表game1,有4个字段:id编号、first_name曾用名、last_name姓名、skill技能;
# (3) 在创建表时,给id编号添加主键约束:
create table game1(
    id int primary key ,
    first_name varchar(20),
    last_name varchar(20),
    skill varchar(20)
);

# (4) 当建表成功后,使用desc命令查看表结构;
desc game1;

# (5) 注意:当id这一列在Key字段对应的值为PRI,则表示主键约束已经添加成功。


-- 验证主键约束特性:非空,唯一
insert into game1 values (null,'张','三','唱');         --  Column 'id' cannot be null
insert into game1 values (1,'李','四','rap');
insert into game1 values (1,'王','五','篮球');         -- Duplicate entry '1' for key 'PRIMARY'

-- todo 不常用[了解]: 修改表添加主键
create table game2(
    id int,
    first_name varchar(20),
    last_name varchar(20),
    skill varchar(20)
);

alter table game2 add primary key (id);

desc db_game.game2;


-- todo [了解] 如何删除主键
# 例如,使用命令完成:
# (1)先在库中创建游戏表game3,有4个字段:id编号[主键约束]、first_name曾用名、last_name姓名、skill技能;
create table game3(
    id int primary key,
    first_name varchar(20),
    last_name varchar(20),
    skill varchar(20)
);
# (2)删除库中的游戏表game3的主键约束;
alter table game3 drop primary key;
# (3)当删除成功后,使用desc命令查看表结构,观察结果;
desc db_game.game3;
# (4)思考:若要给id编号设定可以为空值,该怎么做呢?
alter table game3 modify id int;

-- todo  自动增长约束-- 1.列的类型int,2.只能在主键或者外键后边使用自动增长
# 例如,使用命令完成:
# (1)在库中创建游戏表game4,有4个字段:id编号、first_name曾姓名、last_name姓名、skill技能;
# (2)在创建表时,给id编号添加主键约束,整型且自动增长;
create table game4(
    id int primary key auto_increment,
    first_name varchar(20),
    last_name varchar(20),
    skill varchar(20)
);

# (3)给游戏表game4加2条数据,且都不添加id值,查看数据结果;
insert into game4 (first_name, last_name, skill) values ('李','名','蛤蟆功');
insert into game4 (first_name, last_name, skill) values ('张','武','九阴白骨爪');
select * from game4;
# (4)思考1:当添加数据时,给主键id传递null值,效果如何?
insert into game4 (id,first_name, last_name, skill) values (null,'老','六','六脉神剑');
select * from game4;
# (5)思考2:当添加一条设定id = 10的数据后,再不给主键id传值并添加一条新数据,效果如何?
insert into game4 (id,first_name, last_name, skill) values (10,'老','铁','666');   -- 4 / 11
insert into game4 (first_name, last_name, skill) values ('老','八','发发发');
select * from game4;

-- 测试删除主键
alter table game4 drop primary key;     -- 删除失败--有自动增长不允许删除主键.
alter table game4 modify id int;        -- 删除自动增长约束.
desc game4;

非空约束

-- todo 非空约束----------------------
# 例如,使用命令完成:
# (1)在库中创建游戏表game5,有4个字段:id编号、first_name曾姓名、last_name姓名、skill技能;
# (2)在创建表时,给id编号添加主键约束、整型且自动增长;
# (3)给last_name姓名字段设定为非空约束;
create table game5(
    id int primary key auto_increment,
    first_name varchar(20),
    last_name varchar(20) not null ,
    skill varchar(20)
);

# (4)思考1:在操作游戏表game5时,不给last_name姓名字段传递数值,效果如何?
insert into game5 (id,first_name, skill) values (1,'八','发发发');  #  Field 'last_name' doesn't have a default value
# (5)思考2:若给last_name姓名字段传递null值,效果又如何?
insert into game5 (id,first_name, skill) values (1,'八','发发发'); -- Column 'last_name' cannot be null

唯一约束

-- todo  唯一约束------unique-------------
# 例如,使用命令完成:
# (1)在库中创建游戏表game6,有4个字段:id编号、first_name曾姓名、last_name姓名、skill技能;
# (2)在创建表时,给id编号添加主键约束、整型且自动增长;
# (3)给last_name字段设定为唯一约束;
create table game6(
    id int primary key auto_increment,
    first_name varchar(20),
    last_name varchar(20)  unique ,
    skill varchar(20)
);
drop table game6;
# (4)思考:在操作游戏表game6时,先后给last_name姓名字段传递两个一样的值,效果如何?
insert into game6 values (1,'老','八','发发发');
insert into game6 values (2,'小','八','发发发');#Duplicate entry '八' for key 'last_name'

默认值约束

-- todo 默认值约束------default 值-----------
# 例如,使用命令完成:
# (1)在库中创建游戏表game7,有4个字段:id编号、first_name曾姓名、last_name姓名、skill技能;
# (2)在创建表时,给id编号添加主键约束、整型且自动增长;
# (3)给skill字段设定为默认值约束,设定为轻功水上漂~;
create table game7(
    id int primary key auto_increment,
    first_name varchar(20),
    last_name varchar(20) ,
    skill varchar(20) default '轻功水上漂'
);
# (4)思考1:添加一条数据,并给字段skill技能传递值,观察效果;
insert into game7 values (1,'李','名','暴风星云裂');
# (5)思考2:再添加一条数据,不给字段skill技能传递数据值,观察效果。
insert into game7 (id,first_name,last_name) values (2,'高','明');
select * from game7;

DQL查询准备数据

-- todo DQL 查询语句 select
-- 准备数据---
# 例如:
# (1)先来创建一个数据库db_product1,设定编码为utf8;
create database db_product1 character set utf8;
use db_product1;

# (2)在库中创建一个product表,字段有pid商品编号、pname商品名称、price商品价格、category_id商品分类;
create table product(
    pid int ,
    pname varchar(20),
    price int,
    category_id varchar(20)
);
drop table product;
# (3)当成功添加数据内容后,查看数据结果。
insert into product values
(1, '联想', 5000, 'c001'),
(2, '海尔', 3000, 'c001'),
(3, '雷神', 5000, 'c001'),
(4,'杰克琼斯',800, 'c002'),
(5, '真维斯', 200,'c002'),
(6,'花花公子',440,'c002'),
(7,'劲霸',2000,'c002'),
(8,'香奈儿',800,'c003'),
(9,'相宜本草',200,'c003'),
(10,'面霸',5,'c003'),
(11,'好想你枣',56,'c004'),
(12,'香飘飘奶茶',1,'c005'),
(13,'海澜之家',1000,'c002');

基本查询

# 例如,使用命令完成:
# (1)在数据库班级db_product1中,查询商品表的所有数据信息;
select * from product;
# (2)查询商品表的所有名称信息;
select pname from product;
# (3)查询商品名称、价格、分类的所有结果;
select pname,price,category_id from product;
# (4)将所有的商品名称、价格+20进行显示出结果;
select pname,price+20 from product;
# (5)思考:如何去除重复的价格值并显示所有价格信息?
select distinct price from product;                      -- 针对price去重
select distinct price,category_id from product;          -- 针对price+category_id去重

条件查询

-- todo -- 条件查询-------where 条件-----------------
# 例如,使用命令完成:
# (1)在操作商品表时,查询商品表中的所有商品信息;
select * from product;
# (2)查询商品名称为"花花公子"的商品所有信息;
select * from product where pname='花花公子';

# select * from product where pname="花花公子";  -- 不能使用双引号
# select * from product where pname=='花花公子'; -- 不能使用==去对比.
# (3)查询价格为800的商品信息;
select * from product where price=800;
# (4)查询价格不是800的所有商品信息;
select * from product where price !=800;
# (5)查询商品价格大于60元的所有商品信息;
select * from product where price >=60;
# (6)查询商品价格小于等于800元的所有商品信息。
select * from product where price <=800;

逻辑查询

-- todo 逻辑查询--- 多个条件
# 例如,使用命令完成:
# (1)查询商品价格在200到1000之间所有商品信息;
select * from product where price >=200 and price<=1000;
# (2)查询商品价格是200或800的所有商品信息;
select * from product where price =200 and price=800;
# (3)查询价格不是800的所有商品;
select * from product where price !=800 ;
# (4)思考:如果要查询不是200或800的所有商品信息,该怎么做呢?
select * from product where price not in (200,800);
select * from product where not (price =200 or price=800);

范围查询

-- todo 范围查询---------in,between start and end
# 例如,使用命令完成:
# (1)在操作商品表时,查询商品价格是200或800的所有商品信息;
select * from product where price = 800 or price = 200;
select * from product where price in (200,800);
# (2)查询商品价格在200-1000之间所有商品信息;
select * from product where price >=200 and price<=1000;
# (3)思考:有其他方法来完成查询商品价格在200-1000之间所有商品信息吗?
select * from product where price between 200 and 1000;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elasticsearch_exporter启动报错 failed to fetch and decode node stats

最近把服务器迁移到了ubuntu系统&#xff0c;结果发现在centos还正常运行的elasticsearch_exporter&#xff0c;用systemd启动后一直报错 failed to fetch and decode node stats 在网上翻了大半年&#xff0c;竟然都无解&#xff01;这种报错&#xff0c;很明显就是你的ES密码…

使用WPF实现一个快速切换JDK版本的客户端工具

发现网上一键切换JDK环境的方法都是在mac或Linux下的&#xff0c;本人主力电脑是Windows&#xff0c;于是看了一下WPF的文档&#xff0c;自己开发了一个客户端。 直接上代码吧&#xff1a; using JavaSwitch.Properties; using Newtonsoft.Json; using System; using System.…

本地IO与远程IO:揭秘工业自动化中的两大关键角色

在工业自动化领域&#xff0c;IO&#xff08;Input/Output&#xff0c;输入/输出&#xff09;模块扮演着至关重要的角色。它们作为连接控制系统与现场设备的桥梁&#xff0c;负责数据的采集与指令的执行。然而&#xff0c;随着技术的不断进步&#xff0c;IO模块也分为本地IO和远…

【百度文心智能体】想开发爆款智能体?来看看黑神话旅游指南 智能体开发流程大揭秘

&#x1f3ac; 博主&#xff1a;鸽芷咕 ⛺️生活的理想&#xff0c;就是为了理想的生活! 前言 2022年到2023年整年度随着 ChatGPT的爆火&#xff0c;“AI 人工智能 智能助手”概念开始引起各行各业的广泛关注&#xff0c;一些曾经存在于科幻片中的智能助手&#xff0c;到如今也…

探索SpringBoot:学科竞赛管理项目开发

2 相关技术简介 2.1Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xff0c;任…

从零预训练一个tiny-llama#Datawhale组队学习Task2

完整的教程请参考&#xff1a;datawhalechina/tiny-universe: 《大模型白盒子构建指南》&#xff1a;一个全手搓的Tiny-Universe (github.com) 这是Task2的学习任务 目录 Qwen-blog Tokenizer&#xff08;分词器&#xff09; Embedding&#xff08;嵌入&#xff09; RMS …

Wed前端--HTML基础

目录 一、开发工具 二、HTML文档结构 2.1头部head 2.1.1title标记 2.1.2元信息meta标记 具体实例 ​编辑 一、开发工具 最基础的开发工具是&#xff1a;HBuilder 二、HTML文档结构 HTML文档由头部head和主体body组成 头部head标记中可以定义标题样式&#xff0c;头部信…

VR视频怎样进行加密和一机一码的使用?--加密(一)

在视频加密领域&#xff0c;我们常见接触的就是在普通设备上使用的加密视频&#xff0c;如电脑、手机、平板等。Vr的发展和兴起给人们带来最真实的体验感受&#xff0c;不仅在游戏行业应用较广&#xff0c;在一些影院或者元宇宙文旅、展厅等视频场景也备受青睐。 随着VR视频场景…

django的URL配置

1 django如何处理一个请求 首先Django要使用根URLconf模块&#xff0c;通过setting.py配置文件的ROOT_URLCONF来设置。 加载该模块后并查找变量 urlpatterns。这是一个Python的django.conf.urls.url()实例列表。 Django按顺序运行每个URL模式&#xff0c;并在匹配所请求的…

Java项目实战II基于Java+Spring Boot+MySQL的智能物流管理系统(文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着电子商务的蓬勃发展&#xff0c;物流行业迎来了前所未有的挑战与机遇。传统物流管理方式在应对海…

Acwing 快速幂

1.快速幂 作用&#xff1a;可以快速求出 a k m o d p a^k mod p akmodp的值&#xff0c;时间复杂度是 O ( l o g k ) . O( log k). O(logk). 核心思路&#xff1a;反复平方法 ①预处理出&#xff1a; a 2 0 m o d p 、 a 2 1 m o d p 、 a 2 2 m o d p 、 … 、 a 2 log ⁡ 2…

IOT-research虚拟机的中文语言设置

首先在setting&#xff08;设置&#xff09;中找到Region & Langguage 在Input Source中添加Chinese ubuntu 卡在waiting for unattended-upgr to exit的解决 sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock sudo rm /var/lib/dpkg/lock-frontend …

数据库管理-第245期 主流国产数据库RAC架构概览(20240929)

数据库管理245期 2024-09-29 数据库管理-第245期 主流国产数据库RAC架构概览&#xff08;20240929&#xff09;1 DMDSC2 KingBaseES RAC3 PolarDB4 Cantian5 HaloDB DLB/Data Sharding总结 数据库管理-第245期 主流国产数据库RAC架构概览&#xff08;20240929&#xff09; 作者…

HDFS不会自动退出安全模式问题

问题说明 Hadoop集群启动之后&#xff0c;HDFS进入了安全模式&#xff0c;并且不会自动退出&#xff0c;提示信息如下 Safe mode is ON. The reported blocks 1223 needs additional 3 blocks to reach the threshold 0.9990 of total blocks 1228. The minimum number of …

探索基于知识图谱和 ChatGPT 结合制造服务推荐前沿

0.概述 论文地址&#xff1a;https://arxiv.org/abs/2404.06571 本研究探讨了制造系统集成商如何构建知识图谱来识别新的制造合作伙伴&#xff0c;并通过供应链多样化来降低风险。它提出了一种使用制造服务知识图谱&#xff08;MSKG&#xff09;提高 ChatGPT 响应准确性和完整…

[Python学习日记-32] Python 中的函数的返回值与作用域

[Python学习日记-32] Python 中的函数的返回值与作用域 简介 返回值 作用域 简介 在函数的介绍中我们提到了函数的返回值&#xff0c;当时只是做了简单的介绍&#xff0c;下面我们将会进行详细的介绍和演示&#xff0c;同时也会讲一下 Python 中的作用域&#xff0c;作用域分…

fmql之Linux中断

中断 下半部机制 软中断 softirq_action tasklet 工作队列 设备树 fmql&#xff1a; 代码 目的 使能key对应GPIO的中断&#xff0c;中断服务函数为使用定时器延时15ms&#xff1b;定时器处理函数为检测key的状态 设备树修改 fmql不用把system.dtb放到SD卡。修改设备树后要在…

【RocketMQ】初识

基础概念 Message&#xff08;消息&#xff09;&#xff1a;Message 是 RocketMQ 传输的基本单元&#xff0c;包含了具体的业务数据以及一些元数据&#xff08;如消息 ID、主题、标签、发送时间等&#xff09;。消息可以是文本、二进制数据或其他任何序列化后的对象形式。Topi…

MDIO Frame介绍

在MII管理界面上传输的框架应具有表22-10所示的框架结构。位传输顺序从左到右。 IDLE (IDLE condition) MDIO上的空闲条件是高阻抗状态。所有三个状态驱动器都应被禁用,而PHY的上拉电阻器将把MDIO线拉到一个逻辑线上。 PRE (preamble) 32位前导码,都是 1 ST (start of frame…

基于Springmvc的网上书城的设计与实现

文未可获取一份本项目的java源码和数据库参考 选题意义&#xff1a; 网上书城是以当前商务的网络化、快速化实际需求为背景&#xff0c;实现图书购买的方便、快捷、送货上门等服务为前提综合信息服务系统的设计&#xff1b;实现通过Internet互联网对图书购买的相关信息进行发…