mysql数据库学习(1)

xiaoxiao2021-02-28  124

复习一下数据库的知识,虽然看了不少视频,基本的东西也懂一点,但是觉得还是对着书巩固一下为好。

增加字段名 : mysql> alter table user add column age int(3); add replace drop(attation no delete) 改变字段:alter table user change age age4 int(4); 基本的语句太多了 mysql -uroot -ppassowrd show databases; use databasesname; show table;\ desc tablename; create table tablename{ ...... } ......

DML语句使我们常用的语句需要重点掌握

去重

有时需要将表中的记录去掉重复后显示出来,可以用 distinct 关键字来实现: mysql> select ename,hiredate,sal,deptno from emp; +--------+------------+---------+--------+ | ename | hiredate | sal | deptno | +--------+------------+---------+--------+ | zzx | 2000-01-01 | 2000.00 | 1 | | lisa | 2003-02-01 | 4000.00 | 2 | | bjguan | 2004-04-02 | 5000.00 | 1 | +--------+------------+---------+--------+ 3 rows in set (0.00 sec) mysql> select distinct deptno from emp; +--------+ | deptno | +--------+ | 1 | | 2 | +--------+ 2 rows in set (0.00 sec)

条件查询: 关键字为where

select * from user where id =1;

排序 我们经常会有这样的需求,取出按照某个字段进行排序后的记录结果集,这就用到了数据库 的排序操作,用关键字 ORDER BY 来实现,语法如下: SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],……fieldn [DESC|ASC]] 其中,DESC 和 ASC 是排序顺序关键字,DESC 表示按照字段进行降序排列,ASC 则表示升序 排列,如果不写此关键字默认是升序排列。ORDER BY 后面可以跟多个不同的排序字段,并 且每个排序字段可以有不同的排序顺序。

把 emp 表中的记录按照工资高低进行显示: mysql> select * from emp order by sal; +--------+------------+---------+--------+ | ename | hiredate | sal | deptno | +--------+------------+---------+--------+ | zzx | 2000-01-01 | 2000.00 | 1 | | bzshen | 2005-04-01 | 3000.00 | 3 | | lisa | 2003-02-01 | 4000.00 | 2 | | bjguan | 2004-04-02 | 5000.00 | 1 | +--------+------------+---------+--------+ 4 rows in set (0.00 sec)

聚合:

对其参数进行以下说明。  fun_name 表示要做的聚合操作,也就是聚合函数,常用的有 sum(求和)、count(*)(记 录数)、max(最大值)、min(最小值)。  GROUP BY 关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门 就应该写在 group by 后面。  WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总。  HAVING 关键字表示对分类后的结果再进行条件的过滤。 注意:having 和 where 的区别在于 having 是对聚合后的结果进行条件的过滤,而 where 是在聚 合前就对记录进行过滤,如果逻辑允许,我们尽可能用 where 先过滤记录,这样因为结果 集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用 having 进行再过滤。

表连接:

外连接有分为左连接和右连接,具体定义如下。  左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录  右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录

mysql> select ename,deptname from emp left join dept on emp.deptno=dept.deptno;
转载请注明原文地址: https://www.6miu.com/read-42695.html

最新回复(0)