2017/11/28 实习笔记 Mysql基础
来源:互联网 发布:淘宝官方活动报名入口 编辑:程序博客网 时间:2024/06/05 21:17
DML,数据操作语言,对表记录的操作
Select * from admin;(查询student表所有数据)(DQL)
插入数据(DML)
(1) INSERT INTO 表名(列名1,列名2,...)VALUES(列值1,列值2,...);
(2) INSERT INTO 表名 VALUES(列值1,列值2,...);
(在数据库中所有的字符串类型必须使用单引号,也可以使用双引号,日期类型也要使用单引号)。
注意:命令行只认识GBK,所有插入中文,或者查询时会出现乱码问题,此时只需要在查询或者插入之前加入如下这句话就行:
修改数据
UPDATE 表名 SET 列名1 = 列值1,...[ where 条件 ];
--条件必须是一个boolean类型的表达式或者值
--运算符:=,!=,<>(就是不等于 ),>,<,>=,<=,BETWEEN...AND,
IN(...)(表示in括号里面只要有一个满足就行),IS NULL(想修改值为null的不能直接写‘=null’,必须用is null替换非空用 is not null),NOT,OR,AND。
删除数据:
DELETE FROM 表名 [ WHERE 条件 ];
查看字符集:show variables like ‘char%’;
DQL(数据查询语言)
1.基本查询:
(1)查询所有列
select * from 表名; (其中“*”表示查询所有的列)
(2)查询指定的列
select 列1[ ,列2, ... 列n ] from 表名;
(3)select distinct * 或者列1 [ ,列2,列3 ... 列n ] from 表名;
完全重复的记录只查一次
当查询结果中有一模一样的行时,只显示一行。一般出现较少,但是查询一列或者几列时可能性大。
(4)列运算
数量类型的列可以做加,减,乘,除运算。
例如: select sal*1.5 from emp;
select sal+comm from emp;
字符串类型可以做连续运算(MySQL中”+”不能作为连接符使用,所有使用如下连接)
例如:select concat( ‘$’ , sal) from emp;
转换null值
有时需要把null转换为其他值,例如comm+1000时,如果comm列存在null那么comm+null结果还是null,而其实此时我们应把null当成0来运算,如下:
select ifnull( comm,0)+1000 from emp;
其中ifnull(comm,0)代表如果comm中存在null,那么当成0来运算。
给列起别名:
有时我们查询出来的结果的列名不好看或者太长,这时我们需要给列名起个别名,这样在查询的时候就会显示别名。
例如 : select ifnull( comm,0 )+1000 as 奖金 fromemp; (其中as是可以省略的)
2.条件查询:
(1)与update,delete 语句一样,select 语句也可以使用where子句来控制记录。
例如:selectempno,ename,sal,comm from emp where sal >10000 and comm is not null;
(2)模糊查询:(like)
例如要查询姓张的,并且姓名一共两个字的时候,这就可以使用模糊查询。
select * from emp where ename like ‘ 张_’;
其中下划线可以匹配任意一个字符,但是也只是能匹配一个字符。
当然也可以用’’%’’来进行匹配。
例如 select *from emp where ename like ‘张% ’;
其中”%”可以匹配0到n个任意字符。
(3)排序:( orderby)
升序排:select *from emp order by sal asc;
表示按sal 升序排。
其中asc可以省略,因为默认为升序
使用多列进行排序:
例如:select *from emp order by sal asc ,comm desc;
(4)聚合函数
计算表中列的和:
--count :select count(*) from emp ;
查最大值:
--max : select max(sal) from emp;
查最小值:
--min : select min(sal) from emp;
查工资和:
--sum : select sum(sal) from emp;
查平均值:
--avg : select avg(sal) from emp;
(5)分组查询:(groupby)
分组查询是把记录使用某一列进行分组,然后查询信息。
例如查看所有部门的记录数
select deptno , count(*) fromemp group by deptno;
(使用deptno分组,然后查询部门编号和每个部门记录数)
select deptno , count(*) fromemp where sal >15000 group by deptno;
切记:分组前不参加分组的,我们在where里面就剔除掉了,分组后的限定条件是用聚合函数作为条件。
having子句可以让我们筛选分组后的各种数据,where子句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。
语句的关键词顺序:
select
from
where
group by
having
order by
(6)limit子句(方言)
limit 用来限定查询结果的起始行,以及总行数。
例如查询起始行为第3行,一共查5行的记录。(分页查询使用)
select * from emp limit 2,5;
数据库的备份与恢复:
1.数据库导出SQL脚本
mysqldump -u用户名 -p密码 数据库名称>生成的脚本文件路径
例如:mysqldump -uroot -proot my_test>c:/a.sql
注意:结尾不要打分号,不要登录mysql,直接在win7命令行下执行。
我们备份的是数据库里面的表和数据,所以恢复的时候是没有数据库的生成的,我们必须自己恢复到现有的数据库里面,或者新建数据库恢复。
2.执行SQL脚本
方式一:
例如:mysql-uroot -proot my_test<c:/a.sql
注意点同上。
方式二:
登录mysql
source SQL脚本路径
例如:source c:/a.sql
- 2017/11/28 实习笔记 Mysql基础
- 2017/11/27学习笔记 Mysql基础
- 实习第一天 java基础笔记
- 实习笔记:常用的几个MySQL语句
- 实习笔记
- 实习笔记
- 实习笔记
- 实习笔记
- 实习笔记
- 实习笔记
- 实习笔记
- 实习笔记
- 实习笔记
- MySql基础笔记_17-06-28
- 笔记-mysql 基础
- mysql基础笔记
- mysql 基础笔记
- mysql基础学习笔记
- C#调用C++动态库
- 2012第三届蓝桥杯 C/C++本科组真题及题解(未完待续)
- 如何在jsp页面判断网页是被安卓设备访问还是IOS设备访问
- 虚拟机安装SSH服务
- codeforces 894E
- 2017/11/28 实习笔记 Mysql基础
- 纵横直方字体设计器
- java中常量变量和部分总结一
- QT 一些非常常用的操作
- 介绍“自顶向下,逐步求精”的方法
- [13]_keil_MDK获取、安装、破解
- cocos2d-lua消除游戏实战(一)主场景和游戏场景设计
- 浮点数表示方法
- JavaScript 动画之弹性运动