mysql查询语句

来源:互联网 发布:安卓手机长截图软件 编辑:程序博客网 时间:2024/06/13 23:06
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 deptselect*from emp where 1=1 ORDER BY  sal desc,deptno descSELECT ename,lower(ename) xin from empSELECT ename,upper(ename) xin from emp where empno=7902SELECT concat(empno,ename) xin from emp  // 连接两个字段SELECT LENGTH(empno) from empSELECT ename,substr(ename,2,1) from empSELECT * from emp where lower(substr(ename,length(ename)-1,2))='th'SELECT  ROUND(3.154,2)from empSELECT distinct ROUND(3.154,2)from empselect round(31.45,-1) from empSELECT avg(sal) from empSELECT 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 deptnoselect  e.empno,e.ename,e.sal,e.deptno,d.dname,d.loc  from emp e inner join  dept d on e.deptno = d.deptnoSELECT e.*,d.* from  emp e,dept d where e.deptno = d.deptno  SELECT deptno 部门编号 ,sum(sal),count(ename) 部门人数  from  emp GROUP BY deptnoSELECT d.dname, e.deptno,sum(sal) from emp  e inner join dept d on e.deptno = d.deptno GROUP BY e.deptnoSELECT d.dname ,d.deptno,SUM(sal)  from emp e ,dept d where  e.deptno = d.deptno GROUP BY d.deptnoselect 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.deptnoselect  deptno,avg(sal) avg_sal from  emp  GROUP BY deptno HAVING /*having 是过滤*/ /*avg_sal>2000 avg_sal<2500*/ avg_sal BETWEEN 2000 and 2500SELECT * from empSELECT *  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.deptnoSELECT e.*,d.* from  emp e,dept d where e.deptno = d.deptno


                                           



原创粉丝点击