上周突然接到导师要线上讨论班的消息,几天都在沉醉在 causal inference 里面,累了累了,今天继续刷牛客的题。
在audit表上创建外键约束,其emp_no对应employees_test表的主键id
CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
CREATE TABLE audit(
EMP_no INT NOT NULL,
create_date datetime NOT NULL
);
常规问题,总结一下
对于MySQL
ALTER TABLE audit
ADD FOREIGN KEY(emp_no) REFERENCES employees_test(id)
对于SQLite
DROP TABLE audit;
CREATE TABLE audit(
EMP_no INT NOT NULL,
create_date datetime NOT NULL,
FOREIGN KEY(EMP_no) REFERENCES employees_test(ID))
DROP TABLE audit;
CREATE TABLE audit(
EMP_no INT NOT NULL REFERENCES employees_test(ID),
create_date datetime NOT NULL);
两种方法都可以
如何获取emp_v和employees有相同的数据no
原谅我没懂这道题目问的是什么意思
存在如下的视图:
create view emp_v as select * from employees where emp_no >10005;
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`));
如何获取emp_v和employees有相同的数据?
意思就是怎么获取相同的数据?
方法一
SELECT em.*
FROM employees AS em, emp_v AS ev
WHERE em.emp_no = ev.emp_no
根据条件,只对emp_no做了过滤,那么直接找emp_no一样的就行了
方法二
SELECT * FROM employees INTERSECT SELECT * FROM emp_v
用INTERSECT求两个表的交集
方法三
SELECT * FROM emp_v
直接用这个就可以了
针对库中的所有表生成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`));
输出格式:
借鉴这位大神的解答,
首先这道题需要所有的表名,在SQLite系统表中可以获得,字段name就是表的名字,对于自己创建的就是非系统表type永远是table 。
SELECT "select count(*) from " || name || ";" AS cnts
FROM sqlite_master WHERE type = 'table'
最近看了很多关于秋招的信息也听了很多学长学姐的经验哈哈
在这里默默立个flag,先放在心里,看看秋招结束会怎样哈哈哈,如果实现我就把这篇翻出来!