mysql查询语句

DataBase数据库 简称 DB

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数据库也是一种软件


可以动态的对数据库软件创建数据库,进行修改和查询


常用的数据库
1、MySQL数据库  
2、oracle数据库 
3、SqlServer数据库
4、DB2数据库    用于银行较多


数据库的安装



mysql 一步一步安装就行了
oracle的安装注意:安装出错,就要重新安装系统


一般的数据库软件都有对应的客服端,通过客服端来操作数据库


mysql的常用客户端: Navicat 
oracle的常用客服端 :sqldeveloper




数据库软件安装后的启动:


我的电脑>右键  管理 服务和应用程序  服务 找到对应数据库的服务


1.MySQL数据库的服务:
1、开启mysql的服务 : 开始--运行--输入 net start  MySQL
2、关闭mysql的服务 : 开始--运行--输入 net stop  MySQL 
mysql的几个命令:
1、show database: 显示所有的数据库
2、use databasename:使用某个数据库
3、show tables:显示某个数据库中的表
2、oracle数据库的服务
1、OracleDBConsoleorcl
2、OracleJobSchedulerORCL
3、OracleOraDb10g_homeliSQL*plus


修改表  创建或者删除表,索引语句
创表     create table 表名(字段名 字段类型,字段名 字段类型)
删表     drop table 表名
插入     insert  into 表名  (字段名) values("给值")
查询     select * from 表名
删除数据 delete from 表名 where 字段名= 对应的值




更新数据 update 表名 set username(字段名) = “修改的值” where 字段名 ="原来的值"


修改两个数据  用逗号隔开字段
 update  表名 set  username(字段名)=""  , sex(字段名)= 1 where id(字段名) =12


insert  into 表名 (1,2,3,) values(a,b,c,);/*插入多个数据*/  
select  name as  别称  from  表


distinct 明显的,清楚的   当所有字段名相同时 只显示一条数据  
select  distinct *from 表   


like  模糊查询 (% 代表一个 或多个)   (_1只有两个字符并且最后一个字符为1) ( _1%  至少有两个字符且第二个字符为1)


and  和or 的区别    and 同时满足条件   or 只需满足一个条件即可。


对查询结果进行排序  默认

select*from emp(表名) where 1=1 ORDER BY  sal(字段名)  desc,deptno(字段名) desc  //对两条数据排序  后面用逗号隔开,升序 asc  可以不写



SELECT avg(sal) from emp //查询该字段的平均值


SELECT max(sal) from emp //查询该字段的最大值


SELECT min(sal) from emp //查询该字段的最小值


SELECT sum(sal) from emp //查询该字段的和


SELECT count(sal) from emp//查询该字段的个数


分组函数不能用在where 条件中,只能用在select后面


select col1,col2,col3   from 表名 where 条件 group by column


select col1,col2,col3   from 表名 where 条件 group by col1,col2,col3




连表语句  (需要什么查什么)

连接两个表
select  e.empno,e.ename,e.sal,e.deptno,d.dname,d.loc  from emp e inner join  dept d on e.deptno = d.deptno


SELECT e.*,d.* from  emp e,dept d where e.deptno = d.deptno


   

分页 
1.mysql 利用关键字limit


2.SqlServer:利用关键字 top


3.oracle:利用关键字 rownum
select * from 表 order by 
格式 
第一个参数从0 开始  
第二个参数查询条数

SELECT *  from   emp  ORDER BY empno  limit  4,5  /*分页*/

下面附上一些sql查询的笔记


SELECT * from dept

select*from emp where 1=1 ORDER BY  sal desc,deptno desc

SELECT ename,lower(ename) xin from emp

SELECT ename,upper(ename) xin from emp where empno=7902

SELECT concat(empno,ename) xin from emp  // 连接两个字段

SELECT LENGTH(empno) from emp
SELECT ename,substr(ename,2,1) from emp

SELECT * from emp where lower(substr(ename,length(ename)-1,2))='th'




SELECT  ROUND(3.154,2)from emp
SELECT distinct ROUND(3.154,2)from emp

select round(31.45,-1) from emp

SELECT avg(sal) from emp



SELECT sal from  emp WHERE sal>(SELECT avg(sal)from emp)


SELECT max(sal) from emp 

SELECT min(sal) from emp 

SELECT sum(sal) from emp 

SELECT count(sal) from emp  



select deptno,avg(sal) from emp GROUP BY deptno

select  e.empno,e.ename,e.sal,e.deptno,d.dname,d.loc  from emp e inner join  dept d on e.deptno = d.deptno

SELECT e.*,d.* from  emp e,dept d where e.deptno = d.deptno 
 

SELECT deptno 部门编号 ,sum(sal),count(ename) 部门人数  from  emp GROUP BY deptno

SELECT d.dname, e.deptno,sum(sal) from emp  e inner join dept d on e.deptno = d.deptno GROUP BY e.deptno

SELECT d.dname ,d.deptno,SUM(sal)  from emp e ,dept d where  e.deptno = d.deptno GROUP BY d.deptno

select now() from dept/* now()获取服务器上的时间 */

SELECT  xin.*,d.dname from  (SELECT e.deptno ,sum(sal) from emp e GROUP BY e.deptno) xin INNER JOIN dept d on xin.deptno = d.deptno  GROUP BY d.deptno
/*

*/select xin.平均工资,xin.总工资,d.dname from 
(SELECT e.deptno,avg(sal) 平均工资,sum(sal) 总工资,count(ename) cc from emp e GROUP BY e.deptno) xin ,dept d WHERE xin.deptno = d.deptno

select  deptno,avg(sal) avg_sal from  emp  GROUP BY deptno HAVING /*having 是过滤*/ /*avg_sal>2000 avg_sal<2500*/ avg_sal BETWEEN 2000 and 2500

SELECT * from emp

SELECT *  from   emp  ORDER BY empno  limit  4,5  /*分页*/


/*  查询empno 7900~7903   */
select  *from emp  where  empno = 7900  or empno = 7901 or empno = 7902 /*     */
SELECT *from  emp  where  empno  BETWEEN   7900 and  7903 /*  针对此表  BETWEEN and 查的是一个区间范围的所有数
   */

select  * from emp where  empno in  (7900,7901,7902)/*     */

select  e.empno,e.ename,e.sal,e.deptno,d.dname,d.loc  from emp e inner join  dept d on e.deptno = d.deptno
SELECT e.*,d.* from  emp e,dept d where e.deptno = d.deptno





                                           



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值