字段的相关操作

  • 字段的增加:
  • alter table 表名 add 新字段名 数据类型 (约束);
  • 字段的修改:
  • alter table 表名 change 旧字段名 新字段名 数据类型 (约束);
  • 字段的删除:
  • alter table 表名 drop 字段名称;
  • 表名的修改:
  • rename table 旧表名 to 新表名;
# use数据库
USE bigdata_db;
# 对数据表的结构进行查询
DESC category;
# 增加一个字段,字段名称为desc  字段类型为varchar(100),没有约束
# desc 是用来查询表结构的关键字,且关键字不区分大小写,所以会报错
# 要么改名,要么使用esc下边的点,将其包裹起来则可以正常使用,指明其为字段名称,并不是关键字
ALTER TABLE category ADD `desc` VARCHAR(100);
# 如果字段名称不与关键字重名,则不需要使用``进行包裹
ALTER TABLE category ADD num INT;

# 修改字段
# 使用change可以对字段的名称和类型以及约束同时进行修改
ALTER TABLE category CHANGE `desc` description VARCHAR(255);
# 使用change将num字段的数据类型改为varchar类型
# 如果需要修改其类型或者约束,不修改名称,名称也需要再书写一遍
# 如果修改的字段不存在,则报错[42S22][1054] Unknown column 'num' in 'category'
ALTER TABLE category CHANGE num num VARCHAR(100);

# 删除字段
# 如果删除的字段不存在则报错
# [42000][1091] Can't DROP 'num'; check that column/key exists
ALTER TABLE category DROP num;

# 修改表名
RENAME TABLE category TO category2;
# 查看所有的表
SHOW TABLES;
# 修改为category之后原表消失
DESC category2;
# [42S02][1146] Table 'bigdata_db.category' doesn't exist
DESC category;
# 将category2 修改为 category
RENAME TABLE category2 TO category;

插入记录

  • 插入记录(方式1):insert into 表名(字段名1, 字段名2) values(值1, 值2),(值1, 值2)。。。。。。
  • 插入记录(方式2):insert into 表名 values (值1,值2,值3…),(值1,值2,值3…),(值1,值2,值3…)。。。。。。。
  • 如果使用不指定字段的形式,必须将所有字段都进行赋值,否则会报错
  • 如果使用指定字段的形式,则必须讲指定的字段都进行赋值,否则会报错
# 使用数据库
USE bigdata_db;
# 查看category表中的结构
DESC category;

# 插入数据
# 指定字段后只对被指定的字段赋值,其余字段自动置为null(null代表空值)
# 在sql中字符型数据(文本型数据)必须使用''(引号)包裹起来,才能储存,(了解:日期数据,也要使用''包裹起来)
INSERT INTO
    category(cid, cname)
VALUES
    (1, '电器');
# 插入数据时不指定字段
# 如果传入数据的数量和字段数不相等则会报错
# Column count doesn't match value count at row 1
# INSERT INTO category VALUES (2, '水果');
INSERT INTO
    category
VALUES
    (2, '水果', '真的很甜');

# 一次性插入多条数据
INSERT INTO
    category(cid, cname)
VALUES
    (3, '图书'),
    (4, '服装');

# 使用完全插入的方式插入多条数据
INSERT INTO
    category
VALUES
    (5, '房产', '又升值了'),
    (6, '生活', '生活真好呀'),
    (7, '数码类', '买个照相机,就是cgx');

记录的更新

  • update更新数据:update 表名 set 字段名 = 值 (where 条件)
  • 如果使用where就可以控制要修改的行
  • 如果不适用where则对所有的行进行修改
  • 被修改后,数据类型不能发生改变
  • 不能超过原有数据的最大长度
  • 除了数值型数据之外(整型,浮点型)省下的数据都需要使用引号包裹起来
# 更新记录信息update
# 需求,将cid=5的房产信息中descripton中的'又升值了', 改为,'房价已经腰斩了'
# 使用update进行更新,set后边控制要更新的列,  where控制要更新的行
UPDATE category SET description = '房价已经腰斩了' WHERE cid = 5;
# 如果不指定where 就要对整列数据进行修改.
UPDATE category SET description= '好开心呀,又下课了,可以给男朋友打电话';
# 修改后的数据类型,一定要和修改前一致
# varchar类型中,可以存储数值型数据,但是不能超长,否则会出现问题
# UPDATE category SET cname = 2135678901 WHERE cid = 2;
# int类型的字段内不能存放字符型(文本型)数据
# Incorrect integer value: 'c001' for column 'cid' at row 1
UPDATE category SET cid = 'c001' WHERE cname = '服装';

删除记录

  • delete 删除记录:delete from 表名 where 条件筛选;
  • 如果使用where没有筛选到任何数据信息,删除操作不会报错,但是什么都不会执行
  • 如果where筛选出对应的数据,则将 数据删除
# 删除记录
# 如果经过条件筛选,未找到满足条件的数据,则不进行任何删除动作,同时也不报错
DELETE FROM category WHERE cid = 10;
# 如果删除的记录存在则将其删除
DELETE FROM category WHERE cid = 7;
# 如果在删除表的时候,不添加where进行条件筛选,则将删除所有的数据
DELETE FROM category;
# 使用truncate清空表,也可以将数据全部清空,但是不能使用条件过滤
TRUNCATE TABLE category;