SQL 语句的多表查询方式

例如:按照 department_id 查询 employees(员工表)和 departments(部门表) 的信息。
 方式一(通用型):
SELECT ... FROM ... WHERE SELECT e.last_name,e.department_id,d.department_name FROM employees e,departments d where e.department_id = d.department_id 方式二:SELECT ... FROM ... NATURAL JOIN ... 有局限性:会自动连接两个表中相同的列(可能有多个:department_id 和 manager_id) 
SELECT last_name,department_id,department_name FROM employees NATURAL JOIN departments 方式三:SELECT ... JOIN ... USING ... 有局限性:好于方式二,但若多表的连接列列名不同,此法不合适 
SELECT last_name,department_id,department_name FROM employees JOIN departments USING(department_id) 方式四:SELECT ... FROM ... JOIN ... ON ... 常用方式,较方式一,更易实现外联接(左、右、满) SELECT last_name,e.department_id,department_name FROM employees e JOIN departments d ON e.department_id = d.department_id --内连接 
    1)     --等值连接     --不等值连接   
  2)     --非自连接     --自连接 --外连接 --左外连接、右外连接、满外连接 创建和管理表(DDL) CRAETE TABLE /TRUNCATE TABLE /ALTER TABLE /REANME...TO/DROP TABLE ..操 作完以后,自动 commit;所以,rollback 对其操作,没有效果 1.创建表    1)直接创建    create table emp1(  name varchar2(20),  salary number(8,2)default 1000,  id number(4),  hire_date date     );    2)通过子查询的方式创建    create table emp2    as     select last_name name,employee_id id,hire_date     from employees;   或者     create table emp2     as      select last_name name,employee_id id,hire_date      from employees      where department_id = 80;/where 1=2; 2.修改表     1)增加新的列     alter table emp1     add(birthday date) 2)修改现有的列     alter table emp1     modify(name varchar2(25) default 'abc') 3)重命名现有的列     alter table emp1     rename column salary to sal; 4)删除现有的列     alter table emp1 drop column birthday; 3.清空表中的数据(与 delete from table_name 区分开)    truncate table emp2; 4.重命名表    rename emp2 to emp3; 5.删除表    drop table emp3; 数据处理  DML 1)增     1.1 增添一条记录    insert into  [表名](,,,,,)    values(,,,,,)   
  1.2 从其它表中拷贝数据    insert into [表名]    select .... from [另一个表]     where .... 2)改    update [表名]    set .....    where .... 3)删    delete from [表名]    where .... 4)查(最常用的数据库操作)    select ....    from …    where ….    group by …    having …    order by …. 约  束 对创建的表的列属性、字段进行的限制。诸如:not null/unique/primary key/foreign key/check 1.如何定义约束---在创建表的同时,添加对应属性的约束  
  1.1 表级约束 & 列级约束  create table emp1(   employee_id number(8),   salary number(8),   --列级约束   hire_date date not null,   dept_id number(8),   email varchar2(8) constraint emp1_email_uk unique,   name varchar2(8) constaint emp1_name_uu not null,   first_name varchar2(8),   --表级约束   constraint emp1_emp_id_pk primary key(employee_id),   constraint emp1_fir_name_uk unique(first_name),   constraint emp1_dept_id_fk foreign key(dept_id) references departments(department_id) ON DELETE CASCADE ) 
  1.2 只有 not null 只能使用列级约束。其他的约束两种方式皆可 2.添加和删除表的约束--在创建表以后,只能添加和删除,不能修改  2.1 添加  alter table emp1  add constaint emp1_sal_ck check(salary > 0) 2.1.1 对于 not null 来讲,不用 add,需要使用 modify:  alter table emp1  modify (salary not null) 2.2 删除  alter table emp1  drop constaint emp1_sal_ck 2.3 使某一个约束失效:此约束还存在于表中,只是不起作用  alter table emp1  disable constraint emp1_email_uk; 2.4 使某一个约束激活:激活以后,此约束具有约束力  alter table emp1  enable constraint emp1_email_uk;   

SQL 语句的多表查询方式相关推荐

  1. Apache Drill介绍-SQL语句和系统表查询

    Apache Drill介绍-SQL语句和系统表查询 Apache Drill 主要用于查询,主要关注select 和 建表语句,Drill 支持select 很标准, 这次主要介绍create语句, ...

  2. 修改 连接层_Mybatis连接池_动态sql语句_多表查询实现

    Mybatis连接池 Mybatis中的连接池Mybatis连接池提供了3种方式的配置:配置的位置:主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种 ...

  3. 操作表的SQL语句补充 、表查询关键字、多表查询

    操作表的SQL语句补充 1.修改表名 alter table 旧表名 rename 新表名; mysql> create table t1(id int primary key auto_inc ...

  4. mysql多表查询sql语句怎么写_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  5. mysql 单表 子查询_MySQL基本SQL语句之单表查询、多表查询和子查询 | 旺旺知识库...

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  6. mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...

  7. mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 1.基本语法: SELECT * FROM tb_name;//查询全部 SELECT field1,field2 FROM tb_name; //投影 SELECT [DISTINC ...

  8. 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询

    Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询 外部数据 当前项目表格数据(表名:service_info) 将外部数据转为Table表格,与servi ...

  9. mysql查询主键sql语句_MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

最新文章

  1. 双向口和准双向口操作的不同!
  2. 《高效能人士的七个习惯》
  3. 关于 sql语句的一些小优化
  4. 读《启示录》有感-----1
  5. cnn风格迁移_愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
  6. socket、listen 等函数的打电话隐喻
  7. 百科知识 STEP文件如何打开
  8. 利用客户端cookie保存用户信息
  9. springboot不返回指定的字段(隐藏字段)
  10. ftp服务器项目,ftp服务器项目手册.doc
  11. debian 11修改ip地址的方法
  12. Centos7__CA认证
  13. CMake 常用方法
  14. QML类型:Emitter、TrailEmitter
  15. android 分屏模式适配,安卓适配分屏注意事项
  16. Hive数据连接与函数(2)
  17. 【表白神器】Python超火隐藏表白图 你能看出来吗?【附源码】
  18. kubernetes资源--secret和ServiceAccount
  19. 视频教程-SpringBoot+MongoDB+Vue前后分离-Java
  20. 最新条码标签软件 BarTender 2022 R1

热门文章

  1. Java实现画图软件(Swing)
  2. iconic 安装和使用
  3. JavaWeb 项目案例(新能源汽车动力电池信息)
  4. 读书笔记16 《傅雷家书》 傅雷傅敏
  5. 天气显示服务器不可用,Windows7系统小工具天气不显示提示所在的地区无法使用服务...
  6. 【内部技术分享PPT】漫谈 RabbitMQ 消息可靠性
  7. Nginx那些事儿2
  8. 【转】经典!python中使用xlrd、xlwt操作excel表格详解
  9. 计算机英语对照,计算机专业英语对照.doc
  10. 专色油墨配色同色异谱怎么办?