常见的数据操作有:添加数据、删除数据、更新数据、数据的导入和导出。
数据的导入导出,可以查阅 Mysql官网 扩展更多,如果有安装数据库管理工具(datagrip、Navicat、DBeaver、MySQL Workbench),那么直接根据步骤点击即可。
以下都是在数据库和表已经建立操作的,如果还不清楚如何建库表,可以前往:Mysql 常见的数据定义语言DDL 。
添加数据
不指定字段添加单行数据
/* insert into table_name values (value1,value2,....); */ insert into sql231104 values(1,2138,'male',21,'北京大学',3.4,7); insert into sql231104 values(2,3214,'male',null,'复旦大学',4.0,15);
指定字段添加单行数据
/* insert into 表名(column1 [, column2, …, columnn]) values (value1 [,value2, …, valuen]); */ insert into sql231104(id,device_id,gender,age,university,gpa,active_days_within_30) values(1,2138,'male',21,'北京大学',3.4,7); insert into sql231104(id,device_id,gender,age,university,gpa,active_days_within_30) values(2,3214,'male',null,'复旦大学',4.0,15);
指定字段,一次性添加多行数据
/* insert into table_name(column1 [, column2, …, columnn]) values (value1 [,value2, …, valuen]), (value1 [,value2, …, valuen]), …… */ insert into sql231104(id,device_id,gender,age,university,gpa,active_days_within_30) values(1,2138,'male',21,'北京大学',3.4,7), (2,3214,'male',null,'复旦大学',4.0,15);
添加查询结果
/* insert into table_name(column1 [, column2, …, columnn]) select column1 [, column2, …, columnn] from table_name1 [<join_type> join table_name2 on <join_condition>] */ create table sql231104_qa like sql231104;-- insert into sql231104_qa select * from sql231104; -- 单表查询录入 insert into sql231104_qa table sql231104;-- 单表查询录入 -- 多表联结查询录入 insert into sql231110(device_id,university select b.device_id, b.question_id, a.university, from sql231104 as a right join sql231103 as b on a.device_id = b.device_id; insert into sql231110(device_id,university,question_cnt,right_question_cnt) select a.device_id, a.university, sum(if(b.result is not null, 1, 0)) as question_cnt, sum(if(b.result = 'right', 1, 0)) as right_question_cnt from sql231104 as a left join sql231103 as b on a.device_id = b.device_id where 1=1 and (month(date) = 8 or date is null) group by a.device_id, a.university;
删除数据
删除全部数据
-- 清空数据 truncate table table_name; -- 删除全部数据 delete from table_name where 1=1; truncate table sql231110; delete from sql231110 where 1=1;
删除条件数据
/* delete from table_name where 1=1 [and where_condition]; */ delete from sql231110 where 1=1 and university = '北京大学’;
更新数据
单表自更新
/* update table_name set column1 = value1 [,conlumn2 = value2,...] where 1=1 [and where_condition]; */ update sql231110 set gender = 'female',age = 30 where 1=1; -- 更新所有人员性别为男性,年龄30 update sql231110 set gender = 'female',age = 30 where 1=1 and device_id = 2138;-- 更新北京大学人员性别为男性,年龄30
多表联结更新
-- 更新回答正确的用户得分为80分 update sql231104 set gpa = 80 where device_id in ( select distinct device_id from sql231103 where result = 'right'); update sql231104 as a join sql231103 as b on a.device_id = b.device_id set a.gpa = 80;
导出数据
使用mysqldump导出sql文件
/* Windows 按 Win+R 输入 cmd ,Mac 打开终端 mysqldump [arguments] > file_name [arguments]:有主机、端口号、用户,还有需要导出的操作,有数据库和表 file_name:是文件存储的路径和名字 输入完命令执行后需要输入用户密码 如果没有配置环境变量,报错mysql,也可以在执行命令前加上mysql路径,如/usr/local/mysql/bin/ */ -- 导出指定数据库 mysqldump -h127.0.0.1 -p3306 -uroot -p sql_training > /Users/guanfawang/Downloads/mysqldump2/sql_training.sql -- 导出多个数据库 mysqldump -h127.0.0.1 -p3306 -uroot -p --databases dwd sql_test1 > /Users/guanfawang/Downloads/mysqldump2/dwd_sqltest1.sql -- 导出指定数据库的表 mysqldump -h127.0.0.1 -p3306 -uroot -p sql_training sql231030 > /Users/guanfawang/Downloads/mysqldump2/sql231030.sql -- 导出指定数据库多个表 mysqldump -h127.0.0.1 -p3306 -uroot -p sql_training sql231030 sql231031 > /Users/guanfawang/Downloads/mysqldump2/sql231030_31.sql
导入数据
使用mysqldump导入sql文件
/*Windows 按 Win+R 输入 cmd ,Mac 打开终端 mysql -h127.0.0.1 -p3306 -uroot -p 本地操作的话可以省略成:mysql -u root -p */ create database if not exists sql_test2; use sql_test2; source /Users/guanfawang/Downloads/mysqldump2/sql231030_31.sql
如果有安装数据库管理工具,如Datagrip,则根据步骤即可操作;