51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 12199|回复: 31
打印 上一主题 下一主题

[原创] SQL学习总结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-1 00:57:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
SQL学习总结:
    星期一考试了,从小到大,大大小小的考试经历不止百次了。可这次考试,心里还是有有点紧张。今晚精力旺盛,顺便理理头绪,复习复习。
    我们学习SQL课程总共4天,重点是SQL的DML(Data Manipulation Language)语句。老师说以后我们用到更多的主要就是这些语句。现在总结如下:
                    一、查询语句(SELECT)
                         1、一般用法:
                                   SELECT Column
                                   FROM Table;
                                   例1:
                                   --从员工表里,选择姓名和工资
                                   SELECT last_name, salary
                                   FROM employees;                                                
                                   例2:
                                   --从员工表里,选择姓名和邮件,并将两列数据合成一列,以"员工邮件"为列名显示
                                   SELECT last_name + ' 的电子邮件是: ' + last_name + [email=]'@testage.com'[/email] AS "员工电子邮件详细信息"
                                   FROM employees;
                         2、过滤重复行:
                                         SELECT DISTINCT Column
                                         FROM Table;
                                         例:
                                         --统计员工表里的工种分为几类
                                         SELECT DISTINCT job_id
                                         FROM employees;
                         3、增加选择条件:
                                         SELECT Column
                                         FROM Table
                                         WHERE condition;
                                         例1:
                                         --从员工表里,选择工资高于5000的员工
                                         SELECT last_name, salary
                                         FROM employees
                                         WHERE salary > 5000;
                                         例2:
                                         --从员工表里,选择工资高于5000,并且属于80号部门的员工
                                         SELECT last_name, salary, department_id
                                         FROM employees
                                         WHERE salary > 5000 AND department_id = 80;
                                         例3:
                                         --从员工表里,选择工资高于8000,或者属于80号部门的员工
                                         SELECT last_name, department_id, salary 高于8000或者属于80号部门的员工
                                         FROM employees
                                         WHERE salary > 8000 OR department_id = 80;
                                         例4:
                                         --从员工表里,选择年薪低于36000,并且没有奖金的员工信息
                                                    SELECT salary*12  年薪,  *
                                         FROM employees
                                         WHERE salary*12 < 3000*12 AND commission_pct IS NULL;
                                         例5:
                                         --从员工表里,选择工资在3000到5000之间(包含3000和5000)的员工信息
                                         SELECT *
                                         FROM employees
                                         WHERE salary BETWEEN 3000 AND 5000;
                                         例6:
                                         --从员工表里,选择属于20号部门,30号部门,80号部门的员工
                                         SELECT last_name, department_id
                                         FROM employees
                                         WHERE department_id IN(20, 30, 80);--另一种写法:WHERE department_id = 20 OR department_id = 30 OR department_id = 80;
                                         例7:
                                         --从员工表里,选择不属于20,30,80号部门的员工
                                         SELECT last_name, department_id
                                         FROM employees
                                         WHERE department_id NOT IN(20, 30, 80);
                         4、模糊查询:
                                         SELECT Column
                                         FROM Table
                                         WHERE keywords LIKE %_;
                                         例1:
                                         --从员工表里,选择姓名以B打头的所有员工信息
                                         SELECT *
                                         FROM employees
                                         WHERE last_name LIKE 'B%';
                                         例2:
                                         --从员工表里,选择姓名第二个字母是a的所有员工信息
                                         SELECT *
                                         FROM employees
                                         WHERE last_name LIKE '_a%';
                                         例3:
                                         --从员工表里,选择姓名以A或B或C打头的员工信息
                                         SELECT *
                                         FROM employees
                                         WHERE last_name LIKE '[A-C]%';
                         5、多表查询:
                                         SELECT Table1.Column, Table2.Column
                                         FROM Table1, Table2
                                         WHERE Condition;
                                         例1:
                                         --查询员工表里,所有员工所属的部门名字
                                         SELECT employees.last_name, department.department_name
                                         FROM employees, department
                                         WHERE employees.department_id = department.department_id;
                                         例2:
                                         --查询查询工资高于8000的员工所属的部门
                                         SELECT e.last_name, e.salary, d.department_name
                                         FROM employees e
                                         INNER JOIN department d
                                         ON e.salary > 8000 AND e.department_id = d.department_id;
                                         例3:
                                         --查询所有员工所属的部门,即使该员工没有被分配任何部门
                                         SELECT e.last_name, d.department_name
                                         FROM employees e
                                         LEFT OUTER JOIN department d
                                         ON e.department_id = d.department_id;
                                         例4:
                                         --查询每个部门所属的员工,即使该部门没有任何员工
                                         SELECT d.department_name, e.last_name
                                         FROM employees e
                                         RIGHT OUTER JOIN department d
                                         ON e.department_id = d.department_id;
                                         例5:
                                         --查询所有部门以及所有员工,即使该部门没有任何员工或该员工没被分配任何部门
                                         SELECT e.last_name, d.department_name
                                         FROM employees e
                                         FULL OUTER JOIN department d
                                         ON e.department_id = d.department_id;
                                         例6:
                                         --查询员工Baida的经理是谁
                                         SELECT e.last_name 雇员, m.last_name 经理
                                         FROM employees e, employees m
                                         WHERE e.manager_id = m.employee_id
                                         AND e.last_name = 'Baida';
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

该用户从未签到

32#
发表于 2010-1-4 14:52:15 | 只看该作者
学习了~sdlkfj
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2009-11-19 16:17:46 | 只看该作者
收藏了
回复 支持 反对

使用道具 举报

该用户从未签到

30#
发表于 2009-6-3 17:29:45 | 只看该作者

我也来温习

我也来温习,温故而知新。
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2009-3-24 13:47:18 | 只看该作者
很好
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2009-1-21 16:21:00 | 只看该作者
谢谢楼主的分享!收藏了。
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2008-11-4 15:24:25 | 只看该作者
很好的SQL基础知识,顶下!
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2008-11-4 02:43:42 | 只看该作者
收藏 学习:)
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2008-11-3 17:20:39 | 只看该作者
不错,支持一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2016-3-13 16:12
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    24#
    发表于 2008-11-3 14:43:30 | 只看该作者
    顶一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2008-11-3 12:24:08 | 只看该作者
    ding~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2007-7-30 10:52:23 | 只看该作者
    视图,触发器等等~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2007-7-29 11:24:42 | 只看该作者
    楼主用SQL写个 行列倒置的  存储过程吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-7-28 14:53:13 | 只看该作者
    bucuo
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-7-27 13:42:45 | 只看该作者
    这些都是最基本的SQL知识
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-7-26 16:10:52 | 只看该作者
    很常用的 SQL 语句 相当的实用! 谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-7-26 16:06:54 | 只看该作者
    顶了
    好贴!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-7-25 15:30:01 | 只看该作者
    right
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-29 12:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2007-5-14 14:52:49 | 只看该作者
    不错,记得几年前为部门的新员工整理过这些
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-5-9 09:53:15 | 只看该作者
    基本的SQL语句
    create view bbc as select * from abc ;
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 15:35 , Processed in 0.079010 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表