MySQL练习:数据库与表的操作及SQL查询

需积分: 0 1 下载量 112 浏览量 更新于2024-06-30 收藏 92KB DOCX 举报
以下是一系列关于MySQL数据库操作的题目及解答,包括创建数据库、数据表,插入、更新和删除记录,以及执行各种查询操作。 1. 创建数据库与数据表: - 要求1:创建数据库`library`,SQL语句为 `CREATE DATABASE library;` - 要求2:创建数据表`books`,具体字段未知,假设为`b_name VARCHAR(100), author VARCHAR(100), price DECIMAL(10,2), stock INT`,SQL语句为 `CREATE TABLE books (b_name VARCHAR(100), author VARCHAR(100), price DECIMAL(10,2), stock INT);` 2. 插入记录: - 2.1 指定字段插入:`INSERT INTO books (b_name, author, price, stock) VALUES ('Book1', 'Author1', 20.00, 10);` - 2.2 不指定字段插入:`INSERT INTO books VALUES ('Book2', 'Author2', 30.00, 5);` - 2.3 批量插入:假设有多条记录,可以一次性插入,例如 `INSERT INTO books VALUES ('Book3', 'Author3', 15.00, 20), ('Book4', 'Author4', 45.00, 15);` 3. 更新记录: - 要求4:将小说类型(novel)的书的价格都增加5,SQL语句为 `UPDATE books SET price = price + 5 WHERE note = 'novel';` - 要求5:将名称为EmmaT的书的价格改为40,SQL语句为 `UPDATE books SET price = 40 WHERE b_name = 'EmmaT';` 4. 删除记录: - 要求6:删除库存为0的记录,SQL语句为 `DELETE FROM books WHERE stock = 0;` 5. 查询操作: - 要求4:查询价格低于30并且库存大于10的书名,SQL语句为 `SELECT b_name FROM books WHERE price < 30 AND stock > 10;` - 要求5:查询作者名字的首字母为J的书的书名和作者,SQL语句为 `SELECT b_name, author FROM books WHERE author LIKE 'J%';` - 要求6:查询note为novel出版时间在2000年以后的书的名字,出版日期,以及库存,假设出版日期字段为`publish_date`,SQL语句为 `SELECT b_name, publish_date, stock FROM books WHERE note = 'novel' AND publish_date > '2000-01-01';` - 要求7:查询价格比Oldland低的所有书的名称,SQL语句为 `SELECT b_name FROM books WHERE price < (SELECT price FROM books WHERE b_name = 'Oldland');` 6. 数据表修改(另一个题目): - 要求1:创建数据库`Market`,SQL语句为 `CREATE DATABASE Market;` - 要求2:创建数据表`customers`,包含字段`c_num`, `c_birth`, `c_name`, `c_contact`, `c_gender`, `c_city`,并设置主键、自增和非空约束,SQL语句为: ```sql CREATE TABLE customers ( c_num INT AUTO_INCREMENT PRIMARY KEY, c_birth DATE NOT NULL, c_name VARCHAR(70), c_contact VARCHAR(50), c_gender CHAR(1), c_city VARCHAR(50) ); ``` - 要求3:调整字段顺序,SQL语句为 `ALTER TABLE customers MODIFY c_contact VARCHAR(50) AFTER c_birth;` - 要求4:修改`c_name`字段类型,SQL语句为 `ALTER TABLE customers MODIFY c_name VARCHAR(70);` - 要求5:重命名`c_contact`字段,SQL语句为 `ALTER TABLE customers RENAME COLUMN c_contact TO c_phone;` - 要求6:增加`c_gender`字段,SQL语句为 `ALTER TABLE customers ADD c_gender CHAR(1);` - 要求7:将表名改为`customers_info`,SQL语句为 `RENAME TABLE customers TO customers_info;` - 要求8:删除`c_city`字段,SQL语句为 `ALTER TABLE customers_info DROP c_city;` 7. 又一个题目,涉及创建公司数据库和员工、办公室表: - 要求1:创建数据库`company`,SQL语句为 `CREATE DATABASE company;` - 要求2:创建表`offices`,具体字段未知,假设为`o_id INT, o_name VARCHAR(100)`,SQL语句为 `CREATE TABLE offices (o_id INT PRIMARY KEY, o_name VARCHAR(100));` - 要求3:创建表`employees`,具体字段未知,假设为`e_id INT, e_name VARCHAR(100), office_id INT`,SQL语句为 `CREATE TABLE employees (e_id INT PRIMARY KEY, e_name VARCHAR(100), office_id INT, FOREIGN KEY (office_id) REFERENCES offices(o_id));` - 要求4:这里没有给出具体的操作,可能需要根据实际需求插入数据或添加其他字段。 以上是针对题目要求的MySQL操作解答,实际操作时需根据具体字段和数据结构进行调整。