数据库第三章

时间:2024-11-21 10:09:58

查找mysql的data目录的位置,使用命令:

show variables like 'datadir';

select * from department d join employee e on d.dep_id = e.dep_id;

select * from department d,employee e where d.dep_id=e.dep_id;

select d.dep_id,tele,fax,emp_id,sex from department d,employee e where d.dep_id=e.dep_id;

select d.dep_id,tele,fax,emp_id,sex from department d,employee e where d.dep_id=e.dep_id and prof ='高级' and depname = '技术部';

 select * from employee where prof='高级' and dep_id in (select dep_id from department where depname = '技术部');

select emp_id,empname,avg(sfgz) from employee join salary on employee.emp_id = salary.emp_id where avg(sfzg)>4000;

ERROR 1052 (23000): Column 'emp_id' in field list is ambiguous

Insert into 表名() values ()

Delect from 表名 where()

Update 表明 set

 --添加列:alter table 表名 add column 列名

 alter table product add column product_name_pinyin varchar(100);

alter table 表名 drop column 列名;

-- 更改列的数据类型

alter table 表名 modify column 列名 新数据类型;

-- 更改列名

alter table 表名 change 旧列名 新列名 新数据类型;

ALTER TABLE 旧表名 RENAME TO 新表名;

简单来讲,事务就是需要在同一个处理单元中执行的一系列更新处理的集合。在对表进行更新的时候有 insert into,delete,update,但是这些一般都不是单独进行的,也就是一般不会单独的插入或者赋值,而是比如先赋值,然后再删除啥的。一个事务中包含很多个更新处理。

使用事务开始语句和事务结束语句,然后将一系列 DML 语句(INSERT/UPDATE/DELETE 语句)括起来,就实现了一个事务处理。

事务开始语句在 MySQL 中是 start transaction,事务结束语句是 commit.比如以下:

START TRANSACTION;

-- 将运动T恤的销售单价降低1000日元

UPDATE Product

SET sale_price = sale_price - 1000

WHERE product_name = '运动T恤';

-- 将T恤衫的销售单价上浮1000日元

UPDATE Product

SET sale_price = sale_price + 1000

WHERE product_name = 'T恤衫';

COMMIT;

    commit 是提交事务包含的全部更新处理的结束指令,相当于文件处理中的覆盖保存。一旦提交,就无法恢复到事务开始前的状态了。因此,在提交之前一定要确认是否真的需要进行这些更新。

rollback 是取消事务包含的全部更新处理的结束指令,相当于文件处理中的放弃保存。一旦回滚,数据库就会恢复到事务开始之前的状态。通常回滚并不会像提交那样造成大规模的数据损失。

INTERSECT 是 SQL 中的一种集合操作符,用于合并两个或多个 SELECT 语句的结果,并返回它们共有的行。换句话说,INTERSECT 操作符会返回两个查询结果中都出现的记录。

EXCEPT 是 SQL 中的一种集合操作符,用于从第一个 SELECT 语句的结果中排除第二个 SELECT 语句的结果。换句话说,EXCEPT 操作符会返回在第一个查询结果中出现但不在第二个查询结果中出现的记录。