SQL基础语法

命令行下命令:

进入:mysql -uroot -p
结束当前语句:分号;  或者 g
创建数据库:create database dbname
显示当前数据库:show databases
使用某数据库:use test1
显示当前使用数据库的所有表:show tables
删除数据库:drop database test1
显示表信息:desc tablename
删除表:drop table tablename
修改表(新增字段):alter table tablename add newcolumn int(3)
删除表age字段:alter table tablename drop column age
字段改名:alter table tablename change oldname newname int(4)

增:insert into emp (ename,sal) values ('dony',1000)
删:delete from emp where eanme='dony'
改:updata emp set sal=4000 where ename='dony'
查:selet * from emp

  

特别:
distinct  将查询的结果去重
select distinct * from emp

order by 排序   asc和默认是升序   desc是降序
limit 分页  经常跟order by一起使用
limit m,n  左开右闭区间,即(m+1,n]
select * from emp order sal limit 1,3  表示查询的结果按照sal升序并查询第2到第3个

聚合:相关函数:sum(求和)  count(计数)  max(最大)  min(最小)
group by
with rollup  是否对聚合后的结果进行再汇总
having  对分类的结果再进行过滤
where 和 having的区别就在于where是聚合前过滤,而having是聚合后过滤

内外连接查询:
内连接,仅选择相互匹配记录,inner join
外连接,可以选择不匹配记录
外连接分左连接(left join)和右连接(right join)
左连接:左连接以左为主,查询的结果包含全部的左表(即使右表没有,右表记录为null)
右连接:右连接以右为主,查询的结果包含全部的右表(即使左表没有,左表记录为null)
select ename from emp left join dept on dept.deptno=emp.deptno

子查询:
查询的结果需要用到另外一个select语句,需要用到子查询(in,not in,=,!=,exists,not exists)
如果查询出来的记录数唯一,可以用=代替in

记录联合,两条语句之间加上关键字即可
union all  直接合并在一起
union       将合并的结果进行distinct去重操作

  

原文地址:https://www.cnblogs.com/winv758241/p/8549375.html