java面試題06
題目:
數據庫
1、 表名:g_cardapply
字段(字段名/類型/長度):
g_applyno varchar 8;//申請單號(關鍵字)
g_applydate bigint 8;//申請日期
g_state varchar 2;//申請狀態
2、 表名:g_cardapplydetail
字段(字段名/類型/長度):
g_applyno varchar 8;//申請單號(關鍵字)
g_name varchar 30;//申請人姓名
g_idcard varchar 18;//申請人身份證號
g_state varchar 2;//申請狀態
其中,兩個表的關聯字段為申請單號。
01、 查詢身份證號碼為440401430103082的申請日期
02、 查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數
03、 將身份證號碼為440401430103082的記錄在兩個表中的申請狀態均改為07
04.從表g_cardapplydetail中刪除姓李的記錄
創建數據庫和數據表
CREATE DATABASE IF NOT EXISTS exam
USE exam
CREATE TABLE IF NOT EXISTS g_cardapply(
g_applyno INT(8) PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT ‘申請單號‘,
g_applydate DATE COMMENT ‘申請日期‘,
g_state VARCHAR(2) COMMENT ‘申請狀態‘
)CHARSET=‘utf8‘ ENGINE=INNODB;
CREATE TABLE IF NOT EXISTS g_cardapplydetail(
g_applyno INT(8) NOT NULL COMMENT ‘申請單號‘,
g_name VARCHAR(20) COMMENT ‘申請人姓名‘,
g_idcard VARCHAR(20) COMMENT ‘申請人身份證號‘,
g_state VARCHAR(10) COMMENT ‘申請狀態‘
)CHARSET=‘utf8‘ ENGINE=INNODB;
ALTER TABLE g_cardapplydetail ADD CONSTRAINT foreign_cardapplydetail_cardapply FOREIGN KEY (g_applyno) REFERENCES g_cardapply (g_applyno)
INSERT INTO g_cardapply VALUES(1,‘2017-10-22‘,0);
INSERT INTO g_cardapply VALUES(2,‘2017-10-23‘,1);
INSERT INTO g_cardapply VALUES(3,‘2017-10-25‘,1);
INSERT INTO g_cardapply VALUES(4,‘2017-10-27‘,0);
INSERT INTO g_cardapply VALUES(5,‘2017-10-28‘,1);
INSERT INTO g_cardapply VALUES(6,‘2017-10-21‘,1);
INSERT INTO g_cardapplydetail VALUES(1,‘xiaohei1‘,‘11111111‘,0);
INSERT INTO g_cardapplydetail VALUES(2,‘xiaohei2‘,‘22222222‘,1);
INSERT INTO g_cardapplydetail VALUES(3,‘xiaohei3‘,‘33333333‘,1);
INSERT INTO g_cardapplydetail VALUES(4,‘xiaohei4‘,‘44444444‘,0);
INSERT INTO g_cardapplydetail VALUES(5,‘xiaohei2‘,‘22222222‘,1);
INSERT INTO g_cardapplydetail VALUES(6,‘xiaohei3‘,‘33333333‘,1);
01.SELECT g_applydate FROM g_cardapply a ,g_cardapplydetail d WHERE g_idcard=‘22222222‘ AND a.g_applyno=d.g_applyno
02.SELECT g_idcard,COUNT(g_idcard) FROM g_cardapplydetailGROUP BY g_idcard HAVING COUNT(g_idcard)>=2
03.#關閉事務自動提交
SET autocommit=0;
BEGIN;
UPDATE g_cardapply SET g_state=‘08‘ WHERE g_applyno IN
(
SELECT g_applyno FROM g_cardapplydetail WHERE g_idcard=‘22222222‘
);
UPDATE g_cardapplydetail SET g_state=‘08‘ WHERE g_idcard=‘22222222‘;
#rollback;
COMMIT;
#再設置成自動提交
SET autocommit=1;
04..DELETE FROM g_cardapplydetail WHERE g_name LIKE ‘李%‘
java面試題06