5

day03-MySQL基础知识02 - 一刀一个小西瓜

 1 year ago
source link: https://www.cnblogs.com/liyuelian/p/16749704.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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;
image-20221002184244851
  • 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,那么当添加数据时,没有给定值,则会默认给nullINSERT INTO goods (id,goods_name) VALUES(88,'格力手机');-- 这里的price默认设为nullSELECT * 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表:

image-20221002214014175

goods2表:

image-20221002214056677

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 = '老妖怪'
image-20221002221709227
  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

image-20221002222608594

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

4.4Select语句


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK