Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103068212
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-05-20 22:48:00

  来源:

    用AS关键字重新给输出结果命名标题
    mysql> select concat(emp_id," ",emp_name) as info from emp;

    查询结果如下显示:
    +----------------+
    | info       |
    +----------------+
    | 100005 啸天 |
    | 100001 红枫   |
    | 100002 丽鹃 |
    +----------------+
    3 rows in set (0.00 sec)

2.6.6 日期查询的相关

    可以通过YEAR()、MONTH()、DAYOFMONTH()函数来提取日期的组成元素

    查询7月份出生的员工资料:
    mysql> select * from emp where month(emp_bir)=7;

    查询结果显示如下:
    +--------+----------+---------+---------+------------+---------+
    | emp_id | emp_name | emp_age | emp_sal | emp_bir   | emp_sex |
    +--------+----------+---------+---------+------------+---------+
    | 100005 | 啸天   |     27 |   4000 | 1979-07-10 | male   |
    +--------+----------+---------+---------+------------+---------+
    1 row in set (0.00 sec)

  可以利用月份来查询:
  mysql> select * from emp where monthname(emp_bir)="January";

  查询结果显示如下:
  +--------+----------+---------+---------+------------+---------+
  | emp_id | emp_name | emp_age | emp_sal | emp_bir   | emp_sex |
  +--------+----------+---------+---------+------------+---------+
  | 100001 | 红枫   |     29 |   9000 | 1977-01-01 | male   |
  +--------+----------+---------+---------+------------+---------+
  1 row in set (0.00 sec)

  利用TO_DAYS()函数可以查询出职工们从出生到现在所经理的时间,单位是天数
  mysql> select to_days(current_date) - to_days(emp_bir) as livingdays from emp;

  查询后结果如下:
  +------------+
  | livingdays |
  +------------+
  |     9425 |
  |     10345 |
  |     9251 |
  +------------+
  3 rows in set (0.00 sec)

  从现在开始经历100天后的日期
  mysql> select date_add(now(),interval 100 day);

  查询结果如下:
  +----------------------------------+
  | date_add(now(),interval 100 day) |
  +----------------------------------+
  | 2005-08-07 13:56:58         |
  +----------------------------------+
  1 row in set (0.00 sec)

  计算从现在开始经历100天后的日期
  mysql> select date_sub(now(),interval 100 day);

  查询结果如下:
  +----------------------------------+
  | date_sub(now(),interval 100 day) |
  +----------------------------------+
  | 2005-01-19 14:00:20         |
  +----------------------------------+
  1 row in set (0.00 sec)

2.6.7 数据统计

    使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目)
    mysql> select count(*) from emp;

    查询结果如下:
    +----------+
    | count(*) |
    +----------+
    |     3 |
    +----------+
    1 row in set (0.01 sec)

    统计工资上5000的数目
    mysql> select count(*) from emp where emp_sal>5000;

    查询结果如下:
    +----------+
    | count(*) |
    +----------+
    |     2 |
    +----------+
    1 row in set (0.00 sec)

    统计男女职工数目:(GROUP BY语句分类)
    mysql> select emp_sex,count(*) from emp group by emp_sex;

    查询结果如下:
    +---------+----------+
    | emp_sex | count(*) |
    +---------+----------+
    | fmale   |     1 |
    | male   |     2 |
    +---------+----------+
    2 rows in set (0.01 sec)

    使用数据统计函数(MIN(),MAX(),SUM(),AVG())
    mysql> select
      -> min(emp_sal) as min_salary,
      -> max(emp_sal) as max_salary,
      -> sum(emp_sal) as sum_salary,
      -> avg(emp_sal) as avg_salary,
      -> count(*) as employee_num
      -> from emp;

    查询结果如下:
    +------------+------------+------------+------------+--------------+
    | min_salary | max_salary | sum_salary | avg_salary | employee_num |
    +------------+------------+------------+------------+--------------+
    |     4000 |     9000 |     21000 | 7000.0000 |         3 |
    +------------+------------+------------+------------+--------------+
    1 row in set (0.00 sec)

2.6.8 从多个数据表中检索信息

    根据前面的,分别进行如下操作:
    1). 在数据库asb中建立一个新表dept,表中有两项元素:
      dept_id   --> varchar(6)
      dept_name --> varchar(10)
    2). 在表emp中插入如下一行新记录:
      +--------+----------+---------+---------+------------+---------+
      | emp_id | emp_name | emp_age | emp_sal | emp_bir   | emp_sex |
      +--------+----------+---------+---------+------------+---------+
      | 100003 | 小红   |     30 |   8000 | 1976-11-11 | fmale   |
      +--------+----------+---------+---------+------------+---------+
    3). 在新表dept中,输入如下记录
      +---------+-----------+
      | dept_id | dept_name |
      +---------+-----------+
      | 100005 | MTD     |
      | 100001 | MTD     |
      | 100002 | MTD     |
      | 100003 | HR     |
      +---------+-----------+

    查询emp和dept这两个表中,员工的姓名和部门信息
    mysql> select emp.emp_name,dept.dept_name from emp,dept
      -> where emp.emp_id=dept.dept_id;

    查询结果如下:
    +----------+-----------+
    | emp_name | dept_name |
    +----------+-----------+
    | 啸天   | MTD     |
    | 红枫   | MTD     |
    | 丽鹃   | MTD     |
    | 小红   | HR     |
    +----------+-----------+
    4 rows in set (0.00 sec)

    多表查询时注意:
    1). FROM子句必须给出所查询的表的全部名称
    2). 选择字段时候注明其所属表的名称(如emp表中的emp_id要表示为emp.emp_id)
    3). 在Where子句中必须指明查询的条件(如,emp.emp_id和dept.dept_id是相同意义的元素)

----------------------我------------割--------------------------

2.7 删除表单数据

2.7.1 使用DELETE语句删除表单中的数据记录
    小红不在了哦,得删了吧
    mysql>delete from emp where emp_name='小红';

    执行成功后会如下显示:
    Query OK, 1 row affected (0.06 sec)

    省略where是删除全部表中的记录

2.7.2 使用DRO删除表
    (先随便建立一个数据库dt,并建张临时表fuck)

    mysql>drop table fuck;

2.7.3 使用DRO删除数据库
    mysql>drop database dt;

----------------------我------------割--------------------------

2.8 改变数据表的结构
  先建立一个新表id (内带一个id_name varchar(6)),输入一行数据(xgw)

2.8.1 对表重新命名
    alter table 数据表名 rename as 数据表的新名字;

    把表id改名成name
    mysql> alter table id rename as name;

2.8.2 给数据表增加一个字段
    alter table 数据表名 add 字段名称 字段类型;

    在改过名的新表name中增加一个字段(id int(6))
    mysql>alter table name add id int(6);

    增加成功后有如下显示:
    Query OK, 1 row affected (0.26 sec)
    Records: 1 Duplicates: 0 Warnings: 0

2.8.3 更改已经建立的字段类型
    alter table 数据表名 modify 字段名称 字段类型;

    把name表中id属性的类型改成10个长度的字符类型
    mysql> alter table name modify id varchar(10);


    alter talbe语句还有很多功能,具体可查阅MySQL的技术手册。

    (the questions,call me anytime! E-mail:tt981@netease.com)

  ※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※

阅读(453) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~