当前位置: 首页 > news >正文

康体设备网站建设nodejs可以做企业网站吗

康体设备网站建设,nodejs可以做企业网站吗,php 网站开发360,免费建商城网站哪个好文章目录 第五章 DDLDMLDQL1.DDL(Data Definition Language)数据定义语言1.1 创建数据库1.2 查询数据库1.3 删除数据库1.4 创建表1.5 修改表1.6 清除表1.7 删除表 2.DML(Data Manipulation Language)数据操作语言2.1 数据导入2.2 数据更新和删除2.3 数据导出 3.DQL(D… 文章目录 第五章 DDLDMLDQL1.DDL(Data Definition Language)数据定义语言1.1 创建数据库1.2 查询数据库1.3 删除数据库1.4 创建表1.5 修改表1.6 清除表1.7 删除表 2.DML(Data Manipulation Language)数据操作语言2.1 数据导入2.2 数据更新和删除2.3 数据导出 3.DQL(Data Query Language)数据查询语言3.1 基础语法及执行顺序3.2 基本查询3.3 分组查询3.4 联合查询3.5 排序 第五章 DDLDMLDQL 1.DDL(Data Definition Language)数据定义语言 1.1 创建数据库 1语法 CREATE DATABASE name [ [WITH] [OWNER [] dbowner] [TEMPLATE [] template] [ENCODING [] encoding] [TABLESPAC [] tablespace] [CONNECTIONE LIMIT [] connlimit ] ]CREATE DATABASE name; CREATE DATABASE是SQL命令用于创建一个新的数据库。 name是自定义的数据库名称。这个名称是必须要填写的而且在当前数据库服务器上必须是唯一的。 [WITH] [OWNER [] dbowner] 这是一个可选项。OWNER指定了新数据库的所有者。如果未指定新数据库的所有者默认是执行该命令的用户。 dbowner是数据库所有者的用户名。 [TEMPLATE [] template] 这是一个可选项。TEMPLATE指定了用户创建新数据库的模板。在PostgreSQL和GreenPlum中通常有一个名为template1的默认模板。如果不指定就会使用这个默认模板。 template是模板数据库的名称。 [ENCODING [] encoding] ENCODING指定了新数据库的字符编码。这个设置决定了数据库可以存储哪些字符。 encoding是字符编码的名称例如UTF8 [TABLESPAC [] tablespace] 这是可选项。TABLSPACE指定了新数据库的存储位置。表空间是数据库中存储文件的物理位置。 tablespace是表空间名称。 [CONNECTIONE LIMIT [] connlimit ] 这是可选项。 CONNECTON LIMIT限制了可以同时连接到数据库的最大客户端数量。 connlimit是允许的最大连接数。如果设置为-1则表示没有限制。 2创建一个数据库 create database gpdb with owner gpadmin encoding utf-8 tablespace pg_default connection limit 10; postgres# create database gpdb postgres-# with owner gpadmin postgres-# encoding utf-8 postgres-# tablespace pg_default postgres-# connection limit 10; CREATE DATABASE3创建schema schema本质上就是一个分组管理工具它允许您将相关性质或类型的多个表和其他数据库对象(如试图、索引、存储过程等)组织在一起。也可以把schema看作是数据库内部一个文件夹或命名空间用于逻辑上组织和隔离数据以实现更好数据管理和安全控制。 一个database下可以有多个schema。schema在gp中也叫做namespace。 1.连接创建完成的数据库 \c gpdb2.创建schema create schema ods; postgres# \c gpdb You are now connected to database gpdb as user gpadmin. gpdb# create schema ods; CREATE SCHEMA 1.2 查询数据库 1切换当前数据库 数据库服务器命令行操作 \c gpdb postgres# \c gpdb You are now connected to database gpdb as user gpadmin. 2显示数据库 数据库服务器命令行操作 查看所有数据库\l 查看所有schema\dn gpdb# \lList of databasesName | Owner | Encoding | Collate | Ctype | Access privileges ---------------------------------------------------------------------------gpdb | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 |gpperfmon | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 |postgres | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 |template0 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | c/gpadmin | | | | | gpadminCTc/gpadmintemplate1 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | c/gpadmin | | | | | gpadminCTc/gpadminzxy | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | (6 rows)gpdb# \dnList of schemasName | Owner ---------------------gp_toolkit | gpadminods | gpadminpublic | gpadmin (3 rows)SQL查询操作 查看所有数据库select datname from pg_database; 查看所有schemaselect schema_name from information_schema.schemata; gpdb# select datname from pg_database;datname -----------template1template0postgresgpperfmonzxygpdb (6 rows)gpdb# select schema_name from information_schema.schemata;schema_name --------------------pg_toastpg_aosegpg_bitmapindexpg_catalogpublicinformation_schemagp_toolkitods (8 rows)1.3 删除数据库 drop database会删除数据库的系统的目录并且删除包含数据的文件目录。可以使用if exists判断数据库是否存在存在则删除 drop database if exists yyds 1.4 创建表 1创建语法说明 CREATE [EXTERNAL] TABLE table_name(column1 datatype [NOT NULL] [DEFAULT] [CHECK] [UNIQUE],column2 datatype,.....columnN datatype,[PRIMARY KEY()] )[ WITH ()][LOCATION()][FORMAT][COMMENT][PARTITION BY][DISTRIBUTE BY ()]; create table 创建一个指定名字的表如果相同名字的表已经存在则抛出异常。 external external关键字可以让用户创建一个外部表在建表的同时可以指定一个指向实际数据的路径(location) not null 非空约束 default 默认值 check 为表字段添加检查约束 unique 唯一约束一个表中唯一和主键只能存在一个 primary key 主键设置可以是一个或多个列 with 可以添加数据追加方式压缩格式压缩级别行列压缩等 location 指定外部表数据存储位置 format 存储数据的文本类型 partition by 支持两种分区方式范围分区(range)和列表分区(list) distributed by 为表添加分布键其必须为主键的子键 comment 为表或列添加注释。 2内部表和外部表介绍 内部表和外部表是两种不同类型的表它们在数据存储和处理方式上有明细的区别。了解这些区别对于合理的设计和优化GP数据库非常重要。 内部表和外部表在操作和用途上的主要区别。内部表适合存储和管理数据库内的数据而外部表适用于从外部数据源临时读取数据。 内部表 数据存储内部表的数据直接存储在GP数据库的数据文件中这意味着数据被物理存储在数据库服务器上。事务管理内部表完全支持事务管理这包括ACID属性(原子性、一致性、隔离性和持久性)确保数据完整性和可靠性。索引和约束可以在内部表上创建索引和约束这有助于提高查询性能和维护数据完整性。管理和维护内部表可以使用数据库的全部管理和维护功能如备份和恢复。适用性适用于需要高性能查询和事务完整性的数据。 1) 创建内部表 gpdb# CREATE TABLE ods.test ( id SERIAL PRIMARY KEY, name VARCHAR(100)); CREATE TABLE 2) 插入数据 gpdb# INSERT INTO ods.test (name) VALUES (zxy); INSERT 0 1 gpdb# INSERT INTO ods.test (name) VALUES (zxy2); INSERT 0 1 3) 查询结果 gpdb# select * from ods.test;id | name ----------2 | zxy21 | zxy (2 rows) 外部表 数据存储外部表的数据存储在数据库外部如在文件系统、HDFS或任何可以通过SQL/MED(SQL Management of External Data)访问的数据源。外部表仅存储数据的元数据和位置信息。事务管理外部表不支持事务管理它们主要用于读取和加载操作不保证ACID属性。索引和约束由于数据实际存储在外部不能在外部表上创建索引或强制指向数据库级别的约束。管理和维护外部表的管理相对简单因为只是对外部数据源的引用。备份和恢复不适用于外部表本身而是应用于数据源。适用性适用于ETL操作即从外部数据源提取数据然后可能将其转换和加载到内部表中进一步处理。 1启动gpfdist [gpadminsdw1 ~]$ gpfdist -d /home/gpadmin/ -p 8081 -l /home/gpadmin/gpAdminLogs/gpfdist.log [1] 32322/home/gpadmin/目录下创建txt目录 1,zxy,18 2,zxy2,203mdw创建外部表 create external table ods.test2 ( id int, name varchar(100), age int ) location (gpfdist://sdw1:8081/test.txt) format text (delimiter ,);4查询外部表 zxy# select * from ods.test2;id | name | age ---------------1 | zxy | 182 | zxy2 | 20 (2 rows) 1.5 修改表 1重命名表 alter table table_name rename to new_table_name; zxy# alter table ods.test rename to test3; ALTER TABLE 2增加列 alter table table_name add column col_name column_type; zxy# alter table ods.test3 add column age int; ALTER TABLE 3修改列类型 alter table table_name alter column column_name type column_type [using column::column_type] zxy# alter table ods.test3 alter column age type varchar(20); ALTER TABLE 4删除列 alter table table_name drop column col_name; zxy# alter table ods.test3 drop column age; ALTER TABLE 1.6 清除表 truncate table table_name; zxy# truncate table ods.test3; TRUNCATE TABLE1.7 删除表 drop table table_name; zxy# drop table ods.test3; DROP TABLE2.DML(Data Manipulation Language)数据操作语言 2.1 数据导入 1向表中装在数据(copy) copy tablename from file_path delimiter 分隔符; copy表示加载数据仅追加 delimiter表示读取的数据字段之间的分隔符 1创建表 create table ods.test4 ( id int null, name varchar(10), age int null );2准备数据 1,zxy,18 2,zxy2,203导入数据 copy ods.test4 from /home/gpadmin/test.txt delimiter ,;4查询数据 zxy# select * from ods.test4;id | name | age ---------------1 | zxy | 182 | zxy2 | 20 (2 rows)2向表中插入数据(insert) insert into tablename(column1,column2...) values(....); insert into tablename select * from tablename2; 1insert into tablename(column1,column2...) values(....); zxy# insert into ods.test4 values(3,zxy3,20); INSERT 0 12insert into tablename select * from tablename2; zxy# insert into ods.test4 select * from ods.test2; INSERT 0 23查询数据 zxy# select * from ods.test4;id | name | age ---------------3 | zxy3 | 202 | zxy2 | 202 | zxy2 | 201 | zxy | 181 | zxy | 18 (5 rows) 2.2 数据更新和删除 1数据更新 update tablename set column1value1,column2value2... where [condition]; 1准备数据 zxy# select * from ods.test4 where id 1;id | name | age ---------------1 | zxy | 181 | zxy | 18 (2 rows)2修改数据 zxy# update ods.test4 set nameaaa where id 1; UPDATE 23查询数据 zxy# select * from ods.test4 where id 1;id | name | age ---------------1 | aaa | 181 | aaa | 18 (2 rows) 2数据删除 delete from tablename where [condition]; 1删除id为1的数据 zxy# delete from ods.test4 where id 1; DELETE 22查询数据 zxy# select * from ods.test4 where id 1;id | name | age --------------- (0 rows)2.3 数据导出 外部表数据无法导出。 copy tablename to filepath; 3.DQL(Data Query Language)数据查询语言 3.1 基础语法及执行顺序 SELECT [DISTINCT] colum1, column2, ... FROM table_name -- 从什么表查 [WHERE condition] -- 过滤 [GROUP BY column_list] -- 分组查询 [HAVING column_list] -- 分组后过滤 [ORDER BY column_list] -- 排序 [LIMIT number] -- 限制输出的行数3.2 基本查询 1准备数据 [gpadminmdw ~]$ cat dept.txt 10,行政部,1700 20,财务部,1800 30,教学部,1900 40,销售部,1700 50,后勤部,1800[gpadminmdw ~]$ cat emp.txt 7369,张三,研发,800.00,30 7499,李四,财务,1600.00,20 7521,王五,行政,1250.00,10 7566,赵六,销售,2975.00,40 7654,侯七,研发,1250.00,30 7698,马八,研发,2850.00,30 7782,金九,,2450.0,30 7788,银十,行政,3000.00,10 7839,小芳,销售,5000.00,40 7844,小明,销售,1500.00,40 7876,小李,行政,1100.00,10 7900,小元,讲师,950.00,30 7902,小海,行政,3000.00,10 7934,小红明,讲师,1300.00,30 7999,小八,行政,4000.00,102准备表 create table ods.dept ( deptno int, --部门编号 dname text, --部门名称 loc int --部门位置id ) ; create table ods.emp ( empno int, -- 员工编号 ename text, -- 员工姓名 job text, -- 员工岗位大数据工程师、前端工程师、java工程师 sal double precision, -- 员工薪资 deptno int -- 部门编号 ) ;3导入数据 copy ods.dept from /home/gpadmin/dept.txt delimiter ,; copy ods.emp from /home/gpadmin/emp.txt delimiter ,;1直接查询 # 使用*查询所有数据 zxy# select * from ods.dept;deptno | dname | loc ----------------------30 | 教学部 | 190020 | 财务部 | 180040 | 销售部 | 170010 | 行政部 | 1700 (4 rows)# 查询指定列 zxy# select deptno,dname from ods.dept;deptno | dname ----------------20 | 财务部40 | 销售部10 | 行政部30 | 教学部 (4 rows) 2查询取别名 # 可以使用as可以不使用 zxy# select deptno as no1,deptno no2 from ods.dept;no1 | no2 ----------20 | 2040 | 4030 | 3010 | 10 (4 rows) 3limit查询 # 1.查询并取三条数据 zxy# select * from ods.emp limit 3;empno | ename | job | sal | deptno ----------------------------------7654 | 侯七 | 研发 | 1250 | 307876 | 小李 | 行政 | 1100 | 107521 | 王五 | 行政 | 1250 | 10 (3 rows)# 2.根据empno升序排序并取三条记录 zxy# select * from ods.emp order by empno limit 3;empno | ename | job | sal | deptno ----------------------------------7369 | 张三 | 研发 | 800 | 307499 | 李四 | 财务 | 1600 | 207521 | 王五 | 行政 | 1250 | 10 (3 rows)# 3.根据empno升序排序从第3行开始取3条数据 zxy# select * from ods.emp order by empno limit 3 offset 2;empno | ename | job | sal | deptno ----------------------------------7521 | 王五 | 行政 | 1250 | 107566 | 赵六 | 销售 | 2975 | 407654 | 侯七 | 研发 | 1250 | 30 (3 rows) 4条件查询 zxy# select * from ods.emp where ename 王五;empno | ename | job | sal | deptno ----------------------------------7521 | 王五 | 行政 | 1250 | 10 (1 row) 5关系运算符 操作符支持的数据类型描述AB基本数据类型如果A等于B则返回true反之返回falseAB基本数据类型如果A和B都为null则返回true如果一边为null返回falseAB, A!B基本数据类型A或者B为null则返回null如果A不等于B则返回true反之返回falseA B基本数据类型A或者B为null则返回null如果A小于B则返回true反之返回falseAB基本数据类型A或者B为null则返回null如果A小于等于B则返回true反之返回falseAB基本数据类型A或者B为null则返回null如果A大于B则返回true反之返回falseAB基本数据类型A或者B为null则返回null如果A大于等于B则返回true反之返回falseA [not] between B and C基本数据类型如果AB或者C任一为null则结果为null。如果A的值大于等于B而且小于或等于C则结果为true反之为false。如果使用not关键字则可达到相反的效果。A is null所有数据类型如果A等于null则返回true反之返回falseA is not null所有数据类型如果A不等于null则返回true反之返回falsein(数值1数值2)所有数据类型使用 in运算显示列表中的值A [not] like Bstring 类型B是一个SQL下的简单正则表达式也叫通配符模式如果A与其匹配的话则返回true反之返回false。B的表达式说明如下‘x%’表示A必须以字母‘x’开头‘%x’表示A必须以字母‘x’结尾而‘%x%’表示A包含有字母‘x’,可以位于开头结尾或者字符串中间。如果使用not关键字则可达到相反的效果。A rlike B, A regexp Bstring 类型B是基于java的正则表达式如果A与其匹配则返回true反之返回false。匹配使用的是JDK中的正则表达式接口实现的因为正则也依据其中的规则。例如正则表达式必须和整个字符串A相匹配而不是只需与其字符串匹配。 # 1.查询sal等于1500 zxy# select * from ods.emp where sal 1500;empno | ename | job | sal | deptno ----------------------------------7844 | 小明 | 销售 | 1500 | 40 (1 row)# 2.查询sal大于等于1500 zxy# select * from ods.emp where sal 1500;empno | ename | job | sal | deptno ----------------------------------7566 | 赵六 | 销售 | 2975 | 407844 | 小明 | 销售 | 1500 | 407788 | 银十 | 行政 | 3000 | 107839 | 小芳 | 销售 | 5000 | 407499 | 李四 | 财务 | 1600 | 207698 | 马八 | 研发 | 2850 | 307782 | 金九 | | 2450 | 307902 | 小海 | 行政 | 3000 | 107999 | 小八 | 行政 | 4000 | 10(8 rows)# 3.查询sql小于1500 zxy# select * from ods.emp where sal 1500;empno | ename | job | sal | deptno -----------------------------------7521 | 王五 | 行政 | 1250 | 107900 | 小元 | 讲师 | 950 | 307369 | 张三 | 研发 | 800 | 307934 | 小红明 | 讲师 | 1300 | 307654 | 侯七 | 研发 | 1250 | 307876 | 小李 | 行政 | 1100 | 10 (6 rows)# 4.查询sal在1000和1500之间的 zxy# select * from ods.emp where sal between 1000 and 1500;empno | ename | job | sal | deptno -----------------------------------7654 | 侯七 | 研发 | 1250 | 307876 | 小李 | 行政 | 1100 | 107521 | 王五 | 行政 | 1250 | 107844 | 小明 | 销售 | 1500 | 407934 | 小红明 | 讲师 | 1300 | 30 (5 rows)# 5.查询job为null的 zxy# select * from ods.emp where job is null;empno | ename | job | sal | deptno ---------------------------------7782 | 金九 | | 2450 | 30 (1 row)# 6.通配符_查询明结尾 zxy# select * from ods.emp where ename like _明;empno | ename | job | sal | deptno ----------------------------------7844 | 小明 | 销售 | 1500 | 40 (1 row)# 7.通配符%查询明结尾 zxy# select * from ods.emp where ename like %明;empno | ename | job | sal | deptno -----------------------------------7844 | 小明 | 销售 | 1500 | 407934 | 小红明 | 讲师 | 1300 | 30 (2 rows) 6逻辑运算符 操作符含义and逻辑并or逻辑或not逻辑否 # 1.查询研发岗位工资大于1000 zxy# select * from ods.emp where job 研发 and sal 1000;empno | ename | job | sal | deptno ----------------------------------7654 | 侯七 | 研发 | 1250 | 307698 | 马八 | 研发 | 2850 | 30 (2 rows)# 2.查询研发岗位或者工资大于1000 zxy# select * from ods.emp where job 研发 or sal 1000;empno | ename | job | sal | deptno -----------------------------------7654 | 侯七 | 研发 | 1250 | 307876 | 小李 | 行政 | 1100 | 107521 | 王五 | 行政 | 1250 | 107566 | 赵六 | 销售 | 2975 | 407844 | 小明 | 销售 | 1500 | 407788 | 银十 | 行政 | 3000 | 107839 | 小芳 | 销售 | 5000 | 407369 | 张三 | 研发 | 800 | 307499 | 李四 | 财务 | 1600 | 207698 | 马八 | 研发 | 2850 | 307902 | 小海 | 行政 | 3000 | 107934 | 小红明 | 讲师 | 1300 | 307782 | 金九 | | 2450 | 307999 | 小八 | 行政 | 4000 | 10 (13 rows)# 3.查询岗位不是研发行政的 zxy# select * from ods.emp where job not in (研发,行政);empno | ename | job | sal | deptno -----------------------------------7839 | 小芳 | 销售 | 5000 | 407566 | 赵六 | 销售 | 2975 | 407844 | 小明 | 销售 | 1500 | 407900 | 小元 | 讲师 | 950 | 307499 | 李四 | 财务 | 1600 | 207934 | 小红明 | 讲师 | 1300 | 30 (6 rows) 7聚合函数 聚合函数含义count()表示统计行数max()求最大值不含null除非所有值都是nullmin()求最小值不包含null除非所有值都是nullsum()求和不包含nullavg()求平均值不包含null # 统计emp表有多少条数据最大sal、最小sal、sal合计、sal平均值 zxy# select count(*),max(sal) max_sal,min(sal) min_sal,sum(sal) sum_sal,avg(sal) avg_sal from ods.emp;count | max_sal | min_sal | sum_sal | avg_sal ----------------------------------------------------14 | 5000 | 800 | 29025 | 2073.21428571429 (1 row) 3.3 分组查询 1Group By语句 Group By语句通常会和聚合函数一起使用按照一个或者多个列对结果进行分组然后执行对应的聚合操作。查询时如果使用Group BY那么Select查询的字段只能包括Group By后的字段。 # 1.查看各岗位总工资多少 zxy# select job,sum(sal) sal from ods.emp group by job;job | sal ------------行政 | 8350讲师 | 2250| 2450销售 | 9475研发 | 4900财务 | 1600 (6 rows)# 2.查看各岗位最大工资、最小工资、平均工资 zxy# select job,max(sal),min(sal),avg(sal) from ods.emp group by job;job | max | min | avg ------------------------------------销售 | 5000 | 1500 | 3158.33333333333研发 | 2850 | 800 | 1633.33333333333财务 | 1600 | 1600 | 1600行政 | 3000 | 1100 | 2087.5讲师 | 1300 | 950 | 1125| 2450 | 2450 | 2450 (6 rows) 2Having语句 where后面不能跟分组聚合函数而having后面可以且只能使用分组聚合函数不可以使用聚合函数的别名。 having只用于group by分组统计语句。 # 1.查询岗位人数大于3的岗位 zxy# select job,count(*) from ods.emp group by job having count(*) 3;job | count -------------行政 | 4 (1 row)3.4 联合查询 1等值JSON 只有两个表中都符合条件的数据才能保留下来 查询行政部有哪些人 select * from ods.dept join ods.emp on dept.deptno emp.deptno where dept.dname 行政部;zxy# select * zxy-# from ods.dept zxy-# join ods.emp on dept.deptno emp.deptno zxy-# where dept.dname 行政部;deptno | dname | loc | empno | ename | job | sal | deptno --------------------------------------------------------10 | 行政部 | 1700 | 7521 | 王五 | 行政 | 1250 | 1010 | 行政部 | 1700 | 7788 | 银十 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7902 | 小海 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7876 | 小李 | 行政 | 1100 | 10 (4 rows)2内连接 只有两个表中都符合条件的数据才能保留下来默认的join即为inner join内连接。 查询行政部有哪些人 select * from ods.dept join ods.emp on dept.deptno emp.deptno where dept.dname 行政部;zxy# select * zxy-# from ods.dept zxy-# join ods.emp on dept.deptno emp.deptno zxy-# where dept.dname 行政部;deptno | dname | loc | empno | ename | job | sal | deptno --------------------------------------------------------10 | 行政部 | 1700 | 7521 | 王五 | 行政 | 1250 | 1010 | 行政部 | 1700 | 7788 | 银十 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7902 | 小海 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7876 | 小李 | 行政 | 1100 | 1010 | 行政部 | 1700 | 7999 | 小八 | 行政 | 4000 | 10(4 rows)3左外连接 左外连接left join操作符左边的所有记录将会返回右表匹配不到的返回空。 select * from ods.dept left join ods.emp on dept.deptno emp.deptno where dept.dname 后勤部;zxy# select * zxy-# from ods.dept zxy-# left join ods.emp on dept.deptno emp.deptno zxy-# where dept.dname 后勤部;deptno | dname | loc | empno | ename | job | sal | deptno ------------------------------------------------------50 | 后勤部 | 1800 | | | | | (1 row) 4右外连接 右外连接right join操作符右边的所有记录返回左边匹配不到的为空。 select * from ods.emp right join ods.dept on emp.deptno dept.deptno where dept.dname 后勤部;zxy# select * zxy-# from ods.emp zxy-# right join ods.dept on emp.deptno dept.deptno zxy-# where dept.dname 后勤部;empno | ename | job | sal | deptno | deptno | dname | loc ------------------------------------------------------| | | | | 50 | 后勤部 | 1800 (1 row) 5全连接 全连接full join操作符返回两个表中所有数据如果有不符合条件的返回空。 select * from ods.dept full join ods.emp on dept.deptno emp.deptno;zxy# select * zxy-# from ods.dept zxy-# full join ods.emp on dept.deptno emp.deptno;deptno | dname | loc | empno | ename | job | sal | deptno ---------------------------------------------------------10 | 行政部 | 1700 | 7788 | 银十 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7902 | 小海 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7521 | 王五 | 行政 | 1250 | 1010 | 行政部 | 1700 | 7876 | 小李 | 行政 | 1100 | 1010 | 行政部 | 1700 | 7999 | 小八 | 行政 | 4000 | 1030 | 教学部 | 1900 | 7369 | 张三 | 研发 | 800 | 3030 | 教学部 | 1900 | 7698 | 马八 | 研发 | 2850 | 3030 | 教学部 | 1900 | 7934 | 小红明 | 讲师 | 1300 | 3030 | 教学部 | 1900 | 7782 | 金九 | | 2450 | 3030 | 教学部 | 1900 | 7900 | 小元 | 讲师 | 950 | 3030 | 教学部 | 1900 | 7654 | 侯七 | 研发 | 1250 | 3020 | 财务部 | 1800 | 7499 | 李四 | 财务 | 1600 | 2040 | 销售部 | 1700 | 7844 | 小明 | 销售 | 1500 | 4040 | 销售部 | 1700 | 7839 | 小芳 | 销售 | 5000 | 4040 | 销售部 | 1700 | 7566 | 赵六 | 销售 | 2975 | 4050 | 后勤部 | 1800 | | | | | (15 rows) 6笛卡尔积 无条件关联两个表会产生笛卡尔积两边数据互相连接。 例如查询行政部笛卡尔积可以匹配到所有的员工名单 zxy# select * zxy-# from ods.dept,ods.emp zxy-# where dname 行政部;deptno | dname | loc | empno | ename | job | sal | deptno ---------------------------------------------------------10 | 行政部 | 1700 | 7521 | 王五 | 行政 | 1250 | 1010 | 行政部 | 1700 | 7566 | 赵六 | 销售 | 2975 | 4010 | 行政部 | 1700 | 7844 | 小明 | 销售 | 1500 | 4010 | 行政部 | 1700 | 7900 | 小元 | 讲师 | 950 | 3010 | 行政部 | 1700 | 7788 | 银十 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7839 | 小芳 | 销售 | 5000 | 4010 | 行政部 | 1700 | 7654 | 侯七 | 研发 | 1250 | 3010 | 行政部 | 1700 | 7876 | 小李 | 行政 | 1100 | 1010 | 行政部 | 1700 | 7369 | 张三 | 研发 | 800 | 3010 | 行政部 | 1700 | 7499 | 李四 | 财务 | 1600 | 2010 | 行政部 | 1700 | 7698 | 马八 | 研发 | 2850 | 3010 | 行政部 | 1700 | 7902 | 小海 | 行政 | 3000 | 1010 | 行政部 | 1700 | 7934 | 小红明 | 讲师 | 1300 | 3010 | 行政部 | 1700 | 7782 | 金九 | | 2450 | 3010 | 行政部 | 1700 | 7999 | 小八 | 行政 | 4000 | 10 (14 rows) 7联合查询 union 和 union all都是上下拼接SQL的结果union会去重union all不去重。 # 1.union all不去重 zxy# select empno,ename from ods.emp where ename 王五 zxy-# union all select empno,ename from ods.emp where ename 王五;empno | ename --------------7521 | 王五7521 | 王五 (2 rows)# 2.union去重 zxy# select empno,ename from ods.emp where ename 王五 zxy-# union select empno,ename from ods.emp where ename 王五;empno | ename --------------7521 | 王五 (1 row)3.5 排序 Order By全局排序默认是asc升序排序可以指定desc降序排序。 # 1.默认根据deptno升序查询表 zxy# select deptno,dname,loc from ods.dept order by deptno;deptno | dname | loc ----------------------10 | 行政部 | 170020 | 财务部 | 180030 | 教学部 | 190040 | 销售部 | 170050 | 后勤部 | 1800 (5 rows)# 2.根据deptno升序查询表 zxy# select deptno,dname,loc from ods.dept order by deptno asc;deptno | dname | loc ----------------------10 | 行政部 | 170020 | 财务部 | 180030 | 教学部 | 190040 | 销售部 | 170050 | 后勤部 | 1800 (5 rows)# 3.根据deptno降序查询表 zxy# select deptno,dname,loc from ods.dept order by deptno desc;deptno | dname | loc ----------------------50 | 后勤部 | 180040 | 销售部 | 170030 | 教学部 | 190020 | 财务部 | 180010 | 行政部 | 1700 (5 rows)
http://www.zqtcl.cn/news/853334/

相关文章:

  • 做暧网站泸州公司做网站
  • 做文库类网站网站所有权 备案
  • 网站开发主要内容站长之家网站查询
  • 网站推广优化排名公司wordpress添加说说
  • 维护一个网站要多少钱企业怎么做网站
  • 怎么做兼职网站成都必去十大网红景点
  • 网站建设如何传视频教程电脑网站设计公司
  • 网站开发培训教程制作网站开发公司
  • 网站前端做报名框代码seo教育培训机构
  • 做网站要学习什么分销网站
  • 镇江市住房和城乡建设局网站常州建设网站
  • 学做美食的网站男女做暖暖到网站
  • 手机的网站建设目标刚做的网站 搜不到
  • 重庆网站建设哪里比较好呢ps怎么做网站logo
  • 网站建设五项基本原则优化关键词的公司
  • 高端网站的特点p2p网站开发的流程
  • 什么网站做外贸最好坪地网站建设公司
  • 做网站费用怎么核算没有公司 接单做网站
  • 如何建设一个优秀的电商网站wordpress注册去掉电子邮件
  • 站长工具 seo综合查询长沙高校网站制作公司
  • 杭州网站定制开发哪家好wordpress重置
  • 哈尔滨市建设安全网站火车头更新wordpress
  • 做亚马逊外国网站需要语言好吗邢台seo
  • jsp在网站开发中的优势国内哪个推广网站做的好
  • 做网站工资高吗精品资料
  • 做农业需关注什么网站热门代理项目
  • 网站开发公司营业范围照片制作视频软件app
  • 做网站怎么qq邮箱验证免费拥有wordpress
  • 校园网站建设资金来源有wordpress权重
  • 魔站网站开发wordpress 3.3.1