sql多表查询语句命令 mysql修改表数据语句

例如,根据department_id查询雇员(雇员表)和部门(部门表)信息。模式1(通用):从…中选择…其中选择e .姓氏,e .部门标识,d .部门名称来自员工e,部门d其中e .部门标识= d .部门标识

本文最后更新时间:  2023-03-21 05:57:55

例如,根据department_id查询雇员(雇员表)和部门(部门表)

信息。

模式1(通用):从…中选择…其中

选择e .姓氏,e .部门标识,d .部门名称

来自员工e,部门d

其中e .部门标识= d .部门标识

方法2:从…自然联接中选择…

有一些限制:两个表中的相同列将被自动连接(可能不止一个:department_id和manager_id)。

SELECT姓氏,部门标识,部门名称

来自员工

自然加入部门

模式3:选择…加入…使用…

局限性:比第二种方法好,但是如果多个表的连接列名不同,这种方法就不适合。

SELECT姓氏,部门标识,部门名称

来自员工

加入部门

使用(部门标识)

模式4:选择…从…加入…于…

普通方式比第一种方式更容易实现外连接(左、右、满)。

SELECT姓氏,e .部门标识,部门名称

来自员工e

加入部门d

e .部门标识= d .部门标识

–内部连接

1)

–等价连接

不,是等值联接。

2)

–非自连接

–自连接

–外部连接

–左外部连接、右连接、全外部连接

创建和管理表(DDL)

创建表/截断表/更改表/重命名…到/删除表..操作结束后,自动提交;因此,回滚对其操作没有影响。

1。创建一个表

1)直接创建

创建表emp1(

姓名varchar2(20),

薪资编号(8,2)默认1000,

身份证号码(4)、

雇佣日期日期

);

2)通过子查询创建

创建表emp2

如同

select姓氏姓名,员工标识id,聘用日期

来自员工;

创建表emp2

如同

select姓氏姓名,员工标识id,聘用日期

来自员工

其中department _ id = 80/其中1 = 2;

2。修改表

1)添加新列

更改表emp1

添加(生日)

2)修改现有列

更改表emp1

修改(name varchar2(25) default 'abc ')

3)重命名现有列

更改表emp1

将列salary重命名为sal

4)删除现有列

更改表emp1

降栏生日;

3。清除空表中的数据(与从table_name中删除不同)

截断表emp2

4。重命名该表

将emp2重命名为emp3

5。删除表

删除表emp3

数据处理DML

1)添加

1.1添加记录

插入到[表名](,,,,)

值(,,,,)

1.2从其他表中复制数据

插入到[表名]

选择…从[另一张桌子]

哪里…

2)改变

更新[表名]

设置…..

哪里…

3)删除

删除[表格名称]

哪里…

4)检查(最常用的数据库操作)

选择…

来自…

哪里…

分组依据…

拥有…

按…排序。

近似束

对已创建表的列属性和字段的限制。例如非空/唯一/主键/外键/检查

1。如何定义约束—创建表时添加相应属性的约束

1.1表级约束和列约束

创建表emp1(

员工id号(8位)、

工资编号(8)、

–列级约束

雇佣日期日期不为空,

部门标识号(8),

email varchar2(8)约束emp1_email_uk unique,

name varchar 2(8)constaint EMP 1 _ name _ uu不为空,

名字varchar2(8),

–表级约束

约束emp1_emp_id_pk主键(employee_id),

约束EMP 1 _ fir _ name _ uk unique(first _ name),

约束emp1_dept_id_fk外键(dept_id)引用了删除级联中的部门(department_id)

)

1.2 Only not null只能使用列级约束。其他约束有两种方式

2。添加和删除表的约束–表创建后,只能添加和删除,不能修改

2.1增加

更改表emp1

添加约束emp1_sal_ck检查(薪金& gt0)

2.1.1对于not null,需要使用modify而不是add:

更改表emp1

修改(薪资不为空)

2.2删除

更改表emp1

删除约束emp1_sal_ck

2.3使一个约束无效:这个约束仍然存在于表中,但是不起作用

更改表emp1

禁用约束emp1 _ email _ uk

2.4激活一个约束:激活后,这个约束是绑定的

更改表emp1

启用约束emp1 _ email _ uk

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。