MySQL练习:数据库与表的操作及SQL查询
需积分: 0 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操作解答,实际操作时需根据具体字段和数据结构进行调整。
2010-10-12 上传
2011-07-21 上传
2009-12-22 上传
点击了解资源详情
点击了解资源详情
2013-03-20 上传
2022-07-01 上传
2010-01-23 上传
张盛锋
- 粉丝: 31
- 资源: 297
最新资源
- 实现在Sparton-3E板卡上的按键及开关的控制.7z
- 假设检验【实验代码+实验报告】
- cookbook:一个使用Ruby MVC表示食谱的简单应用
- ODE for Java-开源
- 三重数字
- IGSI-Game-Jam-2021:游戏Jam IGSI Tahun 2021,Tema非常规武器
- react:React练习
- 线下学习系列图标下载
- Github
- 汽车主动悬架控制.zip
- lagrange插值多项式和Newton插值多项式【三个实验代码加一个实验报告】
- suffix-automaton-vis:交互式应用程序,用于可视化如何构建后缀自动机O(n)
- i18n:Dojo 2-国际化图书馆
- Api-node-express-mariadb
- Intangible-capital-stocks:无形资本积累的参数和无形库存数据(Ewens,Peters和Wang(2020))
- speedbumps:小麻烦的收集