博客目录
1、union(合并结果集)
2、limit(获取一张表中某部分数据)
3、表——创建表、删除表
4、关于MySQL中的数据类型
一、union(合并结果集)
将两个查询结果合并(可以是不同表)
注意:MySQL要求字段数量相同
mysql> select ename,job from emp where job="clerk"
-> union
-> select ename,job from emp where job="manager";
+--------+---------+
| ename | job |
+--------+---------+
| SMITH | CLERK |
| ADAMS | CLERK |
| JAMES | CLERK |
| MILLER | CLERK |
| JONES | MANAGER |
| BLAKE | MANAGER |
| CLARK | MANAGER |
+--------+---------+
7 rows in set (0.08 sec)
二、limit(获取一张表中某部分数据)
1、limit只在MySQL中存在(不通用),MySQL特色
2、例
1、找出员工表中前5条记录
mysql> select * from emp limit 5;
+-------+--------+----------+------+------------+---------+---------+--------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
+-------+--------+----------+------+------------+---------+---------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
+-------+--------+----------+------+------------+---------+---------+--------+
5 rows in set (0.00 sec)
以上limit 5中的5代表从表中记录0开始,取5条记录,等同于下面的SQL语句
mysql> select * from emp limit 0,5;
2、找出公司中工资排名前5名员工(思路:按照工资降序排的前5个)
mysql> select ename,sal from emp order by sal desc limit 0,5;
+-------+---------+
| ename | sal |
+-------+---------+
| KING | 5000.00 |
| SCOTT | 3000.00 |
| FORD | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
5 rows in set (0.00 sec)
3、按照工资排在3-9名的员工
mysql> select ename,sal from emp order by sal desc limit 2,8;
+--------+---------+
| ename | sal |
+--------+---------+
| FORD | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| ALLEN | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
| MARTIN | 1250.00 |
+--------+---------+
8 rows in set (0.00 sec)
3、limit语法格式
limit 起始下标,长度
如果起始下标没有指定,默认从0开始,0代表表中第一条记录
4、limit实际应用————分页
以下是MySQL通用的分页SQL语句
第pageno页
mysql> select -> ename,sal -> from -> emp -> order by -> sal desc -> limit (pageno-1)*pagesize,pagesize;
三、表——创建表、删除表
给字段添加默认值:default
mysql> drop table if exists t_user;#删除表,如果t_user存在,则删除
Query OK, 0 rows affected, 1 warning (0.23 sec)
mysql> create table tableName(#表名
-> ColumnName(字段名) dataType(length)(数据类型,字段长度)
-> );
四、关于MySQL数据库中的数据类型
- varchar:可变长度字符串
- char:定长字符串
- int:整数型
- bigint:长整型
- float:浮点型(单精度)
- double:浮点型(双精度)
- date:日期类型
- blob:Binary Large Object:二进制大对象
- clob:Character Large Object:字符大对象
…….
char与varchar对比
- 都是字符串
- varchar根据字段长度来动态分配给其长度
- varchar比较智能,节省空间
- varchar在分配的时候要执行相关判断,效率低
- char不需要动态分配,效率高,但浪费空间
- 如果字段数据不具有伸缩性,采用char。反之采用varchar
常用数据类型解析
- varchar(3):表示存储的数据不能超过3个字符长度
- char(3):表示存储的数据不能超过3个字符长度
- int(3):最大可以存储999
- bigint:对应java中的long类型
- double(7,2):7代表7个有效数字,2代表两个小数位
- date:在实际开发中为了通用,所以日期类型一般不使用,采用字符串代替日期类型
- blob:专门存储图片、声音、视频等数据。数据库表中存储一个图片很常见,但是一个大的视频是很少的,一般都是提供视频的链接地址
- clob:可以存储比较大的文本,4G+的字符串可以存储