MySQLの「機能」

drop database if exists StudentManage;
create database StudentManage;

use StudentManage;

create table Student
(Sno int primary key,
Sname nchar(10) ,
Ssex nchar(2),
Sage int,
Sdept nvarchar(30)
)charset utf8;

create table Course
(Cno int primary key,
Cname nvarchar(30),
Cpno int,
Ccredit int
)charset utf8;

create table SC
(Sno int,
Cno int,
Grade int,
primary key(Sno,Cno)
)charset utf8;

insert into Student
values(201215121,'李勇','男',20,'CS'),
(201215122,'刘晨','女',19,'CS'),
(201215123,'王敏','女',18,'MA'),
(201215124,'张立','男',19,'IS');


insert into Course
values(1,'数据库',5,4),(2,'数学',NULL,2),
(3,'信息系统',1,4),(4,'操作系统',6,3),
(5,'数据结构',7,4),(6,'数据处理',NULL,2),
(7,'PASCAL',6,4);

insert into SC 
values(201215121,1,92),(201215121,2,85),
(201215121,3,88),(201215122,2,90),(201215122,3,80);

(1)-1.23以下の整数を見つけます。①文;②結果。

最初の空:
SELECT FLOOR(-1.23);

2番目に空:
-2

(2)文字「d」のASCIIコード値を見つけます。①文;②結果。

最初の空:
SELECT ASCII( 'd');

2番目に空:
100

(3)「My」、「S」、「QL」の3つの文字列を連結します。①文;②結果。

最初の空:
SELECT CONCAT( 'My'、 'S'、 'QL');

2番目に空:
MySQL

(4)文字列「Text」の長さを調べます。①文;②結果。
最初の空:
SELECT CHAR_LENGTH( 'Text');

2番目の空:
4

(5)文字列「foobarbar」で文字列「bar」の最初の出現箇所を見つけます。①文;②結果。
最初の空:
SELECT INSTR( 'foobarbar'、 'bar'); SELECT LOCATE( 'bar'、 'foobarbar'); SELECT POSITION( 'bar' IN'foobarbar ');

2番目の空:
4

(6)文字列「foobarbar」の右端の5文字を​​見つけます。①文;②結果。
正解:

最初の空:
SELECT RIGHT( 'foobarbar'、5); SELECT SUBSTR( 'foobarbar'、-5);

2番目の空:
arbar

(7)文字列「www.mysql.com」の「w」を「Ww」に置き換えます。①文;②結果。

最初の空:
SELECT REPLACE( 'www.mysql.com'、 'w'、 'Ww');

2番目に空:
WwWwWw.mysql.com

(8)取得システムの現在の日付は、その年の日です。(NOW()と同じ関数がNOW()を使用します)①ステートメント。
正解:

最初の空:
SELECT DAYOFYEAR(NOW());

(9)100日後の日付を取得します。(NOW()と同じ関数がNOW()を使用します)①ステートメント。

curdate()+間隔100日を選択します。

(10)データベースのバージョン番号を取得します。①ステートメント。

version();を選択します。

(11)文字列「abcd」に対してmd5暗号化を実行します。①文;②結果。
正解:

最初の空:
SELECT md5( 'abcd');

2番目に空:
e2fc714c4727ee9395f324cd2e7f331f

整数666を返す関数myselectを定義し、関数を呼び出します。①定義;②電話。

第一空:
作成関数myselect()
return int
BEGIN
return 666;
終わり

2番目の空:
select myselect();

「LiuChen」の学生IDを検索する関数myselect2を定義し、この関数を呼び出します。①定義;②電話。

第一空:
create function myselect2()returns int
begin
return(select sno from student where sname = '刘晨');
終わり

2番目の空:
myselect2();を選択します。

関数myselect3を定義します。この関数の関数は、学生の名前に基づいて学生の学生IDを見つけることです(パラメーター名にnameを使用)。

CREATE FUNCTION myselect3(name VARCHAR(30))RETURNS INT
BEGIN
RETURN(SELECT sno FROM student WHERE sname = name)
END;

関数myselect3を呼び出して、「LiYong」の学生IDを照会します。①コマンドを起動します;②結果。

最初の空:
SELECT myselect3( 'Li Yong');

2番目に空:
201215121

関数stu_countを定義して、学生の名前に基づいて学生の選択科目の数を照会します。(パラメーター名にはnameを使用してください)

CREATE FUNCTION stu_count(name VARCHAR(30)charset utf8)RETURNS INT
BEGIN
RETURN(SELECT COUNT(*)FROM Student s
JOIN SC ON s.sno = sc.sno
WHERE s.sname = name)
END;

関数stu_countを呼び出して、「LiYong」が受講したコースの数をそれぞれ照会します。①コマンドを起動します;②結果。
最初の空:
SELECT stu_count( 'Li Yong');

2番目の空:
3

関数sdept_avggradeを定義して、部門名とコース名に基づいてコース内の学生の平均スコアを照会します。

CREATE FUNCTION sdept_avggrade(p_sdept VARCHAR(30)charset utf8、p_cname VARCHAR(30)charset utf8)RETURNS DECIMAL(6,2)
BEGIN
RETURN(SELECT AVG(SC.grade)FROM student s
JOIN sc ON s.sno = sc.sno
JOINコースcON sc.cno = c.cno
WHERE s.sdept = p_sdept
AND c.cname = p_cname)
END;

関数sdept_avggradeを呼び出して、「CS」部門と「数学」コースの平均成績を照会します。①コマンドを起動します;②結果。
最初の空:
SELECT sdept_avggrade( 'CS'、 'Mathematics');

2番目に空:
87.5

SQLステートメントを使用して、sdept_avggrade関数を削除します。

存在する場合のドロップ関数sdept_avggrade;

おすすめ

転載: blog.csdn.net/ziyue13/article/details/112075707