用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)※※※※※※※※※※※※※※