学び続け、更新し続ける
1.学生の記録を追加します
このトピックでは、Insertステートメントを記述し、stuテーブルに学生レコードを追加する必要があります。学生ID:S012、名前:、周強、性別:1、およびその他の属性はNULLです。
テーブル構造:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
テーブルサンプル(stuテーブル):
出力サンプル(stuテーブル):
問題の解決策:
INSERT INTO stu (sno,sname,sex) VALUES ('S012','周强',1);
2.コースの成績が最も高い上位2人の学生にクエリを実行します
このトピックでは、C002コースで最高の成績を収めた2人の学生の数、名前、成績を取得するためのSQLステートメントを作成する必要があります。
テーブル構造:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`),
);
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);
テーブルサンプル(stuテーブルとscテーブル):
出力サンプル:
問題の解決策:
SELECT stu.sno,stu.sname,sc.grade
FROM stu LEFT JOIN sc
ON stu.sno=sc.sno
WHERE sc.cno='C002'
ORDER BY sc.grade
DESC LIMIT 2;
3.すべての学生情報を削除します
このトピックでは、「周強」という名前の学生のすべてのデータ情報を削除するために、DELETEステートメントを作成する必要があります。
テーブル構造:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);
テーブルの例(stuテーブルとscテーブル):
サンプル出力:
問題の解決策:
DELETE t1,t2
FROM stu AS t1 LEFT JOIN sc AS t2
ON t1.sno = t2.sno
WHERE t1.sname = '周强';
4.昇順で並べ替えます
従業員テーブル内のすべての男性従業員の番号、名前、および入力日を照会すると、結果は従業員番号の昇順で並べ替えられます
テーブル構造:
create table 员工(员工编号 char(3) primary key,姓名 char(5),性别 char(1),出生日期 date,入职日期 date,电话 char(11))
表样例:
サンプル出力:
問題の解決策:
SELECT 员工编号,姓名,入职日期
FROM 员工
WHERE 性别='男'
ORDER BY 员工编号 ASC;
5.条件付きクエリ
このトピックでは、SQLステートメントを記述して、学生テーブル内の25歳以下のすべての女の子の学生番号と名前のレコードを取得する必要があります。
テーブル構造:
CREATE TABLE students (
sno char(7) ,
sname char(8) NOT NULL,
class char(10),
ssex char(2),
bday date ,
bplace char(10) ,
IDNum char(18) ,
sdept char(16),
phone char(11),
PRIMARY KEY (sno)
) ;
テーブルサンプル:
出力サンプル:
問題の解決策:
select sno as "学号",sname as "姓名",ssex as "性别"
from students
where ROUND(DATEDIFF(CURDATE(), bday)/365.2422) <=25
and
ssex="女";
お問い合わせ
このトピックでは、コーステーブルの「0000010」コースのコース名、前提条件のコース番号、およびクレジットレコードを取得するためのSQLステートメントを作成する必要があります。
ヒント:SELECTステートメントを使用して回答してください。
テーブル構造:
CREATE TABLE course (
cno char(7) ,
cname varchar(20) NOT NULL,
cpno char(7),
ccredit int NOT NULL,
PRIMARY KEY (cno)
) ;
テーブルサンプル:
出力サンプル:
問題の解決策:
select cname,cpno,ccredit from course where cno = '0000010';