准备:
先下载(以下相关操作)要用到的外部的数据库数据的(.psc备份压缩文件):
还在审核中,过了会及时补上
以下相关操作,可在mysql软件中完成,也可以在Navicat for mysql软件中的(命令列介面)完成。打开mysql软件,开启mysql服务器;
再在Navicat for mysql软件中连接...
上面这些相关具体操作可点击以下链接查看:数据库02https://blog.csdn.net/LVDYGFK/article/details/120587480
备份还原
一、备份还原外部的数据库数据(外部数据)到某一数据库中
01、右击(备份),选择(还原备份)
02、选择要备份还原的外部的数据库数据的(.psc备份压缩文件)
03、再点击(开始)
04、即成功将要备份还原的外部的数据库数据(外部数据)备份还原到某一数据库中
二、创建当前数据库备份,可点击(新建备份),将当前数据库中的数据存储到.psc文件里。
三、数据库之间有选择的进行数据传输(在Navicat for mysql软中)
01、选择要传输的表
02、再右击(源)数据库名,选择(数据传输)
03、再点击(开始)
04、然后先点击(确定),再点击(开始)
即图中(源)数据库:gradem和(目标)数据库:cwgl之间成功进行有选择的数据传输
四、在Navicat for mysql软件中,复制表
右击某一表的表名,选择(复制表),
即可在当前数据库中复制一个与原某一表记录数据一样的名称为(原某一表名_copy)的表
以下操作,可以加limit n/limit x,y; 以限制所要操作(复制、修改、查询)的数据记录条数
复制表
01、将某表的全部数据复制到另一个表中
create table 新表名 select * from 表名;
例如,复制student表的全部数据到stu1表中
create table stu1 select * from student;
mysql> use gradem; Database changed mysql> create table stul select * from student; Query OK, 471 rows affected (0.03 sec) Records: 471 Duplicates: 0 Warnings: 0
*号代表所有的字段
02、将某表的复制前n条记录{用:limit(限制数[即:n])}到另一个表中
create table 新表名 select * from 表名 limit n;
mysql> create table stu2 -> select * -> from student limit 19; Query OK, 19 rows affected Records: 19 Duplicates: 0 Warnings: 0
03、有条件的复制(有选择复制)
create table 新表名 select 要复制的字段名1,要复制的字段名2,要复制的字段名3 from 表名 ;
mysql> create table stu3 -> select sno,sname,ssex -> from student ; Query OK, 190rows affected Records: 190 Duplicates: 0 Warnings: 0
04、有选择的复制前n条的记录
create table 新表名 select 要复制的字段名1,要复制的字段名2,要复制的字段名3 from 表名 limit n;
mysql> create table stu3 -> select sno,sname,ssex -> from student limit 19; Query OK, 19 rows affected Records: 19 Duplicates: 0 Warnings: 0
05、复制前n的女学生记录(用where)
Use gradem;
Create table stu6 select * from student
where ssex = ‘女' limit 20;
修改表中的数据记录
01、修改表中的数据记录
update stu1
set ssex='女' // set修改为
where sname='王洪利'; //where 条件表达式;一般条件应明确及为明显区别其他属性的
02、修改表中某个属性的全部数据记录(用where)
UPDATE sc1
SET degree=90
WHERe degree<90;
数据记录的删除
01、有选择的删除数据记录
delete from 表名 where 条件表达式;
delete from stu1
where sname='王洪利';
查询表中的数据记录
01、查询某表的所有数据记录
select * from 表名;
mysql> use gradem; Database changed mysql> select * from student;
02、有选择的查询前n条的记录
select 要查询的字段名1,要查询的字段名2,要查询的字段名3 from 表名 limit n;
select sno,sname,ssex,sbirthday from student limit 19;
03、Limit 5,20
表示从第5条开始,查后20条
select 要查询的字段名1,要查询的字段名2,要查询的字段名3 from 表名 limit x,y;
select sno,sname,ssex,sbirthday from student limit 5,19;
04、不重复查询
防止有多个重复的数据(用distinct)
select distinct 要查询的字段名 from 表名 ;
select distinct sno
from sc ;
而用select * from sc limit 20;
会有多个重复的数据记录。
05、显示中文栏名:字段名 AS 字段的中文名/字段名 字段的中文名
select 字段名 AS 字段的中文名,字段名 AS 字段的中文名,字段名 AS 字段的中文名
from student;
use gradem;
select sno 学号,sname as 名字,ssex 性别,sbirthday 出生日期
from student;
06、查询成绩为60~90的数据记录(用where)
select * from sc1 where degree<=90 and degree>=60;
/select * from sc1 where degree between 60 and 90; //从60到90的
07、有选择的查询数据记录
select * from 表名 where 要查询的字段名 in(指定的第一个数据记录,指定的第一个数据记录,...指定的第n个数据记录) ; //查询某表中 为指定数据记录 的相关所有数据记录
/ select * from 表名 where 要查询的字段名 指定的第一个数据记录 or 指定的第二个数据记录or ...指定的第n个数据记录) ;
select * from student where cid in(3,5,7);
select * from student where cid 3 or 5 or 7;
08、模糊查询
select * from 表名 where 字段名 like '值';
这里的值为模糊的,需用到通配符(%,-)
% 能匹配0或多个字符,对字符长度没有限制
- 只能匹配单个字符 常被用来限制值的字符长度
09、排序查询
select * from 表名 order by 要排序查询的字段名 desc/asc;
desc 降序排序(从高到低)/asc 升序排序(从低到高)
若排序方式未写,则将使用默认排序方式:asc 升序排序(从低到高)
10、多条件查询
select * from 表名 where 条件表达式一 and 条件表达式二;
select * from student where ssex='男' and classno='20070101';
11、查询所有学生的学号、姓名和年龄
(年龄=现在日期-出生日期。
出生日期值是:sbirthday
现在的日期是:curdate()
年龄=year(curdate())-year(sbirthday) )
use gradem;
select sno 学号 , sname 姓名, ssex 性别,year(curdate())-year(sbirthday) 年龄
from student;
统计
01、统计总分和平均分
(sum ---合计 avg ---平均
分数的字段是:degree)
统计
01、统计总分和平均分
(sum ---合计 avg ---平均
分数的字段是:degree)
01、统计总分和平均分
(sum ---合计 avg ---平均
分数的字段是:degree)
分数的字段是:degree)
select sum(degree) 总分,avg(degree) 平均分 from 表名;
use greadm;
select sum(degree) 总分,avg(degree) 平均分
from sc;
02、有选择的统计总分和平均分
select sum(degree) 总分,avg(degree) 平均分 from sc where 条件表达式';
03、统计最高分和最低分 。
(max ---最大
min ---最小
分数的字段是:degree)
min ---最小
分数的字段是:degree)
select max(degree) 最高分,min(degree) 最低分 from 表名;
use greadm;
select max(degree) 最高分,min(degree) 最低分
from sc;
count --- 统计: count(字段名) 即用某一字段进行统计
04、select max(degree) 最高分, count(sno) 班级人数 from sc;
如果把count(sno) 改成 sno,
select max(degree) 最高分, sno 班级人数
from sc;
则结果会出错。
05、统计表中的人数
(用某一字段进行统计)
select count(字段名) 人数 from 表名;
use gradem;
select count(sno) 人数
from student;
06、有条件的统计
select count(字段名) 班级人数 from 表名 where 条件表达式;
select count(sno) 班级人数
from student where classno='20070101';
select count(sno) 班级人数
from student where classno='20070101' and ssex='男';
07、有条件统计表中的人数(用模糊查询)
select count(字段名) 人数 from 表名 where 字段名 like '值';
use gradem;
select count(Sno) 人数
from student
where sno like '2007%';
08、按照“班级”进行分组统计各班人数
(group by classno ---按不同班级统计
人数 )
use gradem;
select classno 班级编号, count(sno) 班级人数
from student
group by classno;
09、分别统计各“班级”的男生(1)女生(0)人数
(加上一个性别ssex字段)
select ssex 性别,classno 班级编号, count(sno) 班级人数
from student
group by ssex,classno;
10、分别统计各“班级”的男生(1)女生(0)人数。
使用:having 指定(筛选)汇总
select ssex 性别,classno 班级编号, count(sno) 班级人数
from student
group by ssex,classno having ssex='男';
也可以是:
select ssex 性别,classno 班级编号, count(sno) 班级人数
from student
where ssex='男' group by ssex,classno ;



