逐日SQL自教常识点(第十一天)—关于拔出、修
每日SQL自学知识点(第十一天)—关于插入、修改表的各种知识点
一、插入
插入记录的方式汇总
1.普通插入(全字段)INSERT INTO table_name VALUES (value1, value2, ...)
2.普通插入(限定字段)INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
3.多条一次性插入INSERT INTO table_name (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...
4.从另一个表导入INSERT INTO table_name SELECT FROM table_name2 [WHERE key=value]
插入某表格内容到另一个表里
注序号可以赋予空值null,就会自行排序
二、更新表
修改记录的方式汇总
- 设置为新值UPDATE table_name SET column_name=ne_value [, column_name2=ne_value2] [WHERE column_name3=value3]
- 根据已有值替换UPDATE table_name SET key1=replace(key1, '查找内容', '替换成内容') [WHERE column_name3=value3]
题目请把examination_info表中tag为PYTHON的tag字段全部修改为Python
解答
- 本题采用两种修改方式均可,语义为『当tag为PYTHON时,修改tag为Python』,先用第一种:
UPDATE examination_info
SET tag = "Python"
WHERE tag = "PYTHON";
- 如果采用第二种,写作
UPDATE examination_info
SET tag = REPLACE(tag, "PYTHON", "Python")
WHERE tag = "PYTHON";
- 思维扩展第二种方式不仅可用于整体替换,还能做子串替换,例如要实现将tag中所有的PYTHON替换为Python(如CPYTHON=>CPython),可写作
UPDATE examination_info
SET tag = REPLACE(tag, "PYTHON", "Python")
WHERE tag LIKE "%PYTHON%";
三、修改表
题目请在用户信息表,字段level的后面增加一列最多可保存15个汉字的字段school;并将表中job列名改为profession,varchar字段长度变为10;achievement的默认值设置为0。
解答
alter table user_info add school varchar(15) after level;
增加列在某列之后
alter table 增加的表格 add 增加列的名称 数据类型 位置(after level 在level 之后)
alter table user_info change job profession varchar(10);
更换列的名称及数据类型
alter table user_info change 原列名 修改列名 修改数据类型
alter table user_info modify achievement int(11) default 0;
更改数据类型
alter table 表名 modify 修改列名称 数据类型 默认值等