初始MySQL(二)(表的增删查改)

目录

修改表

CRUD(增删改查)

insert语句(表中增加数据)

update语句(修改表中的数据)

delete删除语句

select语句

修改表

添加列

ALTER TABLE tablename

                ADD  (column datatype [DEFAULT expr] [, column datatype] ...);

修改列 

ALTER TABLE tablename

                MODIFY  (column datatype [DEFAULT expr] [, column datatype] ...);

删除列

ALTER TABLE tablename 

               DROP(column) 

查看表的结构 : desc 表名;

修改表名: Rename table 表名 to 新表名

修改表字符集: alter table 表名 character set 字符集;

#修改表的操作练习
#员工表emp上增加一个image列,varchar类型(要求在resume后面)
ALTER TABLE emp ADD image VARCHAR(32) NOT NULL DEFAULT ''AFTER RESUME
DESC emp  #显示表的结构,查看表的所有列
#修改job列,使其长度为60
AFTER TABLE empMODIFY job VARCHAR (60) NOT NULL DEFAULT '' 
AFTER TABLE empDROP sex
#表明改为employee
RENAME TABLE emp TO employee
#修改表的字符集utf8
AFTER TABLE employer CHARSET utf8#列名name修改为user-name
AFTER TABLE employeeCHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ''

CRUD(增删改查)

insert语句(表中增加数据)

使用INSERT语句向表中插入数据

快速入门案例:

1.创建一张商品表goods(id int, goods_name varchar(10),price double);

2.添加两条记录

mysql代码

#练习insert语句
#创建一张商品表goods(id int ,goods_name varchar(10),price double);
#添加2条记录
CREATE TABLE `goods`(
id INT, goods_name VARCHAR(10),price DOUBLE);
#添加数据
INSERT INTO `goods` (id ,goods_name,price)VALUES (10,'华为手机','2000');INSERT INTO `goods` (id ,goods_name,price)VALUES (20,'苹果手机','3000');
SELECT * FROM `goods`

insert使用的注意细节

#练习insert语句
#创建一张商品表goods(id int ,goods_name varchar(10),price double);
#添加2条记录
CREATE TABLE `goods`(
id INT, goods_name VARCHAR(10),price DOUBLE NOT NULL);
#添加数据
INSERT INTO `goods` (id ,goods_name,price)VALUES (10,'华为手机','2000');INSERT INTO `goods` (id ,goods_name,price)VALUES (20,'苹果手机','3000');
#注意细节
#1.插入的数据应与字段的数据类型相同。比如把'abc'添加到int 类型会错误
INSERT INTO `goods`(id,goods_name,price) VALUES('abc','小米手机',2000);
#2.数据的长度应在列规定范围内,例如,不能将一个长度为80的字符串加入到长度为40的列中
INSERT INTO `goods`(id,goods_name,price)VALUES(40,'vovo手机vovo手机vovo手机vovo手机',3000);
#3.在values中列出的数据位置必须与被加入的列的排列位置相对应
INSERT INTO `goods` (id,goods_name,price)VALUES('vovo手机',40,2000);
#4.字符和日期型的数据应包含在单引号中
INSERT INTO `goods`(id,goods_name,price)VALUES(40,'vovo手机',3000);
#5.列可以插入空值(前提是该字段允许为空),insert into table value(null),在创建表的时候
#没有写NOT NULL 
#写了就不行了,下面就不行呀
-- CREATE TABLE `goods`(
-- id INT, goods_name VARCHAR(10),price DOUBLE NOT NULL);
INSERT INTO `goods`(id,goods_name,price)VALUES(40,'vovo手机',NULL);
#6.insert into tab_name (列名..) values(),(),(),()...
INSERT INTO `goods`(id,goods_name,price)VALUES(50,'三星手机',2300)(60,'海尔手机',1800);
#7.如果是给表中的所有字段添加数据,可以不写前面的字段名称
INSERT INTO `goods`VALUES(40,'大哥大',50000);
#8.默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
#如果某个列没有指定not null ,那么当添加数据时,没有给定值,则会默认给null
#如果我们希望指定某个列的默认值,在创建表时指令
-- CREATE TABLE `goods`(
-- id INT, goods_name VARCHAR(10),price DOUBLE NOT NULL DEFAULT 100);
INSERT INTO `goods`(id,goods_name)VALUES(80,'诺基亚')

update语句(修改表中的数据)

#演示update语句
#创建一个employee表
CREATE TABLE employee(
id INT , 
user_name VARCHAR(20),
birthday DATE ,
entry_date DATETIME,
job VARCHAR(20),
salary INT,
`resume` TEXT);
INSERT INTO employeeVALUES (200,'小妖怪','2010-11-11','2010-11-11 11:11:11','巡山的',3000,'大王叫我来巡山')
SELECT * FROM employee;
#要求: 在上面创建的employee表中修改表中的记录
#1.将所有的员工薪水修改为5000,如果没有带where条件,会修改所有的记录,因此要小心
UPDATE employee SET salary=5000
SELECT * FROM employee;
#2.将姓名为小妖怪的员工薪水修改为3000元
UPDATE employee SET salary = 3000WHERE user_name = '小妖怪'
SELECT * FROM employee;
#3.创建老妖怪
INSERT INTO employeeVALUES (100,'老妖怪','1990-11-11','1990-11-11 11:11:11','捶背的',4000,'大王叫我来捶背')
SELECT * FROM employee;
#4.将老妖怪的薪水在原有基础上增加1000
UPDATE employeeSET salary = salary + 1000WHERE user_name= "老妖怪"
SELECT * FROM employee;

