【382天】我愛刷題系列141(2018.02.22)

@(一隻心中無碼的程序員)專欄程序員

叨叨兩句

  1. ~

SQL習題036

1

針對庫中的全部表生成select count(*)對應的SQL語句
CREATE TABLE employees (
emp_no int(11) NOT NULL,
birth_date date NOT NULL,
first_name varchar(14) NOT NULL,
last_name varchar(16) NOT NULL,
gender char(1) NOT NULL,
hire_date date NOT NULL,
PRIMARY KEY (emp_no));
create table emp_bonus(
emp_no int not null,
recevied datetime not null,
btype smallint not null);
CREATE TABLE dept_emp (
emp_no int(11) NOT NULL,
dept_no char(4) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));sql

本題主要有如下兩個關鍵點:
一、在 SQLite 系統表 sqlite_master 中能夠得到全部表的索引,其中字段 name 是全部表的名字,並且對於本身建立的表而言,字段 type 永遠是 'table',詳情可參考:
http://blog.csdn.net/xingfeng0501/article/details/7804378

二、在 SQLite 中用 「||」 符號鏈接字符串

SELECT "select count(*) from " || name || ";" AS cnts
FROM sqlite_master WHERE type = 'table'
相關文章
相關標籤/搜索