MySQL基础知识02

4.CRUD

数据库CRUD语句:增(create)、删(delete)、改(update)、查(Retrieve)

  1. Insert 语句 (添加数据)
  2. Update 语句(更新数据)
  3. Delete 语句(删除数据)
  4. Select 语句 (查找数据)

指对数据库中表记录的操作(DML 操作)

注意:

alter属于DDL,用来修改基本表,是对表的结构进行操作,比如对字段增加,删除,修改类型;

DML 操例,如update是用来修改表中的数据,修改某一行某一列的值

对行是数据操纵DML(update),对列是数据定义DDL(alter)

4.1Insert语句

  • 使用INSERT 语句向表中插入数据
INSERT INTO tablename [(column [,column ...])]
VALUES (value[, value...]);

例子

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

  • INSERT语句注意事项

细节说明:

  1. 插入的数据应该与字段的数据类型相同,比如把 'abc' 添加到 int 类型会错误

  2. 数据的长度应在列的规定范围之内,例如:不能将一个长度为80的字符串加入到长度为40的列中

  3. 在values中列出的数据位置必须与被加入的列的排列位置对应

  4. 字符和日期型数据应包含在单引号中

  5. 列可以插入空值[前提是该字段允许为空],insert into table value(null)

  6. insert into table_name(列名...) values (),(),() 形式添加多条记录

  7. 如果是给表中的所有字段添加数据,可以不写前面的字段名称

  8. 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错

    如果某个列没有指定not null,那么当添加数据时,没有给定值,则会默认给null

    如果我们希望指定某个默认值,可以在创建表时指定

-- - INSERT语句注意事项
-- 细节说明:
-- 1. 插入的数据应该与字段的数据类型相同
INSERT INTO goods VALUES('北京','小米手机',2000)-- 失败,id对应的列类型是int -- 2. 数据的长度应在列的规定范围之内,例如:不能将一个长度为80的字符串加入到长度为40的列中
INSERT INTO goods VALUES(40,'vovo手机vovovovo手机vovovovo手机vovo',2000)-- 失败 -- 3. 在values中列出的数据位置必须与被加入的列的排列位置对应
INSERT INTO goods (goods_name,id,price)-- 成功,即使改变了列属性的位置,只要值是对应的,就ok
VALUES('vivo手机',50,1800) -- 4. 字符和日期型数据应包含在单引号中
INSERT INTO goods VALUES(60,小米手机,2000)-- 失败,字符串应该加上单引号 -- 5. 列可以插入空值[前提是该字段允许为空],insert into table value(null)
INSERT INTO goods (id,goods_name,price)
VALUES(11,'boluo手机',NULL)-- 成功,该字段允许为空 -- 6. insert into table_name(列名...) values (),(),() 形式添加多条记录
INSERT INTO goods VALUES(13,'三星手机',2300),(14,'四星手机',2300)-- ok -- 7. 如果是给表中的所有字段添加数据,可以不写前面的字段名称
INSERT INTO goods (id) VALUES(66); -- ok,指定了字段 -- 8. 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
-- 如果某个列没有指定not null,那么当添加数据时,没有给定值,则会默认给null
INSERT INTO goods (id,goods_name)
VALUES(88,'格力手机');-- 这里的price默认设为null
SELECT * FROM goods; -- 如果我们希望指定某个默认值,可以在创建表时指定
-- 例如
CREATE TABLE goods2 (
id INT ,
goods_name VARCHAR(10),
price FLOAT NOT NULL DEFAULT 100);
INSERT INTO goods2 (id,goods_name) VALUES(1,'大西瓜手机');
SELECT * FROM goods2;

goods表:

goods2表:

4.2Update语句

  • 语法:
UPDATE tab_name
SET col_name1=expr1[, col_name2=expr2...]
[WHERE where_definition]

例子

要求:在上面创建的epm表中修改表中的记录

  1. 将所有员工的薪水改为5000元
  2. 将姓名为‘小妖怪’的员工薪水改为3000元
  3. 将老妖怪的薪水在原有的基础上加1000元
