博客目录

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对比

  1. 都是字符串
  2. varchar根据字段长度来动态分配给其长度
  3. varchar比较智能,节省空间
  4. varchar在分配的时候要执行相关判断,效率低
  5. char不需要动态分配,效率高,但浪费空间
  6. 如果字段数据不具有伸缩性,采用char。反之采用varchar

常用数据类型解析

  • varchar(3):表示存储的数据不能超过3个字符长度
  • char(3):表示存储的数据不能超过3个字符长度
  • int(3):最大可以存储999
  • bigint:对应java中的long类型
  • double(7,2):7代表7个有效数字,2代表两个小数位
  • date:在实际开发中为了通用,所以日期类型一般不使用,采用字符串代替日期类型
  • blob:专门存储图片、声音、视频等数据。数据库表中存储一个图片很常见,但是一个大的视频是很少的,一般都是提供视频的链接地址
  • clob:可以存储比较大的文本,4G+的字符串可以存储