初级数据库必备

本文详细介绍了如何在MySQL中创建货品信息表hpmcb,库存表hpkcb,视图V_hpkcb,以及为hpmcb表设置插入触发器。还涵盖了数据库服务的启动、连接、停止和卸载命令,以及SQL操作如索引创建、数据备份和复杂查询技巧。
摘要由CSDN通过智能技术生成

1 有如下两个表,货品名称表和货品库存表

hpmcb (

Hpid` INT(11) NOT NULL COMMENT '货品id',

hpmc VARCHAR(50) DEFAULT NULL COMMENT '货品名称',

jldw` VARCHAR(10) DEFAULT NULL COMMENT '计量单位',

hptm VARCHAR(20) DEFAULT NULL COMMENT '货品条码',

lsj` DECIMAL(9,2) DEFAULT NULL COMMENT '零售价',

hpzt` TINYINT(4) COMMENT '货品状态(0 正常, 1 暂停进货, 2 不再进货')

);

hpkcb (

kcid INT(11) ' NOT NULL AUTO_INCREMENT COMMENT '库存id',

hpid` INT(11) DEFAULT NULL COMMENT '货品id',

kcslis DECIMAL(18,3) DEFAULT '0.000' COMMENT '库存数量',

PRIMARY KEY (`kcid`));

要求:1.创建hpmcb表,并设置Hpid自增1且为为主键,hpzt的默认值为0;

2.创建hpkcb表,并设置kcid自增1且为为主键,kcsl的默认值为0;

3.创建视图V_hpkcb包含这些字段hid,hpmc,jldw,kcsl;

4 在hpmcb上创建一个after触发器,当在hpmcb中插入记录时,利用该触发器在hpkcb中插入对应的库存记录

5将数据库备份为MyPOS.sql并上传

 

 

 

 

 

CREATE TABLE hpmcb(

Hpid INT (11) NOT NULL COMMENT'货品id' AUTO_INCREMENT,

hpmc VARCHAR(50) DEFAULT NULL COMMENT '货品名称',

jldw VARCHAR(10) DEFAULT NULL COMMENT '计量单位',

hptm VARCHAR(20) DEFAULT NULL COMMENT '货品条码',

lsj VARCHAR(50) DEFAULT NULL COMMENT '零售价',

hpzt TINYINT(4) DEFAULT 0 COMMENT '货品状态(0 正常,1 暂停进货,2 不再进货,)',

PRIMARY KEY (Hpid)

)

 

CREATE TABLE hpkcb(

kcid INT(11) NOT NULL AUTO_INCREMENT COMMENT '库存id',

hpid INT(11) DEFAULT NULL COMMENT '货品id',

kscl DECIMAL(18,3) DEFAULT '0.000' COMMENT '库存数量',

PRIMARY KEY (kcid)

)

 

CREATE VIEW V_hpkcb AS SELECT hpmcb.Hpid,hpmc,jldw,kscl FROM hpmcb,hpkcb

INSERT INTO hpmcb(hpmc,jldw,hptm,lsj) VALUE('可乐','元','123','3')

 

DELIMITER $$

 

USE `mypos`$$

 

DROP TRIGGER 

 

CREATE

    

    TRIGGER `after` AFTER INSERT ON `hpmcb` 

    FOR EACH ROW 

    

    BEGIN

 INSERT INTO hpkcb(hpid) VALUE (new.hpid);

    END;

$$

 

DELIMITER ;

1

 

 

 

分别写出启动、连接、停止和卸载MySql服务(服务名为MySql)的语句?

 

net start mysql

mysql -u root -p

net stop mysql

mysql -remove

 

2

请用 create index 语句在数据库 db_test 的表 content 中,根据留言标题列的前三个

字符采用默认的索引类型创建一个升序索引 index_subject。

 

mysql>USE db_test ; Database changed mysq|>CREATE INDEX index_subject 一> ON content(subject(3)ASC);

 

3

请用 create index 语句在数据库 db_test 的表 content 中,根据留言标题列的前三个

字符采用默认的索引类型创建一个升序索引 index_subject。

 

 

mysql>USE db_test ; Database changed mysq|>CREATE INDEX index_subject 一> ON content(subject(3)ASC);

 

4

请使用 select into...outfile 语句,备份数据库 db_test 中表 content 的全部数据

到 c 盘的 backup 目录下一个名为 backupcontent.txt 的文件中。

 

select * from db_test.content into outfile 'c:\backup\backupcontent.txt'

 

5

现有一个 student 表,表结构如下所示:

| field | type | null | key | default | extra |

| id | int(4) | yes | | null | |

| name | varchar(20) | no | | null | |

| grade | float | yes | | null | |

请按照如下要求编写 sql 语句。

1)根据 student 表结构编写建表语句

2)使用 insert 语句向 student 表中插入一条数据,其中 id 字段的值为 5,name 字段

的值为‘lily’,grade 字段的值为 100。 

 

CREATE TABLE student( id INT(4), name VARCHAR(20) NOT NULL, grade FLOAT );

insert into student values(5,'lily',100);

 

6

现有一张表 score 记录所有学生数学和英语的成绩,表中字段有学号,姓名,学科,

分数。要求如下:

1) 查询姓名为张三的学生成绩

2) 查询英语成绩大于 90 分的同学

3) 查询总分大于 180 分的所有同学的学号

 

SELECT * FROM score WHERE 姓名=’张三’;

SELECT * FROM score WHERE 学科=’英语’ AND 分数>90;

SELECT 学号 FROM score GROUP BY 学号HAVING SUM(分数)>180;

 

7

已知数据库中有一张会员表,表中有字段会员编号、姓名、性别、入会时间,请查询出表中除了会员“小七”的所有会员的信息

 

Select * from 会员 where 姓名!=’小七’;

 

8

使用MYSQL代码实现以下内容

1) 创建 student 数据库

   数据库里建立数据表 student_web

   要求包含以下字段:

   s_id 数据类型为整型,非空约束,

   s_name 数据类型为可变字符型,最大长度 12 个字符,保存学生姓名

   s_fenshu 数据类型为整型,保存学生考试成绩

   s_hometown 数据类型为可变字符型,最大长度 50 个字符,保存学生籍贯

   s_tuition 数据类型为整型,保存学生学费

2) 写代码向上题所创建好的数据表中添加以下三条记录,

   id : 1 id : 2 id : 3

   姓名: Jack Tomas 姓名: Tom Joe 姓名: Smiths

   成绩: 89 成绩: 88 成绩: 87

   籍贯: 郑州金水 籍贯: 洛阳涧西 籍贯: 郑州中原

   学费: 2800 学费: 3000 学费: 2700

3) 写代码返回所有学生的信息。

4) 写代码返回所有姓名带 J 字母的学生信息。

5) 写代码返回所有郑州籍贯的学生信息。

6) 写代码返回所有学费低于平均学费的学生信息。提示使用嵌套的 select 查询。

 

create database student 

use student

create table student_web ( s_id int not null, s_name varchar(12), s_fenshu int, s_hometown varchar(50), s_tuition int )

insert into student_web (s_id,s_name,s_fenshu,s_hometown,s_tuition) values(1,’Jacktomas’,89,’郑州金水’,2800) insert into student_web (s_id,s_name,s_fenshu,s_hometown,s_tuition) values(2,’TomJoe’,88,’洛阳涧西’,3000) insert into student_web (s_id,s_name,s_fenshu,s_hometown,s_tuition) values(3,’Smiths’,87,’郑州中原’,2700)

select * from student_web

select * from student_web where s_name like ’%J%’

select * from student_web where s_hometown=’北京%’

 SELECT *FROM student_web WHERE s_tuition<(SELECT AVG(s_tuition) FROM student_web);

 

9

已知有一张 user 表,表中有字段 id,name,请按照以下要求编写 SQL 语句

1)删除 user表中 id 为 NULL 的数据

2)将 user 表中 name 为 NULL 的 name 值都改为“匿名”

 

delete from user where id is null;

update user set name=' 匿名' where name is null;

 

10

已知数据库中有一张 student 表,表中有字段 id、name、class,请查询出表中 class等于 3 的所有信息

 

Select * from student where class=3

 

11

已知有一张 sales 表,表中有上半年的销量 first_half 和下半年的销量

latter_half。请在 sales 表上创建一个视图,查询出一年的销量

 

CREATE VIEW view_sales AS SELECT first_half+ latter_half FROM sales;

 

12

请查询出 send 表中日期(sendtime 字段)为当天的所有记录的 sql 语句,其中字段

sendtime 为 datetime 型。

 

SELECT * FROM send WHERE DATEDIFF(DD, sendtime,GETDATE())=0

 

13

请按照以下要求设计 sql 语句。 假定 

student 表中有: id,name,grade,gender 四个字
段 要求如下:查询 name 字段值以字符“h”开始 或者 gender 字段值为“女” 或者 grade
字段值为 100 的记录。上面三个条件只要一个条件成立就符合要求,写出一个 sql 语句实
现上述需求。

SELECT id,name,grade,gender FROM student WHERE name LIKE 'h%' OR gender=' 女 ' OR grade=100;

14
有部门表dept和员工表employee,根据如下条件

select * from dept where did=(select did from employee where aze›21);

select pl. * from employee p1 join enployee p2 on p1 did=p2.did where P2.name=‘王红’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值