初始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.hqwc.cn/news/170238.html

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

相关文章

【大模型】大语言模型语料下载

文章目录 概述Hugging Faceobs操作git-lfs例子RedPajama-Data-1TSlimPajama-627B/git clone续传 数据格式参考资料 概述 大模型训练中语料是非常重要的&#xff0c;目前公网上有各种各样的语料可以供下载&#xff0c;但是不可能每个用户、每次训练任务都通过公网去拉取语料&am…

STL简介+浅浅了解string——“C++”

各位CSDN的uu们好呀&#xff0c;终于到小雅兰的STL的学习了&#xff0c;下面&#xff0c;让我们进入CSTL的世界吧&#xff01;&#xff01;&#xff01; 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的缺陷 7.为什么要学习string类 …

人物百科怎么创建?教你如何创建人物百度百科注意以下方式技巧!

百科就像互联网上的名片&#xff0c;不仅代表身份&#xff0c;而且拥有极高的可信度。因此&#xff0c;许多名人都希望利用百科提高自己的知名度。任何人都可以编辑人物百科词条&#xff0c;但为了成功上传&#xff0c;需要一些技巧。以下是小媒同学给大家带来的人物百科快速创…

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布&#xff1a;加速跨平台开发的新里程碑 引言 在最新的消息中&#xff0c;JetBrains团队宣布Kotlin Multiplatform&#xff08;KMP&#xff09;将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生…

关于pip basicsr,facexlib,realesrgan et al.安装报错。

首先basicsr是一个超分的库&#xff0c;在ubuntu系统上pip时会报错。 上图这种错误&#xff0c;或者其他的错误&#xff0c;有的方法让去github上安装&#xff0c;那种方法到setup.py的时候也会报错。 问题在于首先 -i的源要换成阿里的源&#xff0c;然后要安装他要求的库&…

【Git】gui图形化界面的使用、ssh协议以及idea集成Git

目录 gui图形化界面的使用 介绍 特点 gui图形的使用 ssh协议 介绍 步骤及概念 ssh协议的使用 配置公钥 idea集成Git idea配置git IDEA安装gitee IDEA中登入Git ​编辑 项目分享 克隆分享的项目 ​编辑 ​编辑 idea上传远程 gui图形化界面的使用 介绍 GUI&#xff08…

消息队列之初识Rabbit及安装

文章目录 一、MQ的相关概念1.什么是MQ&#xff1f;2.为什么要用MQ2.1流量消峰2.2应用解耦2.3异步处理 3.MQ 的分类3.1.ActiveMQ3.2.Kafka3.3.RocketMQ3.4.RabbitMQ 4.MQ 的选择4.1.Kafka4.2.RocketMQ4.3.RabbitMQ 二、RabbitMQ的相关概念1.四大核心概念2.RabbitMQ 核心部分3.Ra…

Flutter 实战:构建跨平台应用

文章目录 一、简介二、开发环境搭建三、实战案例&#xff1a;开发一个简单的天气应用1. 项目创建2. 界面设计3. 数据获取4. 实现数据获取和处理5. 界面展示6. 添加动态效果和交互7. 添加网络错误处理8. 添加刷新功能9. 添加定位功能10. 添加通知功能11. 添加数据持久化功能 《F…

基于springboot实现沁园健身房预约管理系统【项目源码】计算机毕业设计

基于springboot实现沁园健身房预约管理系统演示 B/S架构 B/S结构是目前使用最多的结构模式&#xff0c;它可以使得系统的开发更加的简单&#xff0c;好操作&#xff0c;而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库&#xff0c;和一些很常用的浏览器就可以…

JS+ES6新增字符串方法大汇总,爆肝,共四十七种方法(求个赞,哈哈)

让我为大家介绍一下字符串的操作方法吧&#xff0c;你知道与不知道的大部分都在这&#xff01; 分类可能有点不太对&#xff0c;还请大家见谅&#xff01; 增 1.concat() 拼接字符串 可以连接两个或多个字符串 let str "hello"let str1 " str"console…

node插件MongoDB(三)—— 库mongoose 的使用和数据类型(一)

前言 提示&#xff1a;使用mongoose 的前提是你安装了node和 MongoDB。 mongoose 官网文档&#xff1a;http://mongoosejs.net/docs/index.html 文章目录 前言一、安装二、基本使用1. 打开bin目录的mongod.exe文件2. 基本使用的代码&#xff08;连接mongodb 服务&#xff09;3.…

【STM32】

STM32 1 CMSIS1.1 概述1.2 CMSIS 应用程序文件描述 2 库2.1 简介2.2 标准外设库&#xff08;standrd Peripheral Libraries&#xff09;2.3 HAL 库2.3.1 目录结构2.3.2 HAL库API函数和变量的命名规则2.3.3 HAL库对寄存器位操作的相关宏定义2.3.4 HAL库回调函数2.3.5 HAL使用注意…