(第十一章)数据表的增删改
使用命令插入数据
数据表内的简写标注 |
---|
PK – Primary key(主键) NN – Not null(非空) UQ – Unique(唯一) BIN – Binary(二进制数) UN – Unsigned(无符号) ZF – Zero fill(补零) AI – Autoincrement(自动增量) |
数据表内的增加操作
1.插入完整单条数据记录,表中有多少个字段就需要对应的值有多少个
insert into table_name values(values1,values2,…valuesn);
table_name1 | <—表名 | ||||
---|---|---|---|---|---|
col_name1 | col_name2 | … | … | col_namen | <—字段名字 |
values1 | values2 | valusen | <—数据的值 | ||
解释:(values1,values2,…valuesn)为插入的具体值,并不是字段名,值的插入和表内的顺序对应
2.插入多条完整数据记录
inset into table_name values
(values1,values2…valuesn),
…
(values3,values4…valuesn);
3.插入单条数据记录的部分
insert into table_name col_name1,col_namen values
(values1,valuesn)
4.插入多条数据记录部分
insert into table_name col_name1,col_namen values
(values1,valuesn),
…
(values1,valuesn);
插入其它表的数据为(导入/导出数据表需要设置主键)
没有设置主键的表,在mysql workbench中是无法看到导入按钮的
5.创建table_name2表,表中的结构和table_name1表一样
create table table_name2 like table_name1;
6.向表2中插入表1的部分字段的数据
insert into table_name2 (col_name1,col_name2,…col_namen) select name (col_name1,col_name2,…col_namen) from table_name1;
7,把表table_name1中的所有数据复制到table_name2中
insert into table_name2 select * from table_name1;
8,新建table_name3表,并且结构和数据都和表table_name1一样
create table table_name3 select * from table_name1;
删除表内的数据
9.删除表内的数据
delete from table_name1;
10.mysql workbench 里面可以选择行为删除,前提是改表设置了主键,否则不显示删除行功能
11.导出csv文件
在mysql workbench查看表中数据,选择Result Grid栏目中的exprot recordset to an external file 按钮(将记录集导出到外部文件)
导出的内容如下:
reader_id,reader_sex,birhday
1,女,2008-02-01
2,男,1979-02-02
3,女,1949-02-03
12.从外面导入数据到该数据表(csv文件)
在mysql workbench查看表中数据,选择Result Grid栏目中的import recorde from external file 按钮(从外部文件导入记录)
13windows系统里面,需要将第一行中的字段信息(reader_id,reader_sex,birhday)删除
csv文件内容如下:
reader_id,reader_sex,birhday
4,女,2008-02-01
5,男,1979-02-02
6,女,1949-02-03
更改数据表内的数据记录
update table_name1 set
col_name1=values1,
col_name2=values2,
…
col_namen-valuesn
where condition;
实例
table_e | |||
---|---|---|---|
r1 | r2 | r3 | r4 |
a1 | 女 | 1 | 岁 |
a2 | 女 | 2 | 岁 |
a3 | 女 | 8 | 岁 |
a4 | 男 | 4 | 岁 |
a5 | 男 | 5 | 岁 |
a6 | 男 | 6 | 岁 |
a7 | 男 | 7 | 岁 |
1.把表内r1="a3"数据中的r4字段数据"年"的改为"周岁"
update table_e set r4=“周岁” where r1=“a3”;
2.把表内r1="a3"的r3添加10
update table_e set r3=r3+10 where r1=“a3”;
t_reader表里面的数据
编号 reader_id |
名字 reader_name |
性别 reader_sex |
生日 birhday |
还书总量 reader_borrowtotal |
---|---|---|---|---|
1001 | 小一 | 男 | 2001/2/1 | 1 |
1002 | 小二 | 男 | 2002/2/2 | 2 |
1003 | 小三 | 女 | 2003/2/3 | 3 |
1004 | 小四 | 女 | 2004/2/4 | 4 |
1005 | 小五 | 女 | 2005/2/5 | 5 |
t_reader_add
reader_id | reader_add |
---|---|
1003 | 妖艳 |
1004 | 漂亮 |
3.把t_reader_add表中"妖艳"的生日往后调整1个月
update t_reader set
birhday=date_add(birhday,interval 1 month)
where reader_id in
(select reader_id from t_reader_add where reader_add=“妖艳”);
4.把t_reader_add表中"妖艳"的生日往后调整1年
update t_reader set
birhday=date_add(birhday,interval 1 year)
where reader_id in
(select reader_id from t_reader_add where reader_add=“妖艳”);
5.把t_reader_add表中"妖艳"的生日往后调整1天
update t_reader set
birhday=date_add(birhday,interval 1 day)
where reader_id in
(select reader_id from t_reader_add where reader_add=“妖艳”);
删除数据记录
delete from table_name where condition;
t_reader表里面的数据
编号 reader_id |
名字 reader_name |
性别 reader_sex |
生日 birhday |
还书总量 reader_borrowtotal |
---|---|---|---|---|
1001 | 小一 | 男 | 2001/2/1 | 1 |
1002 | 小二 | 男 | 2002/2/2 | 2 |
1003 | 小三 | 女 | 2003/2/3 | 3 |
1004 | 小四 | 女 | 2004/2/4 | 4 |
1005 | 小五 | 女 | 2005/2/5 | 5 |
删除小三的记录
delete from t_reader where reader_name=“小三”; |
---|
t_reader_add表
reader_id | reader_add |
---|---|
1003 | 妖艳 |
1004 | 漂亮 |
(没有设置外键前的操作)在表t_reader_add的reader_add字段中删除以"妖"开头的数据
delete from t_reader_add where reader_add like"妖%"; |
---|
创建主键
给t_reader表中的reader_id设置主键,添加主键后自动默认添加了非空
alter table t_reader add primary key(reader_id); |
---|
数据表内的简写标注 |
---|
PK – Primary key(主键) NN – Not null(非空) UQ – Unique(唯一) BIN – Binary(二进制数) UN – Unsigned(无符号) ZF – Zero fill(补零) AI – Autoincrement(自动增量) |
创建外键
给t_reader_add表中的reader_id设置外键,参照为t_reader表中的reader_id,该处自定义外键名字(fk_id)
alter table t_reader_add add constraint fk_id foreign key(reader_id) references t_reader(reader_id); |
---|
添加外键后在t_reader_add表的Foreign Key中会显示出来(在mysql workbench schemas列表中可以看到)
这时再使用普通删除主键将会报错: delete from t_reader where reader_name like"小三"; 因为该主键有外键关联的数据 |
---|
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (myda .t_reader_add , CONSTRAINT fk_id FOREIGN KEY (reader_id ) REFERENCES t_reader (reader_id ))
|
删除外键需要两步
1.删除外键(需要添加上至前定义的外键名字(fk_id))
alter table t_reader_add drop foreign key fk_id; |
---|
2.删除外键时自动创建的索引名,(默认索引名字和外键名字相同)
alter table t_reader_add drop index fk_id; |
---|
cascade
设置级连删除cascade,删除了主键的某条数据,外键关联的数据将被整条删除
alter table t_reader_add add constraint fk_id foreign key(reader_id) references t_reader(reader_id) on delete cascade;
set null
设置级连删除,删除了主键的某条数据,外键关联的字段数据删除,仅仅该字段的数据变成null
alter table t_reader_add add constraint fk_id foreign key(reader_id) references t_reader(reader_id) on delete set null
restrict
设置级连删除,删除了主键的某条数据,当有外键关联的数据,提示拒绝删除
alter table t_reader_add add constraint fk_id foreign key(reader_id) references t_reader(reader_id) on delete restrict;
no action
设置级连删除,删除了主键的某条数据,当有外键关联的数据,提示拒绝删除
alter table t_reader_add add constraint fk_id foreign key(reader_id) references t_reader(reader_id) on delete no action;
创建表t_reader
create table t_reader(
reader_id varchar(10),
reader_name varchar(10),
reader_sex varchar(10),
birhday date,
reader_borrowtotal int
);
插入数据
insert into t_reader values
(“1001”,“小一”,“男”,“2001/2/1”,1),
(“1002”,“小二”,“男”,“2002/2/2”,2),
(“1003”,“小三”,“女”,“2003/2/3”,3),
(“1004”,“小四”,“女”,“2004/2/4”,4),
(“1005”,“小五”,“女”,“2005/2/5”,5);
创建表t_reader_add
create table t_reader_add(
reader_id varchar(10),
reader_add varchar(10)
);
插入数据
insert into t_reader_add values(
“1003”,“妖艳”),(“1004”,“漂亮”);
(第十一章)数据表的增删改相关推荐
- 【PostgreSQL】数据表的增删改查
关于数据库的增删改查可以参考之前的博客 [PostgresSQL]登录数据库(远程).管理数据库(增删改查) 下面是数据表的增删改查 1.增加数据表 # 创建ada_address_pool表 CRE ...
- Django框架(6.django后台管理/通过后台对数据表的增删改)
1.django项目中的admin.py 即: 后台管理相关文件 使用Django提供的相关管理机制的步骤 1.本地化 语言和时区的本地化 ( 修改项目中的settings.py的文件) 2 ...
- Django框架(4.django中进入项目的shell之后对数据表进行增删改查的操作)
django设计模型类.模型类生成表.ORM框架简介:https://blog.csdn.net/wei18791957243/article/details/88657270 数据操作 完成数据表的 ...
- Hive关于数据表的增删改(内部表、外部表、分区表、分桶表 数据类型、分隔符类型)
建表 基本语句格式 CREATE [external] TABLE if not exists student #默认建立内部表,加上external则是建立外部表(id int COMMENT'学号 ...
- Thingworx - 创建一个数据表的增删改查操作
创建一个数据形状: 创建数据形态(datashapes),点击选项右侧"+"号或者右侧界面"新建"按钮 在创建页面输入名称,也可以输入说明等,如果有项目等条件, ...
- MySQL基础篇——第11章 DML(数据操作):增删改
MySQL基础篇--第11章 DML(数据操作):增删改 1. 插入数据(增) INSERT INTO ... 使用 INSERT INTO 语句向表中插入数据(记录) 1.1 方式1:VALUES ...
- python-mysql期末实验:五、collage(大学)表的增删改查界面的制作
本专栏目录: 一.实验综述 二.基于MySQL进行的数据库的搭建 三.程序登录.注册界面的制作 四.数据导入界面的制作(即本篇) 五.collage(大学)表的增删改查界面的制作 六.province ...
- Hadoop之Hive数据库和表的增删改查(DDL)
Hive QL 是Hive支持的类似SQL的查询语言.Hive QL大体可以分为DDL.DML和UDF语言.DDL语言主要是创建数据库.创建表.数据库和表的删除:DML主要进行数据的添加.查询:UDF ...
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...
最新文章
- 项目进展情况如何更好地管理?
- 《Python 学习手册4th》 第十二章 if测试和语法规则
- 崔强:如果有知识就做一个内裤外穿飞行的超人
- VC++ ipaddress控件的使用
- 文件夹操作之判断是否存在(Directory)
- matlab求滤波器的冲激响应,在TMS320C5410上用MATLAB实现有限冲激响应滤波器
- python1234出栈_Python数据结构与算法3——栈和队列
- 清掉数据_大数据超详尽分析,带你看懂打野江湖
- 有限差分法解NS方程原理
- Arcgis4js实现链家找房的效果
- 计算机正数和负数的除法运算,正数与负数——整数的乘除法与四则运算.pdf
- matlab 怎么解ode方程,Matlab解微分方程(ODE+PDE).pdf
- 测试工程师进阶之测试用例发散思维(一)
- JavaScript获取当前时区 时间转换
- Painter X Liquid Ink(液体墨水)画笔
- docker Starting MySQL database server mysqld fail解决办法
- Oracle HR 样例用户的建立 10g,11g均可
- 南京大学iSE智能软件工程实验室
- http中get/put/post区别
- 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析...