-- 要求:在上面创建的epm表中修改表中的记录
SELECT * FROM emp -- 1. 将所有员工的薪水改为5000元
UPDATE emp SET salary = 5000 -- 2. 将姓名为‘小妖怪’的员工薪水改为3000元
UPDATE emp SET salary = 3000 WHERE user_name = '小妖怪' -- 3. 将老妖怪的薪水在原有的基础上加1000元
INSERT INTO emp
VALUES(200,'老妖怪','1990-1-1','2004-4-12 12:22:09','捶背的',5000,'给大王捶背','111') UPDATE emp
SET salary = salary + 1000, job='出主意的'
WHERE user_name = '老妖怪'

  • 使用细节
  1. UPDATE 语法可以用新值更新原有表行中的各列
  2. set子句指示要修改哪些列和要给予哪些值
  3. WHERE子句指定应更新哪些行,如果没有WHERE子句,则更新所有的记录。因此要慎用
  4. 如果需要修改多个字段,可以通过set字段1=值1,字段2=值2...

4.3Delete语句

  • 语法
delete from tbl_name
[WHERE where_definition]

例子

-- delete语句演示
-- 删除表中名称为'老妖怪'的记录
DELETE FROM emp WHERE user_name ='老妖怪' -- 删除表中所有记录
DELETE FROM emp SELECT * FROM emp

  • 使用细节
  1. 如果不使用子句,将删除表中所有数据
  2. delete语句不能删除某一列的值(可使用update设为null或者 '')
  3. 使用delete语句仅删除记录,不删除表本身。如果要删除表,使用drop 语句:drop table 表名;

4.4Select语句

day03-MySQL基础知识02的更多相关文章

  1. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

  2. MongoDB基础知识 02

    MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...

  3. mysql基础知识大全

    前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里作简单概括性的介绍,具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善. 数据库和数据库软件 数据库是 ...

  4. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  5. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  6. MySQL基础知识:启动管理和账号管理

    整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...

  7. MySQL基础知识:创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  8. MySQL基础知识:Character Set和Collation

    A character set is a set of symbols and encodings. A collation is a set of rules for comparing chara ...

  9. mysql基础知识详解

    分享一些mysql数据库的基础知识. 1.每个客户端连接都会从服务器进程中分到一个属于它的线程.而该连接的相应查询都都会通过该线程处理.2.服务器会缓存线程.因此并不会为每个新连接创建或者销毁线程.3 ...

随机推荐

  1. YII页面缓存

    IndexController.php namespace frontend\controllers; use yii; use yii\web\Controller; class IndexCont ...

  2. Axure RP 8 实现 圆角文本框 圆角带筛选的下拉列表框 可自动显示滚动条

    刚开始用Axure 会发现 Axure 元件库并不是很齐全,很多元件需要自己想办法解决 或者去网上去找.其实个人建议网上有现成的元件可以就下载就不必花时间去折腾.除非你也想练练手,原型这种东西除非高保 ...

  3. Python算法之动态规划(Dynamic Programming)解析:二维矩阵中的醉汉(魔改版leetcode出界的路径数)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_168 现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行" ...

  4. 内网渗透之Windows认证(二)

    title: 内网渗透之Windows认证(二) categories: 内网渗透 id: 6 key: 域渗透基础 description: Windows认证协议 abbrlink: d6b7 d ...

  5. C#爬虫之通过Selenium获取浏览器请求响应结果

    前言 在进行某些爬虫任务的时候,我们经常会遇到仅用Http协议难以攻破的情况,比如协议中带有加密参数,破解需要花费大量时间,那这时候就会用Selenium去模拟浏览器进行页面上的元素抓取 大多数情况下 ...

  6. 在oracle中创建管理员密码

    1.因为在安装Oracle11g时没有设置sys和system用户的密码,导致登陆不上SQLplus,后面用sqlplus / as sysdba ,密码为:root登陆上去创建了密码. 2.如下图

  7. 下载markdown软件Obsidian(解决官网下载速度慢)

    Typora要钱了,不想每次都点稍后再买. Obsidian也很好用,官网是:https://obsidian.md/ 但是不太好下载,直接下载速度只有10kb/s左右,总共60多MB: 扔给迅雷也没 ...

  8. Java SE 9 多版本兼容 JAR 包示例

    Java SE 9 多版本兼容 JAR 包示例 作者:Grey 原文地址:Java SE 9 多版本兼容 JAR 包示例 说明 Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在 ...

  9. HDU2065 “红色病毒”问题 (指数型母函数经典板题)

    题面 医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶, ...

  10. node前后端交互(Express)

    1. Express框架是什么 1.1 Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用.我们可以使用 npm install expres ...