使用cmd操作mysql数据库表_cmd_操作MySQL数据库

本文介绍了如何使用CMD命令行工具操作MySQL数据库,包括创建数据库CustomDB,建立customer、deposite和bank三个表,录入数据,修改数据以及查询数据的各种SQL语句实现,如查询特定客户存款信息、按条件更新存款金额等。
摘要由CSDN通过智能技术生成

1. 使用sql语句创建数据库,名称为CustomDB2. 创建数据表customer(客户)、deposite(存款)、bank(银行),表结构如下:(10分)

customer的表结构| 属性名称 | 类型与长度 | 中文含义 | 备注 |

| -------- | ------------ | -------- | ---------- |

| c_id | char(6) | 客户标识 | 主键,非空 |

| name | varchar(30) | 客户姓名 | 非空 |

| location | Varchar(30) | 工作地点 | |

| salary | decimal(8,2) | 工资 | |bank的表结构| 属性名称 | 类型与长度 | 中文含义 | 备注 |

| --------- | ---------- | -------- | ---------- |

| b_id | char(5) | 银行标识 | 主键,非空 |

| bank_name | char(30) | 银行名次 | 非空 |deposite的表结构| 属性名称 | 类型与长度 | 中文含义 | 备注 |

| --------- | ------------ | ---------- | -------------------------- |

| d_id | int | 存款流水号 | 主键,非空,自增 |

| c_id | char(6) | 客户标识 | 外键,关联customer表的c_id |

| b_id | char(5) | 银行标识 | 外键,关联bank表的b_id |

| dep _date | date | 存入日期 | |

| amount | decimal(8,2) | 存款金额 | |

3、录入数据:

customer的数据如下| c_id | name | location | salary |

| ------ | ---- | -------- | ------ |

| 101001 | 孙杨 | 广州 | 1234 |

| 101002 | 郭海 | 南京 | 3526 |

| 101003 | 卢江 | 苏州 | 6892 |

| 101004 | 郭惠 | 济南 | 3492 |bank的数据如下:| b_id | bank_name |

| ----- | --------- |

| B0001 | 工商银行 |

| B0002 | 建设银行 |

| B0003 | 中国银行 |

| B0004 | 农业银行 |deposite的数据如下:| d_id | c_id | b_id | dep_date | amount |

| ---- | ------ | ----- | ---------- | ------ |

| 1 | 101001 | B0001 | 2011-04-05 | 42526 |

| 2 | 101002 | B0003 | 2012-07-15 | 66500 |

| 3 | 101003 | B0002 | 2010-11-24 | 42366 |

| 4 | 101004 | B0004 | 2008-03-31 | 62362 |

| 5 | 101001 | B0003 | 2002-02-07 | 56346 |

| 6 | 101002 | B0001 | 2004-09-23 | 353626 |

| 7 | 101003 | B0004 | 2003-12-14 | 36236 |

| 8 | 101004 | B0002 | 2007-04-21 | 26267 |

| 9 | 101001 | B0002 | 2011-02-11 | 435456 |

| 10 | 101002 | B0004 | 2012-05-13 | 234626 |

| 11 | 101003 | B0003 | 2001-01-24 | 26243 |

| 12 | 101004 | B0001 | 2009-08-23 | 45671 |

4、修改数据(sql语句实现):1.将数据表deposite中孙杨的存款金额加100002.将数据表deposite中所属账户为工商银行并且存入日期为2011-04-05的人员的存款金额加10003.将数据表deposite中郭海的银行标识改为建设银行5、查询数据(sql语句实现):1.查询孙杨的存款信息(显示信息:客户ID,客户姓名,银行名称,存款金额)2.查询日期为2011-04-05这一天进行过存款的客户ID,客户姓名,银行名称,存款金额3.查询郭海在工商银行的存款信息(显示信息:客户ID,客户姓名,银行标识,银行名称,存款日期,存款金额)4.查询工商银行存款大于等于一万的客户姓名(使用表链接和子查询两种方式实现)5.查询在农业银行存款前五名的客户存款信息(显示信息:客户姓名,银行名称,存款金额)6.查询姓“卢”的客户的存款信息(显示信息:客户姓名,银行名称,存款金额)1. 使用sql语句创建数据库,名称为CustomDB

答:`create databaseif notexists CustomDB;`2. 创建表,代码如下:

答:

```/*创建顾客表*/create tableif notexists customer(

c_id char(6) primary key,

name varchar(30)notnull,

location varchar(30),

salary decimal(8,2)

);/*插入数据*/insert into customer

values('101001','孙杨','广州',1234),

('101002','郭海','南京',3526),

('101003','卢江','苏州',6892),

('101004','郭惠','济南',3492);/*创建银行表*/create tableif notexists bank(

b_id char(5) primary key,

bank_name char(30) notnull

);

insert into bank

values('B0001','工商银行'),

('B0002','建设银行'),

('B0003','中国银行');

insert into bank

values('B0004','农业银行');/*创建存款表(注意外键的代码使用)*/create tableif notexists deposite(

d_id int(10) auto_increment primary key,

c_id char(6),

b_id char(5),

dep_date date,

amount decimal(8,2),

constraint FK_c_id foreign key(c_id) references customer(c_id)

);

CREATE TABLE `deposit` (

`d_id` int NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`c_id` varchar(6) ,

`b_id` varchar(5) ,

`dep_date` date ,

`dep_type` enum('1','3','5') ,

`amount` decimal(8,2) ,

FOREIGN KEY (`c_id`) REFERENCES `customer` (`c_id`),

FOREIGN KEY (`b_id`) REFERENCES `bank` (`b_id`)

);

create table deposite(

d_id intnotnull auto_increment primary key,

c_id varchar(6),

b_id varchar(5),

dep_date date,

dep_type enum('1','3','5'),

amount decimal(8,2),

foreign key(c_id) references customer(c_id),

foreign key(b_id) references bank(b_id)

);

insert into deposite

values(1,'101001','B0001','2011-04-05',1,42526),

(2,'101002','B0003','2012-07-15',1,66500),

(3,'101003','B0002','2010-11-24',2,42366),

(4,'101004','B0004','2008-03-31',3,62362),

(5,'101001','B0003','2002-02-07',3,56346),

(6,'101002','B0001','2004-09-23',1,353626),

(7,'101003','B0004','2003-12-14',2,36236),

(8,'101004','B0002','2007-04-21',1,26267),

(9,'101001','B0002','2011-02-11',1,435456),

(10,'101002','B0004','2012-05-13',2,234626),

(11,'101003','B0003','2001-01-24',3,26243),

(12,'101004','B0001','2009-08-23',2,45671);

```1. 将数据表deposite中孙杨的存款金额加10000

