MYSQL你入门了吗?你还记得modify、insert等语句吗?快来看看吧,别再挠头发了
古人言:对于一个程序员来说,只要学会的增删改查,其他还会远吗?话不多说,用硬核知识来填满你的大脑吧。再次强调,小白分享,如有内容错误请指教,计较大佬请绕路哦!
1基础使用入门级
创建数据库
test; create database
删除数据库
test; drop database
展示数据库
show database;
使用数据库
test; use
展示所有表
show tables;
创建表
mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
查看表
desc emp;
删除表
droptable emp;
修改表
alter table emp modify ename varchar(20);
增加一列
mysql>alter table emp add column age int(3);
删除一列
alter table emp drop column age;
修改某个
alter table emp change age age1 int(4);
改变字段排列顺序
alter table emp add birth date after ename;
修改字段,将其放在最前面
alter table emp modify age1 int(3) first;
改表名
alter table emp rename emp1;
2基础语句入门级
DML语句:DML操作是指对数据库中的表记录的操作,包括插入、更新、删除、查询
例题:
mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
(1)插入insert
mysql> insert into emp(ename,hiredate,sal,deptno) value('zzx1','2000-01-01','2000',1);
mysql> insert into emp value('lisa','2003-02-01','3000',2);
mysql> insert into emp(ename,sal) value('dony',1000);
mysql> insert into emp value('zzx2','2000-11-01','2040',5),('lisr','2003-02-04','3030',3);
(2)更新update
创建表dept
mysql> create table dept(deptno int(2),deptname varchar(10));
mysql> insert into dept value(1,'tech'),(2,'sale'),(5,'fin');
mysql> update emp set sal=4000
-> where ename='lisa';
修改之前:
mysql> update emp a,dept b
-> set a.sal=a.sal*b.deptno,b.deptname=a.ename
-> where a.deptno=b.deptno;
(3)删除
mysql>delete
-> from emp where ename='dony';
(3)查询select
mysql> select ename,sal
-> from emp;
i、去掉重复的后显示
mysql>select distinct deptno
-> from emp;
ii、条件查询where
mysql> select *
-> from emp
-> where 3000<sal and sal<=8000;
iii、排序和限制order by和limit
desc降序,asc升序(默认)
mysql> select *
-> from emp
-> order by sal;
mysql> select *
-> from emp
-> order by deptno,sal desc;
注:先按照deptno排序,出现相同的按照sal排序
mysql> select *
-> from emp
-> order by sal desc
-> limit 2;
iv、聚合
i、聚合函数:sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
ii、group by表示进行分类的字段
iii、with rollup可选语法,表明对分类聚合后的结果进行汇总。
iv、having关键字表示对分类后的结果再进行条件过滤。
例题:
查询emp表中统计的公司的总人数:
mysql>select count(1)
-> from emp;
mysql> select deptno,count(1)
-> from emp
-> group by deptno with rollup;
统计人数大于1人的部门
mysql> select deptno ,count(1)
-> from emp
-> group by deptno
-> having count(1)>1;
v、表连接
内连接:相匹配
外连接:不匹配
左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录,找不到匹配的也显示出来。
右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
mysql> select ename,deptname
-> from emp
-> left join dept
-> on emp.deptno=dept.deptno;
未完待续... ...