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

news2024/11/14 21:30:52

目录

修改表

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 emp
        MODIFY job VARCHAR (60) NOT NULL DEFAULT '' 
AFTER TABLE emp
        DROP sex
#表明改为employee
RENAME TABLE emp TO employee
#修改表的字符集utf8
AFTER TABLE employer CHARSET utf8

#列名name修改为user-name
AFTER TABLE employee
       CHANGE `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 employee
        VALUES (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 = 3000
      WHERE user_name = '小妖怪'
SELECT * FROM employee;
#3.创建老妖怪
INSERT INTO employee
        VALUES (100,'老妖怪','1990-11-11','1990-11-11 11:11:11','捶背的',4000,
        '大王叫我来捶背')
SELECT * FROM employee;
#4.将老妖怪的薪水在原有基础上增加1000
UPDATE employee
      SET salary = salary + 1000
      WHERE 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 student
         WHERE `name` = "赵云"
#查询英语成绩大于90分的同学
SELECT * FROM student
         WHERE english > 90
#查询总分大于200分的所有同学      
SELECT * FROM student
      WHERE (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 student
        WHERE english <=90 AND english >=80  
SELECT * FROM student
       WHERE english BETWEEN 80 AND 90 
       
#查询数学成绩为89,90,91的同学
SELECT * FROM student
       WHERE math = 89 OR math = 90 OR math = 91
SELECT * FROM student
       WHERE 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 student
       WHERE `name` LIKE '李%'
       ORDER BY math

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

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

相关文章

西门子S7-1500与1200之间PUT/GET无线通讯

本方案搭建的是固定主机1500PLC与两台移动1200PLC之间以太网通讯。 无线通讯网络搭建 首先在固定端主机设备上的西门子S7-1500PLC上搭载一块达泰DTD418MB作为主站。然后在两台移动的西门子S7-1200PLC上分别搭载一块达泰DTD418MB作为从站。由此&#xff0c;便通过DTD418MB搭建…

Crypto | Affine password 第二届“奇安信”杯网络安全技能竞赛

题目描述&#xff1a; 明文经过仿射函数y3x9加密之后变为JYYHWVPIDCOZ&#xff0c;请对其进行解密&#xff0c;flag的格式为flag{明文的大写形式}。 密文&#xff1a; JYYHWVPIDCOZ解题思路&#xff1a; 1、使用在线网站直接破解或手工计算破解&#xff0c;获得flag。&#xf…

轻量封装WebGPU渲染系统示例<26>- PingpongBlur模糊效果(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/PingpongBlur.ts 当前示例运行效果: WGSL片段shader group(0) binding(0) var<uniform> param: vec4f; group(0) binding(1) var sampler0: sampler; group(…

RESTful API概述以及如何使用它构建 web 应用程序

REST&#xff08;Representational State Transfer&#xff09;是一种设计风格和架构原则&#xff0c;它是一种为 Web 应用程序提供简化和标准化的 API 的方式。RESTful API&#xff08;RESTful Web Services&#xff09;是符合 REST 架构风格的网络应用程序 API&#xff0c;它…

DevicData-D-XXXXXXXX勒索病毒来袭:如何面对DevicData-D-XXXXXXXX勒索病毒的威胁

尊敬的读者&#xff1a; .DevicData-D-XXXXXXXX勒索病毒&#xff0c;犹如数字世界的黑暗幽灵&#xff0c;通过其复杂的加密算法&#xff0c;将用户数据变为数字谜团&#xff0c;要求赎金以唤回失去的信息。在这个数字时代&#xff0c;了解其特质和对抗方法至关重要。面对复杂的…

Milvus Cloud——LangChain 分块简介

LangChain 分块简介 LangChain 是一个 LLM 协调框架,内置了一些用于分块以及加载文档的工具。本次分块教程主要围绕设置分块参数,并最小限度地使用 LLM。简而言之,通过编写一个函数并设置其参数来加载文档并对文档进行分块,该函数打印结果为分块后的文本块。在下述实验中,…

【Linux】Linux动态库和静态库

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

桌面图标设置-将“我的电脑”、“控制面板”添加到桌面

桌面图标设置 1、将“我的电脑”、“控制面板”添加到桌面 桌面鼠标右键-个性化-主题-桌面图标设置-勾选”计算机“、”回收站“、”控制面板“-应用-确定-桌面鼠标右键-排序-名称

倾斜摄影三维模型的根节点合并的点云抽稀关键技术分析

倾斜摄影三维模型的根节点合并的点云抽稀关键技术分析 倾斜摄影三维模型的根节点合并是指将多个倾斜摄影拍摄得到的点云数据进行抽稀操作&#xff0c;以减少点云数据量和提高数据处理效率。在处理大规模的倾斜摄影点云数据时&#xff0c;点云抽稀是一个关键的技术&#xff0c;它…

Linux服务器从零开始训练 RT-DETR 改进项目 (Ultralytics) 教程,改进RTDETR算法(包括使用训练、验证、推理教程)

手把手从零开始训练 RT-DETR 改进项目 (Ultralytics版本) 教程,改进RTDETR算法 本文以Linux服务器为例:从零开始使用Linux训练 RT-DETR 算法项目 《芒果剑指 RT-DETR 目标检测算法 改进》 适用于芒果专栏改进RT-DETR算法 文章目录 百度 RT-DETR 算法介绍改进网络代码汇总第…

用excel 整理工作流程,以周为时间节点,自动统计进度

无论是处理自己还是团队的工作&#xff0c;我们都经常会遇到复杂的&#xff0c;凌乱的&#xff0c;需要多个环节才能完成的工作。 梳理工作流程 因为环节内容&#xff0c;每个环节处理不当都可能会导致我们整个工作目标实现受到影响&#xff0c;所以通过工作流程图&#xff0c…

力扣第516题 最长回文子序列 c++ 动态规划 附Java代码 注释版

题目 516. 最长回文子序列 中等 相关标签 字符串 动态规划 给你一个字符串 s &#xff0c;找出其中最长的回文子序列&#xff0c;并返回该序列的长度。 子序列定义为&#xff1a;不改变剩余字符顺序的情况下&#xff0c;删除某些字符或者不删除任何字符形成的一个序列。…

合作共赢 共克时艰

​ 采访人&#xff1a;最近财政部11月6日通报隐性债务问责典型案例&#xff0c;这中间涉及湖北多所重要地市&#xff0c;形成新增隐性债务200多亿&#xff0c;您怎么看这件事&#xff1f; 辜渝傧&#xff1a;是的&#xff0c;无论是数字还是涉及的范围都可以明显感觉到“防范…

计算机毕业设计项目选题推荐(免费领源码)Springboot+MySQL智能购房推荐系统09040

摘 要 近年来随着我国经济的高速发展&#xff0c;房地产业也随之蓬勃发展&#xff0c;尤其是最近国家新出台的房改政策。鼓励居民购房&#xff0c;这对房产公司无疑是一个极好的发展势头。尤为重要的是&#xff0c;近几年随着信息技术和电子商务的快速发展&#xff0c;许多企业…

CSS 滚动捕获 scroll-snap-type

scroll-snap-type 语法实例 捕获轴 y 捕获严格程度 mandatory捕获轴 y 捕获严格程度 proximity同理看下捕获轴 x 一些注意事项兼容性 scroll-snap-type 用来指定一个滚动容器(scroll container)是否是滚动捕获容器(scroll snap container)、捕获的严格程度以及在什么方向上执行…

【数据结构与算法】JavaScript实现单向链表

文章目录 一、单向链表简介二、封装单向链表类2.0.创建单向链表类2.1.append(element)2.2.toString()2.3.insert(position,element)2.4.get(position)2.5.indexOf(element)2.6.update(position,element)2.7.removeAt(position)2.8.其他方法2.9.完整实现 一、单向链表简介 链表…

租用服务器带宽类型应用

服务器带宽类型多样&#xff0c;以满足不同行业的需求。本文将介绍香港常见的服务器带宽类型及其应用领域。 1. 共享带宽 共享带宽是指多个用户共同使用同一台服务器的带宽资源。这种带宽类型适用于小型企业或个人网站&#xff0c;因为其成本较低。由于多个用户共享带宽资源&…

【C语言】解开指针|编址内存解引用指针产量|

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; &#x1f60a;啊森要自信的主页 ✨ 作者寄语 &#x1f308;&#xff1a; 小菜鸟的力量不在于它的体型&#xff0c;而在于它内心的勇气和无限的潜能&#xff0c;只要你有决心&#xff0c;就没有什么事情是不可…

Linux操作系统使用及C高级编程-D3Linux shell命令(权限、输入输出)

Shell 是一种应用程序&#xff0c;用以完成用户与内核之间的交互 一个功能强大的编程语言&#xff08;C语言&#xff09; 一个解释执行的脚本语言&#xff0c;不需要编译&#xff0c;写完直接执行 目前Linux 乌班图的Shell默认是bash 查看当前提供的Shell&#xff1a;cat /…

Vue.js中的路由(router)和Vue Router的作用?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…