```

update deposite set amount=amount+10000where c_idin(select c_id from customer where name='孙杨');

```1. 将数据表deposite中所属账户为工商银行并且存入日期为2011-04-05的人员的存款金额加1000

```

update deposite set amount=amount+1000where dep_date='2011-04-05' and b_id in(select b_id from bank where bank_name='工商银行');

```1. 将数据表deposite中郭海的银行标识改为建设银行

```

update deposite set b_id=(select b_id from bank where bank_name='建设银行')

where c_idin(select c_id from customer where name='郭海');

```1. 查询孙杨的存款信息(显示信息:客户ID,客户姓名,银行名称,存款金额)

```## 内连接查询

select customer.c_id,customer.name,bank.bank_name,deposite.amountfrom deposite inner join customer on customer.c_id=deposite.c_id

inner join bank on bank.b_id=deposite.b_idand customer.name='孙杨';##表连接查询

select customer.name,customer.c_id,bank.bank_name,deposite.amountfromcustomer,bank,deposite

where customer.c_id=deposite.c_idand bank.b_id= deposite.b_id and customer.name='孙杨';

```1. 查询日期为2011-04-05这一天进行过存款的客户ID,客户姓名,银行名称,存款金额

```

方法(1):内连接查询:

select customer.c_id,customer.name,bank.bank_name,deposite.amountfromdeposite

inner join customer on customer.c_id=deposite.c_id

inner join bank on bank.b_id=deposite.b_idand deposite.dep_date='2011-04-05';

方法(2):表连接查询:

select customer.name,customer.c_id,bank.bank_name,deposite.amountfromdeposite,customer,bank

where deposite.dep_date='2011-04-05'

and customer.c_id=deposite.c_idand bank.b_id=deposite.b_id;

```1. 查询郭海在工商银行的存款信息(显示信息:客户ID,客户姓名,银行标识,银行名称,存款日期,存款金额)

```

方法(1):内连接查询:

select customer.c_id,customer.name,bank.b_id ,bank.bank_name,

deposite.amount,deposite.dep_datefromdeposite

inner join customer on customer.c_id=deposite.c_id

inner join bank on bank.b_id=deposite.b_idand customer.name='郭海' and bank.bank_name='建设银行';

方法(2):表连接查询:

select customer.c_id,customer.name,bank.b_id ,bank.bank_name,

deposite.amount,deposite.dep_datefromdeposite,bank,customer

where customer.c_id=deposite.c_idand bank.b_id=deposite.b_idand customer.name='郭海' and bank.bank_name='建设银行';

```1. 查询工商银行存款大于等于一万的客户姓名(使用表链接和子查询两种方式实现)

```

方法(1):子查询:

select customer.name FROM customer WHERE c_idin(

select c_idfrom deposite WHERE amount in(select amountfrom deposite WHERE amount>1000 andb_id IN

(select b_idfrom bank where bank_name='工商银行')));

方法(2):表连接查询:

select customer.namefromdeposite,bank,customer

where customer.c_id=deposite.c_idand bank.b_id=deposite.b_id

where amount>10000 AND bank_name='工商银行';

方法(3):内连接查询:

select customer.namefromdeposite

inner join customer on customer.c_id=deposite.c_id

inner join bank on bank.b_id=deposite.b_id

where amount>10000 AND bank_name='工商银行';

```1. 查询在农业银行存款前五名的客户存款信息(显示信息:客户姓名,银行名称,存款金额)

```

方法(1):内连接查询:

select customer.name,bank.bank_name,deposite.amountfromdeposite

inner join customer on customer.c_id=deposite.c_id

inner join bank on bank.b_id=deposite.b_id

where bank_name='农业银行' ORDER BY amount DESC LIMIT 5;

方法(2):表连接查询:

select customer.name,bank.bank_name,deposite.amountfromdeposite,bank,customer

where customer.c_id=deposite.c_idand bank.b_id=deposite.b_idand bank_name='农业银行' ORDER BY amount DESC LIMIT 5;

```1. .查询姓“卢”的客户的存款信息(显示信息:客户姓名,银行名称,存款金额)

```

方法(1):内连接查询:

select customer.name,bank.bank_name,deposite.amountfromdeposite

inner join customer on customer.c_id=deposite.c_id

inner join bank on bank.b_id=deposite.b_id where name LIKE '卢%';

方法(2):表连接查询:

select customer.name,bank.bank_name,deposite.amountfromdeposite,bank,customer

where customer.c_id=deposite.c_idand bank.b_id=deposite.b_id AND name LIKE '卢%';

```1. 创建存储过程update_salary,更新customer表的salary属性,将salary低于5000的客户的salary变为原来的2倍.

```

create procedure update_salary()

update customer set salary= salary * 2where salary< 5000;

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值