1.union(可以将查询结果集相加)
案例:找出岗位是SALEMAN和MANAGE的员工
第一种:select ename,job from emp where job ='MANAGE' or job 'SALEMAN' ;
第二种:select ename,job from emp where job =('MANAGE' ,'SALEMAN' );
第三种:select ename,job from emp where job ='MANAGE'
union
select ename,job from emp where job ='SALEMAN' ;
两张不相干的表中的数据拼在一起显示可用union
2.limit (分页查询靠limit,重中之重)
limit是MYSQL数据库特有的,其他数据库没有,不通用,(oracle有一个相同的机制,叫做rownum)
limit取结果集的部分数据,这是它的作用
语法机制:
limit startIndex,length
startIndex表示起始位置
length表示取几个
案例:取出工资前五名的员工(思路:降序取前五个)
select ename,sal from emp order by sal desc limit 0,5;
或者 select ename,sal from emp order by sal desc limit 5;
limit是sql语句最后执行的环节
案例:取出工资在第四到第九名的员工
select ename,sal from emp order by sal desc limit 3,6;
通用的标准分页SQL
第一页:0,3
第二页:3,3
第三页:6,3
第四页:9,3
第五页:12,3
每页显示pageSize条记录
第pageNo页:(pageNo-1)*pageSize
3.创建表:
语法格式:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
...
);
关于MYSQL当中的字段数据类型?以下只说常见的:
int 整数型(java中的int)
bigint 长整型(java中的long)
float 浮点型(java中的float double)
char 定长字符串(string)
var 可变长字符串(stringBuffer/stringBuilder)
date 日期类型(对应JAVA中的java.sql.date类型)
BLOB 二进制大对象(存储图片、视频等流媒体信息) Binary Large OBject (对应JAVA中的object)
CLOB 字符大对象(存储较大文本,比如,可以存储4G的字符串)Charater Lager Object (对应JAVA中的object)
char和varchar怎么选择?
在实际的开发中,当某个字段长度不发生改变的时候,是定长的。使用char,如性别生日。
当一个字段不确定,则使用varchar,例如名字,简介等。
4.insert插入数据:
语法格式:
insert into 表名(字段名1,字段名2,字段名3,...)values(值1,值2,值3,....)
要求:字段的数量和值数量要相同,并且数据类型要对应相同。)
使用default可以插入默认值,当一条insect执行成功的时候,表格中必然会多一条记录。即使多的这一行记录当中某些字段是NULL,后期也没有办法执行。insect语句插入数据了,只能使用update进行更新。
5.表的复制
语法:
create table 表名:as select 语句;
将查询结果当作表创建出来。
6.将查询结构插入到一张表中?
mysql>insert into dept1 select * from dept;
mysql>select * from dept1;
7.修改数据update
语法格式:
update 表名 set 字段名1=值1,字段名2=值2...where 条件;
注意:没有条件整张表数据全部更新。
案例:将部门10的LOC修改为SHANGHAI,将部门名称修改为RENSHIBU
update dept1 set loc = 'SHANGHAI' , dname = 'RENSHIBU' where deptno =10;
8.删除数据?
语法格式
delete from 条件 where 条件;
注意:没有条件全部删除
删除10部门的数据?
delete from dept1 where deptno= 10;
删除所有记录?
delete from dept1;
怎么删除大表?(重点)
turncate table emp1;//表被截断,不可回滚,永久丢失。