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去重操作