|
@@ -0,0 +1,867 @@
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CREATE DATABASE test04_emp;
|
|
|
+
|
|
|
+USE test04_emp;
|
|
|
+
|
|
|
+CREATE TABLE emp2(
|
|
|
+id INT,
|
|
|
+emp_name VARCHAR(15)
|
|
|
+);
|
|
|
+
|
|
|
+CREATE TABLE dept2(
|
|
|
+id INT,
|
|
|
+dept_name VARCHAR(15)
|
|
|
+);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE emp2
|
|
|
+ADD PRIMARY KEY(id);
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE dept2
|
|
|
+ADD PRIMARY KEY(id);
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE emp2
|
|
|
+ADD dept_id INT;
|
|
|
+
|
|
|
+DESC emp2;
|
|
|
+
|
|
|
+ALTER TABLE emp2
|
|
|
+ADD CONSTRAINT fk_emp2_deptid FOREIGN KEY (dept_id) REFERENCES dept2(id);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 字段说明 数据类型
|
|
|
+ id 书编号 INT
|
|
|
+ name 书名 VARCHAR(50)
|
|
|
+ authors 作者 VARCHAR(100)
|
|
|
+ price 价格 FLOAT
|
|
|
+ pubdate 出版日期 YEAR
|
|
|
+ note 说明 VARCHAR(100)
|
|
|
+ num 库存 INT
|
|
|
+*/
|
|
|
+
|
|
|
+USE test01_library;
|
|
|
+
|
|
|
+DESC books;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 字段说明 数据类型 主键 外键 非空 唯一 自增
|
|
|
+ id 书编号 INT(11) 是 否 是 是 是
|
|
|
+ name 书名 VARCHAR(50) 否 否 是 否 否
|
|
|
+ authors 作者 VARCHAR(100) 否 否 是 否 否
|
|
|
+ price 价格 FLOAT 否 否 是 否 否
|
|
|
+ pubdate 出版日期 YEAR 否 否 是 否 否
|
|
|
+ note 说明 VARCHAR(100) 否 否 否 否 否
|
|
|
+ num 库存 INT(11) 否 否 是 否 否
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+ADD PRIMARY KEY(id);
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY id INT AUTO_INCREMENT;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY id INT PRIMARY KEY AUTO_INCREMENT;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY name VARCHAR(50) NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY authors VARCHAR(100) NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY price FLOAT NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY pubdate YEAR NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE books
|
|
|
+MODIFY num INT NOT NULL;
|
|
|
+
|
|
|
+DESC books;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CREATE DATABASE IF NOT EXISTS test04_company;
|
|
|
+
|
|
|
+USE test04_company;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 数据类型 主键 外键 非空 唯一 自增
|
|
|
+ officeCode INT(10) 是 否 是 是 否
|
|
|
+ city VARCHAR(50) 否 否 是 否 否
|
|
|
+ address VARCHAR(50) 否 否 否 否 否
|
|
|
+ country VARCHAR(50) 否 否 是 否 否
|
|
|
+ postalCode VARCHAR(15) 否 否 否 是 否
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 数据类型 主键 外键 非空 唯一 自增
|
|
|
+ employeeNumber INT(11) 是 否 是 是 是
|
|
|
+ lastName VARCHAR(50) 否 否 是 否 否
|
|
|
+ firstName VARCHAR(50) 否 否 是 否 否
|
|
|
+ mobile VARCHAR(25) 否 否 否 是 否
|
|
|
+ officeCode INT(10) 否 是 是 否 否
|
|
|
+ jobTitle VARCHAR(50) 否 否 是 否 否
|
|
|
+ birth DATETIME 否 否 是 否 否
|
|
|
+ note VARCHAR(255) 否 否 否 否 否
|
|
|
+ sex VARCHAR(5) 否 否 否 否 否
|
|
|
+*/
|
|
|
+CREATE TABLE IF NOT EXISTS offices(
|
|
|
+officeCode INT PRIMARY KEY,
|
|
|
+city VARCHAR(50) NOT NULL,
|
|
|
+address VARCHAR(50),
|
|
|
+country VARCHAR(50) NOT NULL,
|
|
|
+postalCode VARCHAR(15) UNIQUE
|
|
|
+);
|
|
|
+
|
|
|
+DESC offices;
|
|
|
+
|
|
|
+CREATE TABLE IF NOT EXISTS employees(
|
|
|
+employeeNumber INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
+lastName VARCHAR(50) NOT NULL,
|
|
|
+firstName VARCHAR(50) NOT NULL,
|
|
|
+mobile VARCHAR(25) UNIQUE,
|
|
|
+officeCode INT NOT NULL,
|
|
|
+jobTitle VARCHAR(50) NOT NULL,
|
|
|
+birth DATETIME NOT NULL,
|
|
|
+note VARCHAR(255),
|
|
|
+sex VARCHAR(5),
|
|
|
+CONSTRAINT fk_emp_offcode FOREIGN KEY(officeCode) REFERENCES offices(officeCode)
|
|
|
+);
|
|
|
+
|
|
|
+DESC employees;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE employees
|
|
|
+MODIFY mobile VARCHAR(25) AFTER officeCode;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE employees
|
|
|
+CHANGE birth employee_birth DATETIME;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE employees
|
|
|
+MODIFY sex CHAR(1) NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE employees
|
|
|
+DROP COLUMN note;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE employees
|
|
|
+ADD favoriate_activity VARCHAR(100);
|
|
|
+
|
|
|
+
|
|
|
+RENAME TABLE employees
|
|
|
+TO employees_info;
|
|
|
+
|
|
|
+DESC employees_info;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 数据类型 主键 外键 非空 唯一 自增
|
|
|
+ c_num INT(11) 是 否 是 是 是
|
|
|
+ c_name VARCHAR(50) 否 否 否 否 否
|
|
|
+ c_contact VARCHAR(50) 否 否 否 否 否
|
|
|
+ c_city VARCHAR(50) 否 否 否 否 否
|
|
|
+ c_birth DATETIME 否 否 是 否 否
|
|
|
+*/
|
|
|
+
|
|
|
+CREATE DATABASE test04_Market;
|
|
|
+
|
|
|
+USE test04_Market;
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE customers(
|
|
|
+c_num INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
+c_name VARCHAR(50),
|
|
|
+c_contact VARCHAR(50),
|
|
|
+c_city VARCHAR(50),
|
|
|
+c_birth DATETIME NOT NULL
|
|
|
+);
|
|
|
+
|
|
|
+DESC customers;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE customers
|
|
|
+MODIFY c_contact VARCHAR(50) AFTER c_birth;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE customers
|
|
|
+MODIFY c_name VARCHAR(70);
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE customers
|
|
|
+CHANGE c_contact c_phone VARCHAR(50);
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE customers
|
|
|
+ADD COLUMN c_gender CHAR(1);
|
|
|
+
|
|
|
+
|
|
|
+RENAME TABLE customers
|
|
|
+TO customers_info;
|
|
|
+
|
|
|
+DESC customers_info;
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE customers_info
|
|
|
+DROP c_city;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 数据类型 主键 外键 非空 唯一 自增
|
|
|
+ o_num INT(11) 是 否 是 是 是
|
|
|
+ o_date DATE 否 否 否 否 否
|
|
|
+ c_id INT(11) 否 是 否 否 否
|
|
|
+*/
|
|
|
+
|
|
|
+CREATE TABLE IF NOT EXISTS orders(
|
|
|
+o_num INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
+o_date DATE,
|
|
|
+c_id INT,
|
|
|
+CONSTRAINT fk_orders_c_id FOREIGN KEY(c_id) REFERENCES customers_info(c_num)
|
|
|
+);
|
|
|
+
|
|
|
+DESC orders;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+SELECT * FROM information_schema.TABLE_CONSTRAINTS
|
|
|
+WHERE table_name = 'orders';
|
|
|
+
|
|
|
+ALTER TABLE orders
|
|
|
+DROP FOREIGN KEY fk_orders_c_id;
|
|
|
+
|
|
|
+SHOW INDEX FROM orders;
|
|
|
+
|
|
|
+ALTER TABLE orders
|
|
|
+DROP INDEX fk_orders_c_id;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 字段说明 数据类型 主键 外键 非空 唯一 自增
|
|
|
+ name 宠物名称 ARCHAR(20) 否 否 是 否 否
|
|
|
+ owner 宠物主人 ARCHAR(20) 否 否 否 否 否
|
|
|
+ species 种类 ARCHAR(20) 否 否 是 否 否
|
|
|
+ sex 性别 CHAR(1) 否 否 是 否 否
|
|
|
+ birth 出生日期 YEAR 否 否 是 否 否
|
|
|
+ death 死亡日期 TEAR 否 否 否 否 否
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ name owner species sex birth death
|
|
|
+ Fluffiy Harold cat f 2003 2010
|
|
|
+ Claws Gwen cat m 2004 NULL
|
|
|
+ Buffiy NULL dog f 2009 NULL
|
|
|
+ Fang Benny dog m 2000 NULL
|
|
|
+ Bowser Diane dog m 2003 2009
|
|
|
+ Chirpy NULL bird f 2008 NULL
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE pet(
|
|
|
+`name` VARCHAR(20) NOT NULL,
|
|
|
+`owner` VARCHAR(20),
|
|
|
+species VARCHAR(20) NOT NULL,
|
|
|
+sex CHAR(1) NOT NULL,
|
|
|
+birth YEAR NOT NULL,
|
|
|
+death YEAR
|
|
|
+);
|
|
|
+
|
|
|
+DESC pet;
|
|
|
+
|
|
|
+
|
|
|
+INSERT INTO pet(name,owner,species,sex,birth,death)
|
|
|
+VALUES('Fluffiy','Harold','cat','f','2003','2010');
|
|
|
+
|
|
|
+INSERT INTO pet VALUES
|
|
|
+('Claws','Gwen','cat','m','2004',NULL),
|
|
|
+('Buffiy',NULL,'dog','f','2009',NULL),
|
|
|
+('Fang','Benny','dog','m','2000',NULL),
|
|
|
+('Bowser','Diane','dog','m','2003',2009),
|
|
|
+('Chirpy',NULL,'bird','f','2008',NULL);
|
|
|
+
|
|
|
+SELECT * FROM pet;
|
|
|
+
|
|
|
+
|
|
|
+UPDATE pet
|
|
|
+SET owner = 'Kevin'
|
|
|
+WHERE name = 'Fang';
|
|
|
+
|
|
|
+
|
|
|
+UPDATE pet
|
|
|
+SET owner = 'Duck'
|
|
|
+WHERE owner IS NULL;
|
|
|
+
|
|
|
+
|
|
|
+DELETE FROM pet
|
|
|
+WHERE death IS NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+DELETE FROM pet;
|
|
|
+
|
|
|
+SELECT * FROM pet;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CREATE DATABASE IF NOT EXISTS test_company;
|
|
|
+
|
|
|
+USE test_company;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ A、部门表(department):部门编号(depid)。部门名称(depname)。
|
|
|
+ 部门简介(depinfo);其中部门编号为主键。
|
|
|
+ B、雇员表(employee):雇员编号(empid),姓名(name),性别(sex),
|
|
|
+ 职称(title),出生日期(birthday),所在部门编号(depid);其中:
|
|
|
+ 雇员编号为主键;
|
|
|
+ 部门编号为外键,外键约束等级为(on update cascade和on delete set null);
|
|
|
+ 性别默认为男;
|
|
|
+ C、工资表(salary):雇员编号(empid),基本工资(basesalary),职务
|
|
|
+ 工资(titlesalary),扣除(deduction)。其中雇员编号为主键。
|
|
|
+*/
|
|
|
+
|
|
|
+CREATE TABLE department(
|
|
|
+depid INT,
|
|
|
+depname VARCHAR(20) NOT NULL,
|
|
|
+depinfo VARCHAR(50),
|
|
|
+PRIMARY KEY(depid)
|
|
|
+);
|
|
|
+
|
|
|
+DESC department;
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE employee(
|
|
|
+empid INT PRIMARY KEY,
|
|
|
+name VARCHAR(20) NOT NULL,
|
|
|
+sex CHAR(1) NOT NULL DEFAULT '男',
|
|
|
+title VARCHAR(15),
|
|
|
+birthday DATE NOT NULL,
|
|
|
+depid INT,
|
|
|
+CONSTRAINT fk_emp_depid FOREIGN KEY(depid) REFERENCES department(depid) ON UPDATE CASCADE ON DELETE SET NULL
|
|
|
+);
|
|
|
+
|
|
|
+DESC employee;
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE salary(
|
|
|
+empid INT PRIMARY KEY,
|
|
|
+basesalary DECIMAL(10,2),
|
|
|
+titlesalary DECIMAL(10,2),
|
|
|
+deduction DECIMAL(10,2)
|
|
|
+);
|
|
|
+
|
|
|
+DESC salary;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ALTER TABLE salary
|
|
|
+ADD CONSTRAINT fk_sal_empid FOREIGN KEY(empid) REFERENCES employee(empid) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 部门编号 部门名称 部门简介
|
|
|
+ 111 生产部 NULL
|
|
|
+ 222 销售部 NULL
|
|
|
+ 333 人事部 人力资源管理
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 雇员编号 姓名 性别 职称 出生日期 所在部门编号
|
|
|
+ 1001 张三 男 高级工程师 1975-1-1 111
|
|
|
+ 1002 李四 女 助工 1985-1-1 111
|
|
|
+ 1003 王五 男 工程师 1978-11-11 222
|
|
|
+ 1004 张六 男 工程师 1999-1-1 222
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 雇员编号 基本工资 职务工资 扣除
|
|
|
+ 1001 2200 1100 200
|
|
|
+ 1002 1200 200 NULL
|
|
|
+ 1003 2900 700 200
|
|
|
+ 1004 1950 700 150
|
|
|
+*/
|
|
|
+
|
|
|
+INSERT INTO department VALUES
|
|
|
+(111,'生产部',NULL),
|
|
|
+(222,'销售部',NULL),
|
|
|
+(333,'人事部','人力资源管理');
|
|
|
+
|
|
|
+SELECT * FROM department;
|
|
|
+
|
|
|
+
|
|
|
+INSERT INTO employee VALUES
|
|
|
+(1001,'张三',DEFAULT,'高级工程师','1975-1-1',111),
|
|
|
+(1002,'李四','女','助工','1985-1-1',111),
|
|
|
+(1003,'王五','男','工程师','1978-11-11',222),
|
|
|
+(1004,'张六',DEFAULT,'工程师','1999-1-1',222);
|
|
|
+
|
|
|
+SELECT * FROM employee;
|
|
|
+
|
|
|
+
|
|
|
+INSERT INTO salary VALUES
|
|
|
+(1001,2200,1100,200),
|
|
|
+(1002,1200,200,NULL),
|
|
|
+(1003,2900,700,200),
|
|
|
+(1004,1950,700,150);
|
|
|
+
|
|
|
+SELECT * FROM salary;
|
|
|
+
|
|
|
+
|
|
|
+SELECT emp.empid,emp.name,emp.title,dep.depname,sal.basesalary+sal.titlesalary AS '应发工资',sal.basesalary+sal.titlesalary-IFNULL(sal.deduction,0) AS '实发工资'
|
|
|
+FROM employee AS emp JOIN department dep JOIN salary AS sal
|
|
|
+ON emp.depid = dep.depid AND emp.empid = sal.empid;
|
|
|
+
|
|
|
+
|
|
|
+SELECT emp.name,sal.basesalary
|
|
|
+FROM department dep JOIN employee emp JOIN salary sal
|
|
|
+ON dep.depid = emp.depid AND emp.empid = sal.empid
|
|
|
+WHERE dep.depname = '销售部';
|
|
|
+
|
|
|
+
|
|
|
+SELECT *,YEAR(NOW())-YEAR(birthday) AS '年龄'
|
|
|
+FROM employee
|
|
|
+WHERE name LIKE '张%' AND (YEAR(NOW())-YEAR(birthday)) < 40;
|
|
|
+
|
|
|
+
|
|
|
+SELECT * FROM employee;
|
|
|
+
|
|
|
+SELECT emp.empid,emp.name,sal.basesalary,sal.titlesalary
|
|
|
+FROM employee emp JOIN salary sal
|
|
|
+ON emp.empid = sal.empid
|
|
|
+WHERE emp.sex = '男';
|
|
|
+
|
|
|
+
|
|
|
+SELECT emp.name,emp.title,dep.depname
|
|
|
+FROM department dep JOIN employee emp JOIN salary sal
|
|
|
+ON dep.depid = emp.depid AND emp.empid = sal.empid
|
|
|
+WHERE sal.basesalary < 2000;
|
|
|
+
|
|
|
+
|
|
|
+SELECT COUNT(*)
|
|
|
+FROM employee;
|
|
|
+
|
|
|
+
|
|
|
+SELECT COUNT(*)
|
|
|
+FROM department;
|
|
|
+
|
|
|
+
|
|
|
+SELECT AVG(basesalary+titlesalary) AS '平均工资',MAX(basesalary+titlesalary) AS '最高工资',MIN(basesalary+titlesalary) AS '最低工资'
|
|
|
+FROM salary;
|
|
|
+
|
|
|
+
|
|
|
+SELECT depid,AVG(basesalary+titlesalary)
|
|
|
+FROM employee JOIN salary
|
|
|
+ON employee.empid = salary.empid
|
|
|
+GROUP BY employee.depid
|
|
|
+
|
|
|
+
|
|
|
+SELECT depid,AVG(basesalary) AS avgsal
|
|
|
+FROM employee JOIN salary
|
|
|
+ON employee.empid = salary.empid
|
|
|
+GROUP BY employee.depid
|
|
|
+HAVING avgsal < 2000;
|
|
|
+
|
|
|
+
|
|
|
+SELECT emp.empid,emp.name,emp.title,basesalary,titlesalary,deduction
|
|
|
+FROM employee emp JOIN salary sal
|
|
|
+ON emp.empid = sal.empid
|
|
|
+ORDER BY emp.title ASC,basesalary ASC;
|
|
|
+
|
|
|
+
|
|
|
+SELECT empid,name,birthday,
|
|
|
+CASE WHEN YEAR(birthday) < 1980 THEN '老年'
|
|
|
+ WHEN YEAR(birthday) < 1990 THEN '中年'
|
|
|
+ ELSE '青壮年' END AS '年龄段'
|
|
|
+FROM employee;
|
|
|
+
|
|
|
+
|
|
|
+SELECT emp.*,dep.depname
|
|
|
+FROM employee emp LEFT JOIN department dep
|
|
|
+ON emp.depid = dep.depid
|
|
|
+
|
|
|
+
|
|
|
+SELECT dep.*,emp.*
|
|
|
+FROM department dep LEFT JOIN employee emp
|
|
|
+ON dep.depid = emp.depid
|
|
|
+
|
|
|
+
|
|
|
+SELECT COUNT(*)
|
|
|
+FROM employee
|
|
|
+WHERE sex = '男' AND title LIKE '%工程师%';
|
|
|
+
|
|
|
+
|
|
|
+SELECT dep.depid,emp.sex,COUNT(*),AVG(sal.basesalary)
|
|
|
+FROM department dep JOIN employee emp JOIN salary sal
|
|
|
+ON dep.depid = emp.depid AND emp.empid = sal.empid
|
|
|
+GROUP BY dep.depid,emp.sex
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CREATE DATABASE IF NOT EXISTS test_school;
|
|
|
+
|
|
|
+USE test_school;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 字段描述 数据类型 主键 外键 非空 唯一
|
|
|
+ DepNo 部门号 INT(10) 是 否 是 是
|
|
|
+ DepName 部门名称 VARCHAR(20) 否 否 是 否
|
|
|
+ DepNote 部门备注 VARCHAR(50) 否 否 否 否
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 字段名 字段描述 数据类型 主键 外键 非空 唯一
|
|
|
+ Number 教工号 INT 是 否 是 是
|
|
|
+ Name 姓名 VARCHAR(30) 否 否 是 否
|
|
|
+ Sex 性别 VARCHAR(4) 否 否 否 否
|
|
|
+ Birth 出生日期 DATE 否 否 否 否
|
|
|
+ DepNo 部门号 INT 否 是 否 否
|
|
|
+ Salary 工资 FLOAT 否 否 否 否
|
|
|
+ Address 家庭住址 VARCHAR(100) 否 否 否 否
|
|
|
+*/
|
|
|
+
|
|
|
+CREATE TABLE Department(
|
|
|
+DepNo INT(10) PRIMARY KEY,
|
|
|
+DepName VARCHAR(20) NOT NULL,
|
|
|
+DepNote VARCHAR(50)
|
|
|
+);
|
|
|
+
|
|
|
+DESC Department;
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE Teacher(
|
|
|
+Number INT PRIMARY KEY,
|
|
|
+Name VARCHAR(30) NOT NULL,
|
|
|
+Sex VARCHAR(4),
|
|
|
+Birth DATE,
|
|
|
+DepNo INT,
|
|
|
+Salary FLOAT,
|
|
|
+Address VARCHAR(100),
|
|
|
+CONSTRAINT fk_teach_depno FOREIGN KEY(DepNo) REFERENCES Department(Depno)
|
|
|
+);
|
|
|
+
|
|
|
+DESC Teacher;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ DepNo DepName DepNote
|
|
|
+ 601 软件技术系 软件技术等专业
|
|
|
+ 602 网络技术系 多媒体技术等专业
|
|
|
+ 603 艺术设计系 广告艺术设计等专业
|
|
|
+ 604 管理工程系 连锁经营管理等专业
|
|
|
+*/
|
|
|
+
|
|
|
+ Number Name Sex Birth DepNo Salary Address
|
|
|
+ 2001 Tom 女 1970-01-10 602 4500 四川省绵阳市
|
|
|
+ 2002 Lucy 男 1983-12-18 601 2500 北京市昌平区
|
|
|
+ 2003 Mike 男 1990-06-01 604 1500 重庆市渝中区
|
|
|
+ 2004 James 女 1980-10-20 602 3500 四川省成都市
|
|
|
+ 2005 Jack 男 1975-05-30 603 1200 重庆市南岸区
|
|
|
+*/
|
|
|
+
|
|
|
+INSERT INTO Department VALUES
|
|
|
+(601,'软件技术系','软件技术等专业'),
|
|
|
+(602,'网络技术系','多媒体技术等专业'),
|
|
|
+(603,'艺术设计系','广告艺术设计等专业'),
|
|
|
+(604,'管理工程系','连锁经营管理等专业');
|
|
|
+
|
|
|
+SELECT * FROM Department;
|
|
|
+
|
|
|
+
|
|
|
+INSERT INTO Teacher VALUES
|
|
|
+(2001,'Tom','女','1970-01-10',602,4500,'四川省绵阳市'),
|
|
|
+(2002,'Lucy','男','1983-12-18',601,2500,'北京市昌平区'),
|
|
|
+(2003,'Mike','男','1990-06-01',604,1500,'重庆市渝中区'),
|
|
|
+(2004,'James','女','1980-10-20',602,3500,'四川省成都阳市'),
|
|
|
+(2005,'Jack','男','1975-05-30',603,1200,'重庆市南岸区');
|
|
|
+
|
|
|
+SELECT * FROM Teacher;
|
|
|
+
|
|
|
+
|
|
|
+SELECT * FROM Teacher;
|
|
|
+
|
|
|
+
|
|
|
+SELECT teach.Number AS '教工号',dep.DepName AS '部门名称',teach.Address
|
|
|
+FROM Teacher teach LEFT JOIN Department dep
|
|
|
+ON teach.DepNo = dep.DepNo
|
|
|
+WHERE teach.Address LIKE '%北京%';
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+SELECT Number,Name,MAX(Salary)
|
|
|
+FROM Teacher
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+SELECT Number,Name
|
|
|
+FROM Teacher
|
|
|
+WHERE salary =(SELECT MAX(Salary) FROM Teacher);
|
|
|
+
|
|
|
+
|
|
|
+SELECT Number,Name
|
|
|
+FROM Teacher
|
|
|
+ORDER BY Salary DESC LIMIT 0,1;
|
|
|
+
|
|
|
+
|
|
|
+SELECT Number
|
|
|
+FROM Teacher
|
|
|
+WHERE Salary BETWEEN 2500 AND 4000;
|
|
|
+
|
|
|
+
|
|
|
+SELECT Name,Sex,Salary
|
|
|
+FROM Teacher teach JOIN Department dep
|
|
|
+ON teach.DepNo = dep.DepNo
|
|
|
+WHERE dep.DepName = '网络技术系'
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 专业 班级 姓名 性别 座位
|
|
|
+ 计算机网络 1班 张三 男 8
|
|
|
+ 软件工程 2班 李四 男 12
|
|
|
+ 计算机维护 1班 王五 男 9
|
|
|
+ 计算机网络 2班 LILY 女 15
|
|
|
+ 软件工程 1班 小强 男 20
|
|
|
+ 计算机维护 1班 CoCo 女 18
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 姓名 英语 数据 语文
|
|
|
+ 张三 65 75 98
|
|
|
+ 李四 87 45 86
|
|
|
+ 王五 98 86 65
|
|
|
+ LILY 75 86 87
|
|
|
+ 小强 85 60 58
|
|
|
+ CoCo 96 87 70
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 姓名 记录
|
|
|
+ 小强 迟到
|
|
|
+ 小强 事假
|
|
|
+ 李四 旷课
|
|
|
+ 李四 旷课
|
|
|
+ 李四 迟到
|
|
|
+ CoCo 病假
|
|
|
+ LILY 事假
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、
|
|
|
+ 年龄(Sage)、所在系(Sdept)五个字段,Sno为关键字。
|
|
|
+
|
|
|
+ 课程表(Course)由课程号(Cno)、课程名(Cname)、选修课号(Cpno)、
|
|
|
+ 学分(Ccredit)四个字段,Cno为关键字。
|
|
|
+
|
|
|
+ 成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个字段,
|
|
|
+ (Sno,Cno)为关键字。
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 表一:press出版社 属性:编号pressid(int)、名称pressname(varchar)、
|
|
|
+ 地址address(varchar)
|
|
|
+
|
|
|
+ 表二:sort种类 属性:编号sortno(int)、数量scount(int)
|
|
|
+
|
|
|
+ 表三:book图书 属性:编号bid(int)、名称bname(varchar)、
|
|
|
+ 种类bsortno(int)、出版社编号pressid(int)
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ pressid pressname address
|
|
|
+ 100 外研社 上海
|
|
|
+ 101 北大出版社 北京
|
|
|
+ 102 教育出版社 北京
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ sortno scount describes
|
|
|
+ 11 50 小说
|
|
|
+ 12 300 科幻
|
|
|
+ 13 100 神话
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ bid bname bsortno pressid
|
|
|
+ 1 红与黑 11 100
|
|
|
+ 2 幻城 12 102
|
|
|
+ 3 希腊神话 13 102
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 列名(英文名) 列名(中文名) 数据类型 允许空值 说明
|
|
|
+ Id 旅行社编号 INT NO 主键
|
|
|
+ Name 旅行社名 VARCHAR NO
|
|
|
+ Address 旅行社地址 VARCHAR NO
|
|
|
+ Areaid 所属区域id INT YES
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 列名(英文名) 列名(中文名) 数据类型 允许空值 说明
|
|
|
+ Tid 旅行线路编号 INT NO 主键
|
|
|
+ Time 所需时间 VARCHAR NO
|
|
|
+ Position 目的地 VARCHAR NO
|
|
|
+ Money 花费 FLOAT YES
|
|
|
+ Aid 所属旅行社id INT NO 外键
|
|
|
+ Count 报名人数 INT YES
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ id name address
|
|
|
+ 101 青年旅行社 北京海淀
|
|
|
+ 102 天天旅行社 天津海院
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ tid time position money aid rcount
|
|
|
+ 1 5天 八达岭 3000 101 10
|
|
|
+ 2 7天 水长城 5000 101 14
|
|
|
+ 3 8天 水长城 6000 102 11
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|