delete删除语句

不能删除某一列,可以使用update 设为null或者'')

delete from tb1_name

           [WHERE where_definition]

删除全部数据后,表仍然是存在的,想要删除表,我们应该怎么办呢?

DROP TABLE employee;

select语句

基本语法

SELECT  [DISTINCT] *|{column1 , column2,column3} FROM  tablename

注意事项: Select指定查询哪些列的数据   column指定列名  *号代表查询所有列  

                 FROM指定查询哪张表        DISTINCT可选,指显示结果时,是否去掉重复数据

使用表达式对查询的列进行运算

SELECT *|{column1 | expression,column2| expression} FROM tablename;

在select语句中可使用as语句

SELECT columnname as 别名 from 表名;

where字句中

#select 语句
#查询姓名为赵云的学生成绩
SELECT * FROM studentWHERE `name` = "赵云"
#查询英语成绩大于90分的同学
SELECT * FROM studentWHERE english > 90
#查询总分大于200分的所有同学      
SELECT * FROM studentWHERE (chinese + english + math) > 200;
#查询math大于60 并且(and)id大于4的学生的成绩
SELECT * FROM student WHERE (math>60) AND (id > 4)
#查询英语成绩大于语文成绩的同学
SELECT * FROM student WHERE english>chinese
#查询总分大于200分,并且数学成绩小于语文成绩的姓赵的学生
#赵% 表示名字以赵开头的就可以
SELECT * FROM student WHERE ((chinese + english + math) > 200) AND (math<chinese) AND `name` LIKE '赵%'
#查询英语分数在80-90之间的同学
SELECT * FROM studentWHERE english <=90 AND english >=80  
SELECT * FROM studentWHERE english BETWEEN 80 AND 90 #查询数学成绩为89,90,91的同学
SELECT * FROM studentWHERE math = 89 OR math = 90 OR math = 91
SELECT * FROM studentWHERE math IN (89,90,91);      

使用order by 子句排序查询结果

SELECT column1,column2,column3...  FROM table; 

                                                               order by column asc | desc,....

1.order by 指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名

2.Asc升序(默认),Desc 降序

3.ORDER BY 子句应位于SELECT语句的结尾

#select语句
#order by使用
#对数学成绩排序后输出[升序]
SELECT * FROM student ORDER BY math;
#对总分按从高到低的顺序输出[降序]
SELECT `name`,(math+chinese+english) AS '总分' FROM student ORDER BY (math+chinese+english) DESC;
#对姓李的成绩进行排序输出(升序)
SELECT * FROM studentWHERE `name` LIKE '李%'ORDER BY math

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

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

相关文章

JavaScript红宝书第8章:对象、类与面向对象编程(1/4)

原生JavaScript之对象、类与面向对象编程 理解对象属性类型数据属性访问器属性 定义多个属性读取属性特征合并对象对象标识及相等判定对象新语法属性值简写动态给属性命名 简写方法对象解构 小结 理解对象 定义&#xff1a;对象为一组属性的无序集合&#xff0c;严格来说&…

ROS机器人毕业论文数量井喷-数据日期23年11月13日

背景 ROS机器人论文数量在近3年井喷发展&#xff0c;仅硕士论文知网数据库可查阅就已经达到2264篇&#xff0c;实际相关从业者远远远大于这个数值。 按日期排序&#xff0c;每页20篇&#xff0c;23年还未结束&#xff0c;检索本身也不一定完备&#xff0c;就超过200。 相关从业…

语音识别芯片在产品应用上的难点列举

语音识别技术&#xff0c;作为人工智能领域中的一颗璀璨明珠&#xff0c;已经广泛应用于用户交互、智能家居、语音助手等多个领域。它为我们的生活带来了诸多便利&#xff0c;使得我们可以更加高效地与电子设备进行互动。然而&#xff0c;语音识别技术的实现&#xff0c;依赖于…

单例模式的双重检查锁定是什么

单例模式的双重检查锁定是什么&#xff1f; 单例模式是一种常见的设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点。双重检查锁定&#xff08;Double-Checked Locking&#xff09;是一种在单例模式中使用的性能优化技术。 在传统的单例模式…

Android超简单的显示网络图片方法

Android显示网络图片的方法如下&#xff1a; 1、首先&#xff0c;需要在AndroidManifest.xml文件中添加网络权限&#xff1a; <uses-permission android:name"android.permission.INTERNET" /> 2、在布局文件中添加ImageView控件&#xff1a; <ImageVie…

强烈建议linux中nvidia 545.29驱动不要升

