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

sql多表查询语句命令_mysql修改表数据语句,第1张

sql多表查询语句命令_mysql修改表数据语句 例如:按照department_id查询employees(员工表)和departments(部门表)的信息。

方式一(通用型):SELECT … FROM … WHERESELECT e.last_name,e.department_id,d.department_nameFROM employees e,departments dwhere e.department_id = d.department_id方式二:SELECT … FROM … NATURAL JOIN …有局限性:会自动连接两个表中相同的列(可能有多个:department_id和manager_id)SELECT last_name,department_id,department_nameFROM employeesNATURAL JOIN departments方式三:SELECT … JOIN … USING …有局限性:好于方式二,但若多表的连接列列名不同,此法不合适SELECT last_name,department_id,department_nameFROM employeesJOIN departmentsUSING(department_id)方式四:SELECT … FROM … JOIN … ON …常用方式,较方式一,更易实现外联接(左、右、满)SELECT last_name,e.department_id,department_nameFROM employees eJOIN departments dON 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 emp2asselect last_name name,employee_id id,hire_datefrom employees;或者create table emp2asselect last_name name,employee_id id,hire_datefrom employeeswhere department_id = 80;/where 1=2;2.修改表1)增加新的列alter table emp1add(birthday date)2)修改现有的列alter table emp1modify(name varchar2(25) default ‘abc’)3)重命名现有的列alter table emp1rename column salary to sal;4)删除现有的列alter table emp1drop column birthday;3.清空表中的数据(与delete from table_name区分开)truncate table emp2;4.重命名表rename emp2 to emp3;5.删除表drop table emp3;数据处理 DML1)增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/check1.如何定义约束—在创建表的同时,添加对应属性的约束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 emp1add constaint emp1_sal_ck check(salary > 0)2.1.1对于not null来讲,不用add,需要使用modify:alter table emp1modify (salary not null)2.2 删除alter table emp1drop constaint emp1_sal_ck2.3使某一个约束失效:此约束还存在于表中,只是不起作用alter table emp1disable constraint emp1_email_uk;2.4使某一个约束激活:激活以后,此约束具有约束力alter table emp1enable constraint emp1_email_uk;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/649276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-17
下一篇 2022-04-17

发表评论

登录后才能评论

评论列表(0条)

保存