SQL语句分类:
DDL:数据定义语言,用来定义数据库对象:库、表、列等
DML:数据操作语言,用来定义数据库中数据的增删改
DCL:数据控制语言,用来定义访问权限和安全级别
DQL:数据查询语言,用来查询数据
MySQL语句不区分大小写,不见分号;不执行
查看MySQL有哪些数据库
show databases;
使用某个数据库
use databases;
创建数据库
create databases 数据库名;
删除数据库
drop database 数据库名;
查看所有数据库
show databases;
查看数据库下有哪些表?
show tables from 数据库名;
查看当前使用的是哪个数据库
select databse();
修改表结构
增加一列
alter table 表名 add 列名 数据类型;
修改列名
alter table 表名 旧列名 新列名 数据类型;
删除列
alter table 表名 drop 列名;
修改表名
alter table 表名 rename 新表名;
复制表结构
create table 新表名 like 旧表名;
复制表结构+内容
create table 新表名 select * from 旧表名;
不看表中数据,只看表结构
desc 表名
简单查询
select 字段名 from 表名;
查询两个或多个字段(中间用逗号,隔开)
select name,sal from emp;
给查询的列起别名(as 关键字或者空格)
只是将显示的查询结果修改,原列名不变,select永远不会进行修改操作,只负责查询
select sal*12 as yearSal from emp;
select sal*12 yearSal from emp;
假设别名里有空格(用单引号' ' 括起来 '别 名')
注意:在所有的数据库当中,字符转统一用单引号括起来,单引号是标准。双引号在Oracle数据库中用不了,但是在MySQL可以使用
字段可以进行加减乘除运算
不等于 !=或者<>
在....之间
between...and... 包括两端的值,闭区间
查询某字段为null的元素 is null
查询某字段不为null的元素 is not null
and和or同时出现:
and优先级较高,如果让or先执行,加()
in包含(相当于多个or) in不是区间,是具体的值
查询工作岗位是A和B的员工
select * from emp where job = 'A' or job = 'B';
=select * from emp where job in ('A','B');
模糊查询
%表示任意多个字符
_表示任意一个字符
找出名字中带有A的
select name from emp where name like '%A%';
找出名字第二个是A的
select name from emp where name like '_A%';
排序order by
asc 升序 desc降序
查询员工名字和薪资,工资按升序排,若工资一样,按名字升序排
select name,sal from emp order by sal asc,name sac; sal在前起主导,当相等时才后面name
找出工资在1250-3000之间的员,工资按降序排列
select name,sal from emp where sal between 1250 and 3000 order by sal desc;
单行处理函数
转换小写 lower()
转换大写upper()
取子串substr(被截取字符串,开始下标,截取长度) 开始下标从1开始
取长度length()
去空格trim()
四舍五入round(数,0) 0保留整数 1保留1位小数 2保留两位小数 -1十分位
随机数rand()
null只要参数运算,最终结果一定为null,为了避免这个现象,需要使用ifnull函数(不同列之间进行运算)
ifnull函数用法(数据,被当做哪个值)
comm补助 当补助为null,指定为0
查询员工这个月工资(基本工资+补助)
select name,sal+ifnull(comm,0) from emp;
case...when...then...when...then...else...end
当员工岗位为A时,工资上调10%,当员岗位为B时,工资上调50%,其他正常
select name,job,sal as oidSal,(case job when 'A' then sal*1.1 when 'B' then sal*1.5 else sal end)as new Sal from emp;
分组函数(多行处理函数)
多行处理函数特点:输入多行,最终会输出一行
count()计数
sum()求和
avg()平均值
max()最大值
min()最小值