暂无图片
暂无图片
7
暂无图片
暂无图片
1
暂无图片

SQL实验操作文章指南

墨天轮 2021-10-28
28123

连接数据库

#后台数据库由 MogDB 3.0.0 赞助 su - omm #第一次进入数据库启动中...等待15秒 gsql -d postgres > \l
复制

内置Oracle/MySQL兼容包:

select * from v$version; select * from v$tablespace; \d oracle.dba_objects select count(*) from dba_tables; select * from dba_users; select count(*) from dba_sequences; select sysdate from dual; select count(*) from tab; select dbms_metadata.get_ddl('table','employees','public'); select sys_guid(); --更多请参考 https://gitee.com/enmotech/compat-tools
复制

内置Mogila样本数据集

\c mogila \dt --按长度排序列出前十电影 select film_id, title, length from film order by length desc limit 10; --列出每个电影类别中有多少部电影 select category.name, count(category.name) category_count from category left join film_category on category.category_id = film_category.category_id left join film on film_category.film_id = film.film_id group by category.name order by category_count desc; --显示按出演电影的数量排序的演员 select actor.first_name, actor.last_name, count(actor.first_name) featured_count from actor left join film_actor on actor.actor_id = film_actor.actor_id group by actor.first_name, actor.last_name order by featured_count desc; --获取所有活跃客户的列表,按其姓名排序 select first_name, last_name from customer where active = 1 order by first_name asc; --查看租DVD数量最多的客户,以及租借次数 select customer.first_name, customer.last_name, count(customer.first_name) rentals_count from customer left join rental on customer.customer_id = rental.customer_id group by customer.first_name, customer.last_name order by rentals_count desc; --查看每个出租店的总收入 select store.store_id, sum(payment.amount) as "total revenue" from store left join inventory on inventory.store_id = store.store_id left join rental on rental.inventory_id = inventory.inventory_id left join payment on payment.rental_id = rental.rental_id where payment.amount is not null group by store.store_id order by sum(payment.amount) desc; --按总收入列出前5个电影类型 select category.name, film.title, sum(payment.amount) as "gross revenue" from film left join film_category on film_category.film_id = film.film_id left join category on film_category.category_id = category.category_id left join inventory on inventory.film_id = film.film_id left join rental on rental.inventory_id = inventory.inventory_id left join payment on payment.rental_id = rental.rental_id where payment.amount is not null group by category.name, film.title order by sum(payment.amount) desc limit 5;
复制

初始化HR对象和数据

cd /var/lib/opengauss gsql -d postgres -f HR_Sample.sql gsql -d postgres > \d
复制

查询HR示例

--demo1 SELECT first_name "First", last_name "Last", SALARY "Salary", COMMISSION_PCT "%" FROM employees WHERE salary >=11000 AND commission_pct IS NOT NULL; --demo2 SELECT first_name "First", last_name "Last", salary * 12 "Annual Compensation" FROM employees WHERE commission_pct IS NOT NULL ORDER BY hire_date; --demo3 SELECT e.first_name || ' ' || e.last_name "Name", l.city || ', ' || c.country_name "Location" FROM employees e, departments d, locations l, countries c WHERE e.department_id=d.department_id AND d.location_id=l.location_id AND l.country_id=c.country_id ORDER BY last_name; --nvl2 demo SELECT first_name || ' ' || last_name "Name", NVL((commission_pct * 100), 0) "Comm Rate", NVL2(commission_pct, ROUND(salary * 12 + commission_pct * 300000, 2), salary * 12) "With $300K Sales" FROM employees WHERE job_id LIKE '%_M%' AND department_id = 80;
复制
最后修改时间:2022-07-10 01:40:58
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论