我之前一直用终端连接我的工作站&#xff08;系统是arch rolling状态&#xff09;&#xff0c;结果昨天回家难得想试试545驱动下的效果。结果一用chrome播放视频就卡&#xff0c;甚至后面进Login界面也会卡住鼠标。 折腾了一晚上用 $sudo downgrade nvidia nvidia-prime nvid…

比尔.盖茨最新思考和宣言, 未来5年AI将彻底改变生活!

人工智能即将彻底改变你使用计算机的方式 并颠覆软件行业。 比尔盖茨 今天我仍然像保罗艾伦和我创办微软时一样热爱软件。但是&#xff0c;尽管从那时起的几十年里它已经有了很大的进步&#xff0c;但在很多方面&#xff0c;软件仍然相当愚蠢。 要在计算机上执行任何任务&am…

js控制手机蓝牙

要使用JavaScript控制手机蓝牙&#xff0c;您需要使用Web Bluetooth API。这是一种新的Web API&#xff0c;可以让Web应用程序访问和控制蓝牙设备。 以下是一些步骤&#xff0c;以便您开始使用Web Bluetooth API&#xff1a; 检查浏览器支持&#xff1a;首先&#xff0c;您需要…

docker基于debian11基础环境安装libreoffice

首先下载指定版本的libreoffice&#xff0c;注意debian11下需要选择Linux (64-bit) (deb) 官方下载地址&#xff1a;https://www.libreoffice.org/download/download-libreoffice/?typedeb-x86_64&version7.6.2&langzh-CN 将文件上传到服务器并解压缩备用&#xff0c…

PostgreSQL 入门教程

PostgreSQL 入门教程 1. 历史背景2. 概念3. 特点4. 用法4.1 数据库连接4.2 数据库创建4.3 表创建4.4 数据插入4.5 数据查询4.6 数据更新4.7 数据删除 5. 安装步骤6. 简单示例7. 扩展7.1 数据类型7.2 查询优化7.3 并发控制7.4 数据备份和恢复7.5 扩展性和高可用性7.6 安全性加固…

pyTorch Hub 系列#2:VGG 和 ResNet

一、说明 在上一篇教程中,我们了解了 Torch Hub 背后的本质及其概念。然后,我们使用 Torch Hub 的复杂性发布了我们的模型,并通过相同的方式访问它。但是,当我们的工作要求我们利用 Torch Hub 上提供的众多全能模型之一时,会发生什么? 在本教程中,我们将学习如何利用称为…

「Verilog学习笔记」4bit超前进位加法器电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 timescale 1ns/1nsmodule lca_4(input [3:0] A_in ,input [3:0] B_in ,input C_1 ,output wire CO ,output wire [3:0] …

SpringBoot3+Vue3+Mysql+Element Plus完成数据库存储blob类型图片,前端渲染后端传来的base64类型图片

前言 如果你的前后端分离项目采用SpringBoot3Vue3Element Plus&#xff0c;且在没有OSS&#xff08;对象存储&#xff09;的情况下&#xff0c;使用mysql读写图片&#xff08;可能不限于图片&#xff0c;待测试&#xff09;。 耗时三天&#xff0c;在踩了无数雷后&#xff0c…

Android BottomSheetDialog中列表滑动冲突问题

前言 使用BottomSheetDialog弹窗时&#xff0c;里面嵌套了一个纵向的RecyclerView&#xff0c;弹出后加载列表数据&#xff0c;发现弹窗不能滑动&#xff0c;产生了滑动冲突。 一、使用步骤 1.布局示例 代码如下&#xff08;示例&#xff09;&#xff1a; <androidx.appco…

Lightroom Classic 2023 v12.4

Lightroom Classic 2023是一款图像处理软件&#xff0c;是数字摄影后期制作的重要工具之一。与其他图像处理软件相比&#xff0c;Lightroom Classic具有以下特点&#xff1a; 高效的图像管理&#xff1a;Lightroom Classic提供了强大的图像管理功能&#xff0c;可以轻松导入、…

网易数帆:云原生向左,低代码向右

网易数帆&#xff0c;前身是网易杭州研究院于2016年孵化的网易云&#xff0c;历经7载探索与沉淀&#xff0c;如今已进化成为覆盖云原生、低代码、大数据和人工智能四大技术赛道的数智化服务提供商&#xff0c;服务于金融、央国企、能源、制造等领域300余家头部企业。 近日&…

怎么录制游戏视频?超简单步骤,一看就会!

随着游戏产业的不断发展&#xff0c;录制游戏视频成为许多玩家记录游戏过程、分享游戏体验的重要方式。但是很多人不知道怎么录制游戏视频&#xff0c;其实一款好的录屏软件可以使游戏视频的录制变得更加简单、高效。本文将介绍两种录制游戏视频的方法&#xff0c;这两种方法各…

VUE组件存活,异步组件

当使用 来在多个组件间作切换时&#xff0c;被切换掉的组件会被卸载。我们可以通过组件强制被切换掉的组件仍然保持“存活”的状态。 组件切换 <button click“changeComponentHandle”>切换 在大型项目中&#xff0c;我们可能需要拆分应用为更小的块&#xff0c;并…

【LeetCode:307. 区域和检索 - 数组可修改 | 树状数组 or 线段树】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…