mysql数据库操作(1)
1.mysql 数据库备份:
语法:
MYSQLDUMP -uUSER -pPASS DataBase > Path
其中:USER 是用户名,PASS 是密码,DataBase 是数据库名, Path 是数据库备份存储的位置。
备注:1)执行备份是在系统条件下,而非 mysql 状态下。
2)请使用正确的文件地址,在文件地址中要使用双斜杠 “\\” 来代替单斜杠 “\”。
2.mysql 数据库的恢复
语法:
mysql -uUSER -pPASS DataBase < Path
其中:USER 是用户名,PASS 是密码,DataBase 是数据库名, Path 是备份文件存储的位置。
3.实现跨数据库表的内容的复制
如实现将 db_database3 数据库中的 user 表复制到 database4 中的 user 表,在实现数据库表的内容复制时,需要在每个数据库表前要加上数据库的名称。
具体语法如:
insert into db_database4.user(column1,column2) select column1,column2 from db_database3.user;
备注:1)仍然需要你自己在 db_database4 中建立一个与 db_database3 结构一样的 user 表;
2)要保证表中字段的数据类型的一致性,否则会导致出入数据的错误。
4.使用 UNION ALL 语句批量插入数据
是用 UNION ALL 语句实现批处理,其语法如下:
INSERT tableName SELECT columnValue,... UNION ALL SELECT columnValue,......
1.tableName:要添加数据的数据表。
2.columnValue:要添加到数据表中的数据。
例如:往一个 user 表中一次插入多条数据:其中表结构如下:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | varchar(20) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
我们使用常规的 insert into 插入语句如下:
mysql> insert into user values('','tom');
Query OK, 1 row affected (0.06 sec) mysql> insert into user values('','kill');
Query OK, 1 row affected (0.09 sec) mysql> insert into user values('','bill');
Query OK, 1 row affected (0.09 sec)
而若使用 union all 语句如下:
mysql> insert user select '','jim' union all select '','kill' union all select '','bill';
备注:我们常用的 insert into 语句每次只能实现插入一条语句,这样重复输入往往不方便,这个时候可以选择使用union all 来替代。
5.更新数据库中的表---其中包括:对表本身结构的更改与对表中数据的更改
1)对表本身结构的更改,使用 alter 语句。
语法:
alter table 表名
例如:
a.追加语法:alter table 表名
add (column datatype,column datatype,...);
例如:alter table tt_table add image blob; //在tt_table表中添加一个image列用来保存大头照
b.修改语法:alter table 表名 modify (column datatype,column datatype,...);
例如:alter table tt_table modify job varchar(60);//修改tt_table表的job列,使其长度为60
c.删除语法:alter table 表名 drop (column);
例如:alter table tt_table drop job; //删除tt_table表中的job列
d,修改表名:rename table 表名 to 新表名;
例如:rename table tt_table to tt;//修改tt_table表的表名为tt
e.将tt_table表的字符集修改为utf8
alter table tt_table character set utf8;
f.将tt_table原表中的列名food 属性为varchar(20)修改为sale_food 属性为varchar(40)
alter table tt_table change column food sale_food varchar(40);
2)对表中数据的更改,使用 update 语句。
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
例1:我们为 lastname 是 "Wilson" 的人添加 firstname
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' ;
例2:我们会修改地址(address),并添加城市名称(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson';
备注:alter的修改只涉及表结构方面,而不能对其中保存的数据进行修改!掌握这点可以混淆使用 alter 和 update 。
6.将数据表清空-----DELETE 语句与TRUNCATE TABLE 语句
1)DELETE 语句
DELETE 语句用于删除表中的行。
语法:
DELETE FROM 表名称 WHERE 列名称 = 值
例1:删除lastname为wilson的行:
DELETE FROM Person WHERE LastName = 'Wilson'
例2:删除所有行,可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:
DELETE FROM table_name
或者:
DELETE * FROM table_name
2)TRUNCATE TABLE 语句
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同,二者均删除表中的全部行;但 TRUNCATE TABLE 比 DELETE 速度快,而且使用的系统和事物日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每一行做一项记录;
TRUNCATE TABLE 则通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放,减少了日志空间的额占用。
TRUNCATE TABLE 语法:
TRUNCATE TABLE 数据表名
7.聚集函数 SUM 实现数据汇总
sum函数具体语法:
SUM ([ALL|DISTINCT] expression)
①ALL:对所有的值进行聚集函数运算。ALL 是默认值。
②DISTINCT:指定 SUM 返回唯一值的和。
③expression:是常量、列或函数,或者是算术、按位与字符串等运算符的任意组合。如果 expression 是精确数字或近似数字数据类型分类(bit数据类型除外)的表达式,则不允许使用聚集函数和子查询。
例如:统计一个班级语文,数学,英语各科的总成绩:
select sum(math),sum(chiense),sum(english) from tt_table ;
统计一个班级语文成绩平均分:
select sum(chinese)/count(*) from tt_table;
注意:a.sum仅对数值起作用,否则会报错。
b.对多列求和,逗号不能少。
c.在统计过程中,null 值将被忽略。
8.聚集函数 AVG 实现计算平均值
AVG函数具体语法:
AVG ([ALL|DISTINCT] expression)
①ALL:对所有的值进行聚集函数运算。ALL 是默认值。
②DISTINCT:指定 AVG 操作只能使用每个值的唯一实例,而不管该值出现多少次。
③expression:是常量、列或函数,或者是算术、按位与字符串等运算符的任意组合。如果 expression 是精确数字或近似数字数据类型分类(bit数据类型除外)的表达式,则不允许使用聚集函数和子查询。
例如:求一个班级的平均分
select avg(chinese) from tt_table;
9.聚集函数 MIN/MAX 求数据表中的最小/最大值
具体语法:
MIN|MAX ([ALL|DISTINCT] expression)
①ALL:对所有的值进行聚集函数运算。ALL 是默认值。
②DISTINCT:指定每个唯一值都被考虑。DISTINCT对MIN、MAX无意义。
③expression:该参数为表达式,由常量、列名、函数以及算术运算符、按位运算符和字符串运算符任意组合而成。
例如:求班级最高分和最低分
select man(chinese+english+maht),min(chinese+english+maht) from tt_table;
10.聚集函数 COUNT 返回表达式中值的个数
COUNT 函数是唯一允许使用通配符作为参数的聚集函数。
语法:
COUNT({[ALL|DISTINCT] expression} | * )
①ALL:若没有该参数,SQL 将对所有的值进行聚集函数运算。ALL 是默认值。
②DISTINCT:指定每个唯一值都被考虑。
③expression:该参数为表达式,其类型可以是除 uniqueidentifier、text、image 或 ntext 之外的任何类型。
④ * :指定应该计算所有行以返回表中行的总数。COUNT(*) 不需要任何参数,而且不能与 DISTINCT 一起使用。COUNT(*) 返回指定表中的行的数量而不消除副本,对每行分别进行计数,包括含有空值的行。
例如:统计一个班级共有多少学生:
select count(name) from tt_table;
或者
select count(*) from tt_table;//这种分页的时候用得比较多
统计总分大于250的人数有多少?
select count(*) from tt_table where (math+english+chinese)>250;
注意:count统计只有有值才计数。若统计的name列上有一个为null的值,则该行不计入count的计数结果之中。
11.在where子句中经常被使用的运算符
1) >大于 <小于 <=小于等于 >=大于等于 =等于 <>不等于
2) between...and ... 显示在某以区间的值
3) in(set) 显示在in列表中的值,定点查询。例in(100,200)即为显示查询列表中含有100和200这两个值的结果集。
4) like 模糊查询("%" 和 "_")
5) is null 判断是否为空
6) and 多个条件同时成立
7) or 多个条件任一成立
8) not 不成立
注意1:不等于运算符跟其它语言有点不一样,需要注意一下。
注意2:like语句中,"%"代表零个或多个任意字符,"_"代表一个字符。
例如:
查询英语分数在80--90之间的同学:
select name from tt_table where english>80 and english<90;
查询英语分数在80--90之间的同学:
select name from tt_table where english between 80 and 90;
查询数学分数为89,90,91的同学:
select name from tt_table where math in(89,90,91);
查询所有姓“李”的学生成绩:
select * from tt_table where name like '李%';
12.对数据进行排序查询---使用 ORDER BY 子句与 DESC|ASC 关键字
ORDER BY 子句的作用是分类输出,并且根据表中包含的一列或多列表达式将输出的值按升序或降序排列。他不改变数据库中行的顺序,只是简单的改变查询输出的值的显示顺序。
其语法格式如下:
SELECT ... WHERE ... ORDER BY expression [ASC|DESC],...
参数说明:
①expression:一个表达式,通常是一个输出时用来分类的字段。
②[ASC|DESC]:可选项,代表升序或降序。
③ ,... :指可以有多于一个的分类表达式,并且每一个表达式都可以为升序或降序。
例如:对 user 表中的图书价格进行降序排序输出
select * from user order by price desc;
13. group by 与 order by 之区别?
order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。
group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
什么是“聚合函数”?
像sum()、count()、avg()等都是“聚合函数”
使用group by 的目的就是要将数据分类汇总。
一般如:
select 单位名称,count(职工id),sum(职工工资) form [某表] group by 单位名称
这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数和工资总额。
在sql命令格式使用的先后顺序上,group by 先于 order by。
select 命令的标准格式如下:
SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ]
[ GROUP BY group_by_expression ] [ HAVING search_condition ]
例如:
select name,sum(total) sum from tb group by name order by sum asc;
备注:
SUM 函数只能用于数据类型是 int ,smallint,decimal,numeric,float,real,money 和 smallmoney的字段。
14.mysql 数据库中使用 LIMIT 子句来限制语句返回的行数
mysql 数据库中提供了 LIMIT 子句来限制 select 语句返回的行数。如果查询数据的 SQL 语句中包含 GROUP BY 与 ORDER BY 子句,则 LIMIT 子句放在 GROUP BY 子句与 ORDER BY 子句的后面。语法如下:
SELECT [DISTIN | UNIQUE] (*,columname[AS alias], ...) FROM table WHERE ... ORDER BY ... LIMIT([offset] , rows);
参数说明:
①offset:指定要返回的第一行的偏移量。开始行的偏移量是0;
②row:指定返回行的最大数目。
例如:
从 tb 表中查询最开始的3条记录。
select * from tb limit 0,3;
查询 tb 表中的最后的3条记录。
select * from tb order by id desc limit 0, 3;
备注 :
1.mysql 数据库提供了 LIMIT 子句,在SQL Server数据库提供了相应的 TOP n ,两者需要区别开来。
2.LIMIT 子句的参数中,第一个参数是可选参数。如果值给定一个参数,则代表偏移量为0的返回行的最大数目。例如,表达式 limit(3)与表达式 limit(0,3)是等价的。
3.如果查询数据的 SQL 语句中包含 GROUP BY 与 ORDER BY 子句,则 LIMIT 子句一定要放在 GROUP BY 子句与 ORDER BY 子句的后面。
////end
mysql数据库操作(1)的更多相关文章
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 设计模式 - 单例模式mysql数据库操作类
待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...
- MySQL数据库操作常用命令
MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...
- Python/MySQL(四、MySQL数据库操作)
Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- Python进行MySQL数据库操作
最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- (转载)常用的Mysql数据库操作语句大全
打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...
随机推荐
- 使用WindowBuilder设计Swing程序
Swing程序表示Java的客户端窗体程序,除了通过手动编写代码的方式设计Swing程序之外,Eclipse中还提供了一种WindowBuilder工具,该工具是一种非常好用的Swing可视化开发工具 ...
- 移动web——bootstrap如何修改原组件
基本介绍 1.bootstrap提供了丰富的组件,但是有时候我们不仅要删除不必要的标签,还需要修改里面的样式 2.我们建议若是修改样式那么最好将源样式从css中拷贝出来,名字换掉,然后修改具体样式,这 ...
- 关于Python中的classmethod
Python 中的 classmethod classmethod: 作用是直接将自己的类对象,传给类方法. 一.classmethod 1)不用classmethod的时候 你的代码可能是这样写的, ...
- js >> 右移操作符
十进制 十六进制 二进制 右移>> 十进制值 F 1F FF
- vs Could Not Connect
解决, 在win7上卸载IIS 10.0 Express ,安装 IIS7.5 Express
- 转载:python 日期,季度,年份
# 这个data_matrix[:,dimen] <= thresh_val 内标会返回data_matrix当中的值符合条件的,返回为True # ret_array 中就会返回 下标为Tru ...
- P1352 没有上司的舞会——树形DP入门
P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...
- String s="a"+"b"+"c"+"d";创建了几个对象?
对于如下代码: package reviewTest; /** * @ClassName: StringTest * @Description: 测试String的字符串相加优化 * @author ...
- Django基础配置
安装djangopip install Django==1.11.4进入pythonimport django查看版本号django.get_version()创建项目,在合适位置创建一个目录进入你要 ...
- Django REST framework - 认证
目录 认证 DRF 5种验证方式 如何确定身份验证? 设置身份验证方案 案例: 基于自定义Token认证 第一步: 定义一个用户表和一个保存用户Token的表 第二步: 定义一个登陆视图 第三步定义一 ...