SQL语言操作示例练习-1范文

合集下载

SQL习题练习_1_zxx

SQL习题练习_1_zxx

常用sql server 语句 A设有教学数据库的三个基本表:学生表Student (Sno,Sname,Sage,Ssex, Sdept),课程表Course(Cno,Cname,Teacher), 选课表SC(Sno,Cno,Grade) , 用SQL语言实现下列功能:1.建立学生表Student,其中姓名属性值是唯一的,性别属性不能为空。

2.查询所有年龄在22岁以上的女学生姓名及其年龄。

3.查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。

4.查询学习1号课程的学生最高分数、最低分及平均成绩。

5.查询与’张军’在同一个系学习的学生信息。

6.将化学工程系全体学生的成绩提高5%。

7.查询选修成绩大于60分的学生的学号及姓名。

8.删除选修高等数学所有学生的成绩记录。

9.求年龄大于男同学平均年龄的女学生姓名和年龄。

10. 统计每门课程的选修人数大于20的课程,并输出课程号和选修人数。

11.检索姓刘的所有学生的姓名和年龄。

12. 统计每个学生选修课程的情况,并输出学号和选修课程数目。

13. 把选修MA THS课不及格的成绩全改为空值。

14.删除王力选课记录。

15. 在sc中,把英语课成绩提高10%A1.建立学生表Student,其中姓名属性值是唯一的,性别属性不能为空。

CREATETABLE Student(Sno CHAR(5) Primary key,Sname CHAR(20) UNIQUE,Ssex CHAR(2) NOT NULL, Sage INT, Sdept CHAR(15));2.查询所有年龄在22岁以上的女学生姓名及其年龄。

SELECT Sname, Sage from studentWHERE Sage >20 and Ssex=’F’3.查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。

SELECT Sno, Grade FROM SCWHERE Cno='C3' ORDER BY Grade DESC4.查询学习1号课程的学生最高分数、最低分、平均成绩。

sql语句—实例及答案

sql语句—实例及答案

sql 语句大致可以分类两大类SQL(结构化查询语言)针对数据库database和表table的操作创建create查看show修改alter删除drop// 创建一个数据库create database mydb;// 查看所有的数据库库show databases;// 删除 mydbdrop database mydb;// 删除 user 表drop table user;针对表中的记录的操作增 insert删 delete改 update查 select一、操作数据库创建一个名称为mydb1的数据库create database mydb1;查看当前数据库服务器中的所有数据库show databases;删除前面创建的mydb3数据库drop database mydb3;二、操作表1. 创建表创建员工表Id 整形name 字符型sex 字符型或bit型brithday 日期型Entry_date 日期型job 字符型Salary 小数型resume 大文本型use database mydatabasecreate table employee(id int,name varchar(20),sex varchar(6),brithday date,entry_date date,job varchar(20),salary double,resume text);2. 修改表在上面员工表的基础上增加一个image列alter table employee add colm1 int;修改job列,使其长度为60alter table employee modify job varchar(60);删除sex列。

alter table employee drop sex;表名改为users。

rename table employee to user;列名name修改为usernamealter table user change column name username varchar(20);查看所有表show tables;删除 user 表drop table user;三、数据的增删改查1. insert语句create table employee(id int primary key,name varchar(20) not null,sex varchar(10),birthday date,salary float not null,entry_date date,resume text);// 向员工表插入三条记录insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(1,'zhangsan','male','1987-11-23',1500,'2010-2-18','good boy'); insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(2,'wangwu','male','1988-11-23',1200,'2010-2-18','good boy'); insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(3,'xiaohong','female','1983-11-23',1800,'2010-2-18','goodgirl');insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(4,'王小明','男','1986-11-23',3800,'2011-2-18','handsome boy');insert into employee values(5,'王小明','男','1986-11-23',3800,'2011-2-18','handsome boy');insert into employee(id,name, salary) values(6,'王小明', 3800);// 查看表的所有记录select * from employee;2. update语句将所有员工薪水修改为5000元update employee set salary=5000;将姓名为’zhangsan’的员工薪水修改为3000元。

实验六SQL语句[推荐5篇]

实验六SQL语句[推荐5篇]

实验六SQL语句[推荐5篇]第一篇:实验六SQL语句实验六 SQL语句(续)一、实验目的(1)进一步掌握查询的概念和方法。

(2)熟练掌握单表查询的select语句。

(3)熟练掌握聚合函数的使用。

(4)熟练掌握连接查询方法(5)熟练掌握嵌套查询方法(6)掌握创建和管理视图的方法。

二、实验内容1、查询时改变列标题的显示:检索全体学生的学号、姓名、籍贯信息,并分别加上“学号”、“姓名”、“籍贯”的别名信息。

SQL语句:2、条件查询(1)查询选修了课程号为“002”,且成绩大于80的学生的学号。

SQL语句:(2)某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,查询缺少成绩的学生的学号和相应的课程号。

SQL语句:3、基于IN子句的数据查询从课程表中查询出“高数”、“C语言程序设计”的所有信息。

SQL语句:4、基于Like子句的查询从学生表中分别检索出姓张的所有同学的资料;检索名字的第二个字是“红”或“虹”的所有同学的资料。

SQL语句:5、查询经过计算的值。

查询全体学生的姓名及其出生年份,需为计算值取别名“出生年份”。

SQL语句:6、使用ORDER BY语句对查询的结果进行排序显示所有学生的基本信息,并按学生的年龄的降序排列。

SQL语句:7、使用Group子句进行查询汇总总分大于是150分的学生的学号及总成绩。

8、使用聚合函数计算“002”号课程的学生平均成绩、最高分、最低分。

SQL语句:9、查询与“张虹”在同一个班级的学生学号、姓名、所属系。

(嵌套查询)SQL语句:连接查询T-SQL语句:10、创建一个名为stuview的视图,能检索出每位选课学生的学号、姓名、课程名、总成绩。

SQL语句为:11、创建一个名为stuview1的视图,从数据库XSGL的student 表中查询出性别为“男”的所有学生的资料。

并在创建视图时使用with check option。

(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。

SQL语句练习及参考答案(2021年整理精品文档)

SQL语句练习及参考答案(2021年整理精品文档)

SQL语句练习及参考答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(SQL语句练习及参考答案)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为SQL语句练习及参考答案的全部内容。

SQL 语句练习1。

设学生选课数据库有关系S (sno ,sname ,age ,sex )、SC (sno ,cno ,grade )和C (cno,cname,teacher ),分别表示学生、选课和课程,sno 代表学号,sname 代表学生姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。

试完成表示下列查询。

(1)检索年龄大于21的男学生学号(sno )和姓名(sname)。

(2)建立性别只能为“男”、“女"的约束。

(3)创建一个视图v1,该视图用来查询学生的选课情况,要求包含:学生姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。

(4)检索选修课程号为k1和k5的学生学号(sno ). (5)检索全部学生都选修的课程的课程号(cno)和课程名(cname )。

(6)删除所有男同学的选课记录。

1。

(1)select sno ,snae from s where sex=’男' and age 〉21(2)alter table s add constraint c1 check sex in (‘男’,’女')(3)create view v1 as select sname ,cname,teacher,grade from s ,sc ,c where s 。

SQL语言范例

SQL语言范例

1.查询XS表中的所有列。

select * from xs2.查询XS表中计算机专业同学的学号、姓名和总学分。

select 学号,姓名,总学分from xswhere 专业='计算机''3.查询XS表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。

select 学号 as number,姓名 as name,总学分 as markfrom xswhere 专业='计算机'4.查询XS表中通信工程专业总学分大于等于42的学生情况。

select *from xswhere 专业='通信工程' and 总学分>=425.查询XS表中姓“王”且单名的学生情况。

Select *from xswhere 姓名 like '王_'6.查询XS表中不在1979年出生的学生情况。

select *from xswhere 出生时间<'1979' or 出生时间>'1980'7.查询选修了课程号为101的学生情况。

select *from xswhere 学号 in (select 学号 from xs_kc where 课程号='101')8.查询未选修离散数学的学生情况。

select *from xswhere not exists ( select *from xs_kc,kcwhere xs.学号=xs_kc.学号 and xs_kc.课程号=kc.课程号and kc.课程名='离散数学')9.查询比所有计算机系的学生年龄都大的学生情况select *from xswhere 出生时间<(select min(出生时间)from xswhere 专业='计算机')10.查询选修了全部课程的同学的姓名。

数据库实验1:SQL查询操作

数据库实验1:SQL查询操作

数据库实验1:SQL查询操作题目:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)。

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

工程项目表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

今有若干数据如下:S表:SNO SNAME STATUS CITYS1 精益20 天津S2 盛锡10 北京S3 东方红30 北京S4 丰盛泰20 天津S5 为民30 上海P表:PNO PNAME COLOR WEIGHTP1 螺母红12P2 螺栓绿17P3 螺丝刀蓝14P4 螺丝刀红14P5 凸轮蓝40P6 齿轮红30J表:JNO JNAME CITY J1 三建北京J2 一汽长春J3 弹簧厂天津J4 造船厂天津J5 机车厂唐山J6 无线电厂常州J7 半导体厂南京SPJ表:SNO PNO JNO QTY S1 P1 J1 200S1 P1 J3 100S1 P1 J4 700S1 P2 J2 100S2 P3 J1 400S2 P3 J2 200S2 P3 J4 500S2 P3 J5 400S2 P5 J1 400S2 P5 J2 100S3 P1 J1 200S3 P3 J1 200S4 P5 J1 100S4 P6 J3 300S4 P6 J4 200S5 P2 J4 100S5 P3 J1 200S5 P6 J2 200S5 P6 J4 500首先进行创建数据库、表,插入数据等操作。

SQL上机作业(3)

SQL上机作业(3)

SQL上机作业(3)一、针对SQL上机作业(1)第二题定义的四个表(S,P,J,SPJ),用SQL语句实现如下查询:1. 把全部红色零件的颜色改为蓝色。

解答:update pset color='蓝色';2. 由S5供给J4的零件P6改为由S3供应,请作必要的修改。

解答:update spjset sno='s3'where sno='s5' and jno='j4' and pno='p6';3. 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。

解答:deletefrom spjwhere sno='s2';deletefrom swhere sno='s2';4. 请将(S2,J6,P4,200)插入供应情况关系。

解答:insertinto spjvalues ('s2','j6','p4','200');二、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供数量(QTY)。

针对该视图完成下列查询:解答:creat view v_sanjian (sno,pno,qty)asselect spj.pno,spj.pno,spj.qtyfrom j,spjwhere j.jno=spj.jno and jname='三建';1.找出三建工程项目使用的各种零件代码及其数量。

解答:select pno,sun(qty)from v_sanjiangroup by pno;2.找出供应商S1的供应情况。

解答:select *from v_sanjianwhere sno='s1';三、针对SQL上机作业(1)第二题定义的四个表(S,P,J,SPJ),用SQL语言完成以下各项操作:1.把对表S的INSERT权限授予用户张勇,并允许他再将此权限授予其他用户。

SQL语句练习及答案

SQL语句练习及答案

sql语句练习题1数据库有如下四个表格:student(sno,sname,sage,ssex,sdpt) 学生表系表(dptno,dname)course(cno,cname, gradet, tno) 课程表sc(sno,cno,score) 成绩表teacher(tno,tname) 教师表要求:完成以下操作1.查询姓"欧阳"且全名为三个汉字的学生的姓名。

select sname from student where sname like “欧阳__‟;2.查询名字中第2个字为"阳"字的学生的姓名和学号。

select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。

select sname,sno,ssexfrom studentwhere sname not like “刘%”;4.查询db_design课程的课程号和学分。

select cno,ccredit from coursewhere cname like 'db_design'5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。

select * from course where cname like 'db%i_ _';6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

查询缺少成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null;7.查所有有成绩的学生学号和课程号。

select sno,cno from sc where grade is not null;8.查询计算机系年龄在20岁以下的学生姓名。

select sname from student where sdept= 'cs' and sage<20;9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

SQL语句大全实例

SQL语句大全实例

SQL语句实例表操作例1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS(SNO NUMERIC (6, 0) NOT NULLSNAME CHAR (8) NOT NULLAGE NUMERIC(3,0)SEX CHAR(2)BPLACE CHAR(20)PRIMARY KEY(SNO))例2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS(SNO NUMERIC(6,0) NOT NULLCNO CHAR(4) NOT NULLGRADE INTPRIMARY KEY(SNO,CNO)FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)FOREIGN KEY(CNO) REFERENCES COURSES(CNO)CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))例3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。

CREATE TABLE GIRLAS SELECT SNO, SNAME, AGEFROM STUDENTSWHERE SEX=' 女';例4 删除教师表TEACHER 。

DROP TABLE TEACHER例5 在教师表中增加住址列。

ALTER TABLE TEACHERSADD (ADDR CHAR(50))例6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。

ALTER TABLE STUDENTSDROP BPLACE CASCADE例7 补充定义ENROLLS 表的主关键字。

ALTER TABLE ENROLLSADD PRIMARY KEY (SNO,CNO) ;视图操作(虚表)例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。

oracle sql 查询满足条件的1条记录

oracle sql 查询满足条件的1条记录

oracle sql 查询满足条件的1条记录全文共四篇示例,供读者参考第一篇示例:Oracle SQL 是一种用于管理和查询数据库的强大工具,通过它我们可以轻松地从数据库中检索出满足条件的记录。

在数据库中,通常会有大量的数据需要进行查询和分析,有时候我们需要找到满足特定条件的一条记录。

下面将介绍如何使用Oracle SQL 来查询并满足条件的一条记录。

我们需要了解如何编写查询语句来搜索满足条件的记录。

在Oracle SQL 中,查询语句通常使用SELECT 语句来检索数据,而WHERE 子句用于指定筛选条件。

以下是一个基本的SELECT 查询语句的结构:SELECT 列名1, 列名2, ...FROM 表名WHERE 条件;在这个语句中,我们需要指定要检索的列名和表名,然后通过WHERE 子句来定义条件。

假设我们有一个名为“员工”的表,表中包含员工的姓名、部门和工资信息。

我们想要查找工资大于5000 的员工记录,我们可以编写如下查询语句:这个查询语句将返回满足条件的所有员工记录,但是如果我们只想要找到其中的一条记录怎么办呢?在Oracle SQL 中,可以使用ROWNUM 关键字来限制返回记录的数量,通过将ROWNUM 与条件和ORDER BY 子句一起使用,可以得到满足条件的一条记录。

以下是一个示例查询语句:SELECT *FROM 员工WHERE 工资> 5000AND ROWNUM = 1ORDER BY 工资DESC;在这个查询语句中,我们限制了返回的记录数为1 条,并按照工资的降序排列。

这将返回工资最高的员工记录。

还可以使用子查询来获取满足条件的一条记录。

子查询是一个嵌套在主查询中的查询语句,可以用来进一步筛选数据。

在这个查询语句中,我们首先使用子查询获取了销售部门的员工姓名,然后在主查询中使用该姓名作为条件来获取对应的员工记录。

在使用Oracle SQL 进行查询满足条件的一条记录时,可以通过限制返回记录数量、使用ORDER BY 子句进行排序,或者使用子查询来实现。

SQL练习1(无答案)

SQL练习1(无答案)

1.查询“CS”系所有学生的学号和姓名。

2.查询所有姓“刘”的学生的信息。

3.查询年龄在18至20岁之间的学生信息。

4.查询不在“CS”系也不在“MA”系的学生的所有信息。

5.查询“CS”系所有学生的平均年龄。

6.查询课程名是以“系统”结尾的课程信息。

7.查询先行课为“6”号课程的课程信息。

8.查询间接先行课为“5”号课程的课程号及课程名。

9.查询没有先行课的课程名。

10.查询选修了“1”号课程的学生选课信息。

11.查询成绩为90分以上的学生姓名和课程名。

12.查询被选修了的课程号及课程名。

13.查询没有选修课程的学生学号及姓名。

14.查询没有选修“1”号课程的学生姓名。

书写一条增加某个学生完整记录信息的sql语句

书写一条增加某个学生完整记录信息的sql语句

在编写SQL语句时,我们要根据具体的数据库表结构和需求来进行操作。

以下是一条增加某个学生完整记录信息的SQL语句的示例:1. 我们需要确认该学生信息的表结构和字段,例如学生ID、尊称、芳龄、性莂、家庭位置区域等。

2. 假设我们的数据库中有名为“students”的表,字段包括“student_id”(学生ID)、“name”(尊称)、“age”(芳龄)、“gender”(性莂)、“address”(家庭位置区域)等。

3. 如果我们要增加学生的完整记录信息,可以使用INSERT INTO语句。

下面是一条简单的示例SQL语句:```sqlINSERT INTO students (student_id, name, age, gender, address) VALUES (1, '张三', 20, '男', '北京市海淀区');```在这条SQL语句中,我们通过INSERT INTO语句指定要插入数据的表名和字段名,然后使用VALUES关键字指定要插入的具体数值。

这样就可以向表中增加某个学生的完整记录信息。

当然,根据实际情况,我们可能需要根据学生ID等条件来进行数据更新或插入,或者执行其他复杂的操作。

因此在实际操作中需要根据具体情况灵活运用SQL语句。

当我们在数据库中插入或更新学生的完整记录信息时,需要考虑一些重要的因素和技巧。

以下是一些针对学生信息更新的SQL语句的补充内容:4. 如果要更新已有学生的记录信息,可以使用UPDATE语句。

假设现在我们需要更新学生ID为1的学生的信息,可以使用以下示例SQL 语句:```sqlUPDATE studentsSET name = '李四', age = 21, gender = '女', address = '上海市浦东新区'WHERE student_id = 1;```在这条SQL语句中,我们使用UPDATE语句指定要更新的表的名称,然后使用SET关键字指定要更新的字段和值。

简单的SQL语句练习大全

简单的SQL语句练习大全

简单的SQL语句练习大全一:本题用到下面三个关系表:CARD借书卡。

CNO 卡号,NAME姓名,CLASS 班级BOOKS图书。

BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY库存册数BORROW借书记录。

CNO 借书卡号,BNO 书号,RDA TE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

//表名borrow2.找出借书超过5本的读者,输出借书卡号及所借图书册数。

3.查询借阅了"水浒"一书的读者,输出姓名及班级。

4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

5.查询书名包括"网络"关键词的图书,输出书号、书名、作者。

6.查询现有图书中价格最高的图书,输出书名及作者。

7.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。

8.将"C01"班同学所借图书的还期都延长一周。

9.从BOOKS表中删除当前无人借阅的图书记录。

10.如果经常按书名查询图书信息,请建立合适的索引。

11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SA VE表中(注ORROW_SA VE表结构同BORROW表)。

12.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。

13.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。

14.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。

yii1sql的select写法

yii1sql的select写法

yii1sql的select写法Yii1是一个流行的PHP框架,它提供了许多方便的功能来简化开发过程。

其中一个重要的功能是数据库操作,而在Yii1中,我们可以使用SQL语句来进行数据库查询。

本文将介绍Yii1中使用SQL语句进行SELECT查询的写法。

在Yii1中,我们可以使用Yii::app()->db->createCommand()方法来创建一个数据库命令对象。

这个方法接受一个SQL语句作为参数,并返回一个命令对象,我们可以通过这个对象来执行SQL查询。

下面是一个使用Yii1进行SELECT查询的示例:```php$sql = "SELECT * FROM `user` WHERE `status` = :status";$command = Yii::app()->db->createCommand($sql);$command->bindValue(':status', 1);$result = $command->queryAll();```在上面的示例中,我们首先定义了一个SQL语句,其中使用了一个占位符`:status`来代替实际的值。

然后,我们使用`Yii::app()->db->createCommand()`方法创建了一个命令对象,并将SQL语句作为参数传递给它。

接下来,我们使用`bindValue()`方法将占位符`:status`绑定到实际的值1上。

最后,我们使用`queryAll()`方法执行查询,并将结果保存在变量`$result`中。

除了`queryAll()`方法,Yii1还提供了其他一些方法来执行SELECT 查询,例如`queryRow()`方法用于查询一行数据,`queryScalar()`方法用于查询单个值等等。

这些方法的使用方式与`queryAll()`方法类似,只是返回的结果类型不同。

sql left用法(一)

sql left用法(一)

sql left用法(一)SQL LEFT函数的用法详解1. 什么是SQL LEFT函数?SQL LEFT函数是一种字符串函数,用于从某个字符串的左侧开始提取指定长度的字符。

它经常用于截断字符串或提取特定信息。

2. SQL LEFT函数的语法SQL LEFT函数的语法如下:LEFT(string, length)其中,string是要截取的原始字符串,length是要提取的字符数。

3. SQL LEFT函数的常用示例下面是一些常见的SQL LEFT函数的用法示例:•示例1:提取字符串的前几个字符SELECT LEFT('Hello World', 5) AS Result;输出结果为:“Hello”解释:该示例将字符串”Hello World”的前5个字符提取出来,即为”Hello”。

•示例2:截断字符串SELECT LEFT('ABCDE', 2) AS Result;输出结果为:“AB”解释:该示例将字符串”ABCDE”的前2个字符提取出来,即为”AB”。

•示例3:提取列中的部分信息假设有一个名为”Customers”的表,其中有一个”FullName”列,存储了客户的全名。

如果我们只想提取客户的姓氏,则可以使用LEFT函数。

SELECT LEFT(FullName, POSITION(' ' IN Full Name)-1) AS LastNameFROM Customers;解释:该示例通过在”FullName”列中找到第一个空格的位置,然后将该位置之前的字符提取出来,即为客户的姓氏。

4. 总结通过使用SQL的LEFT函数,我们可以方便地从字符串中提取指定长度的字符,实现截断字符串或提取特定信息的目的。

无论是简单地截取前几个字符,还是根据特定的位置提取信息,LEFT函数都能够帮助我们快速实现。

5. 注意事项在使用SQL LEFT函数时,需要注意以下几点:•LEFT函数只能用于字符串类型的数据,如果应用到其他类型的数据(如数字或日期),将会报错。

实验一 sql语言及相关操作及答案(1)

实验一   sql语言及相关操作及答案(1)

实验一SQL语言及相关操作一、实验目的本实验的目的是使学生掌握如何在SQL Server Management studio中进行查询分析以及对数据库中的表和数据进行操作,加深对SQL和SQL语言相关操作理解。

熟练掌握数据查询、表的更新等操作方法。

二、实验时数4学时三、实验内容:(1)利用SQL语句进行简单查询和连接查询操作。

1.列出所有course的课程号、课程名和学分。

2.查询所有蒙古族学生的学号、姓名和所在学院。

3.在score表中显示平均成绩都高于85分的学生学号、课程号和成绩。

4.查询选修课称号为001或005且平均成绩大于等于75分学生的学号、课程号和成绩。

5.查询信息管理学院1991年出生的所有男生的信息。

6.查询所有学生的年龄。

7.查询所有姓王或姓黄的学生的姓名、生日和所在班级名称。

8.查询先修课程为”数据结构”的所有课程。

9.查询信息管理学院非汉族同学的学号、姓名、性别及民族。

10.查找选修了“操作系统”的学生学号、成绩和姓名。

11.查找至少选修了一门其直接先修课编号为004的课程的学生学号和姓名。

12.查找至少选修了学号为0800001的学生所选课程的学生学号和姓名。

10413.查询出生日期在1991年以后的学生的学号、姓名、籍贯和年龄。

14.在student表中查询学生的学号、姓名和平均成绩,并按照平均成绩的降序排列。

15.查找了选修了以“C语言程序设计”为其直接先修课的课程的学生学号、课程号和成绩。

16.在score表中查询平均成绩大于80的学生的学号、课程号和成绩,并先按照课程号的升序、再按照成绩的降序排列。

17.查找信息管理学院学生选课情况,显示学生姓名、课程名和成绩。

18.统计student表中的男女学生的人数。

19.查询成绩最高分的学生的学号、课程号和相应成绩。

20.查询选课少于3门的学生的学号及其选课的门数。

(2) 利用SQL语句进行表的管理等操作。

1.给class表中的classname字段添加唯一约束。

SQL语言设计编程题(一)——员工_公司_工资

SQL语言设计编程题(一)——员工_公司_工资

设计编程题1.图书出版社管理数据库中有两个基本表:图书(书号,书名,作者编号,出版社,出版日期);作者(作者编号,作者姓名,年龄,地址)。

试用SQL语句写出以下查询:检索年龄低于作者平均年龄的所有作者的姓名、书名和出版社。

2.设某数据库中有三个关系:员工表EMP(Eno,Ename,age,sex,Ecity),其属性分别表示员工编号、姓名、年龄、性别和籍贯;公司表COMP(Cno,Cname,city),其属性分别表示公司编号、公司名称、公司所在城市;工作表WORKS(Eno,Cno,salary),其属性分别表示员工编号、公司编号和工资。

试用SQL语句写出下列操作:(1)用SQL语句定义上述三个表,并需要指出主关键字和外关键字。

(2)检索超过50岁的男性职工的编号和姓名。

(3)假设每个职工只能在一个公司工作,检索工资超过2500元的男性员工编号和姓名。

(4)检索“美联公司”中低于本公司平均工资的员工编号和姓名。

(有难度)(5)在每一个公司中为50岁以上的员工加薪200元。

(6)删除年龄大于60岁的员工信息。

设计编程题答案1.SELECT 作者.作者姓名, 图书.书名, 图书.出版社FROM 图书, 作者WHERE 图书.作者编号=作者.作者编号AND年龄<(SELECT A VG(年龄) FROM 作者);2.(1)CREATE TABLE EMP(Eno CHAR(8),Ename CHAR(12),age SMALLINT,sex CHAR(2),Ecity CHAR(8),PRIMARY KEY(Eno));CREATE TABLE COMP(Cno CHAR(6),Cname CHAR(20),city CHAR(6),PRIMARY KEY(Cno));CREATE TABLE WORKS(Eno CHAR(6),Cno CHAR(6),salary SMALLINT,PRIMARY KEY(Eno,Cno),FOREIGN KEY(Eno) REFERENCES EMP(Eno),FOREIGN KEY(Cno) REFERENCES COMP(Cno));(2)SELECT Eno, Ename, sexFROM EMPWHERE age>50 AND sex='男';(3)SELECT EMP.Eno, EnameFROM EMP, WORKSWHERE EMP.Eno=WORKS.EnoAND salary>2500 AND sex='男'; (4)SELECT EMP.Eno, EnameFROM EMP, COMP, WORKSWHERE EMP.Eno=WORKS.EnoAND o=oAND Cname='美联公司' ANDsalary<(SELECT A VG(salary)FROM WORKSWHERE Cno IN(SELECT CnoFROM COMPWHERE Cname='美联公司')); (5)UPDATE WORKS SET salary = salary+200 WHERE Eno IN(SELECT EnoFROM EMPWHERE age>50;);(6)DELETE *FROM EMPWHERE age>60;。

sql操作题

sql操作题

sql操作题SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。

它具有通用性、简单易学和功能强大等特点,被广泛应用于数据管理领域。

在本文中,我将根据所给的SQL操作题,回答与之相关的问题。

题目一:查询某部门的员工人数和平均工资解答:```sqlSELECT department, COUNT(employee_id) as number_of_employees, AVG(salary) as average_salaryFROM employeesWHERE department = '部门名称'GROUP BY department;```通过以上SQL语句,我们可以查询指定部门的员工人数和平均工资。

首先,我们从"employees"表中选择部门、统计该部门的员工人数(使用COUNT函数),计算该部门员工薪水的平均值(使用AVG函数),最后通过WHERE子句指定部门名称,并使用GROUP BY子句按部门进行分组,以获得每个部门的结果。

题目二:查询工资高于平均工资的员工信息解答:```sqlSELECT *WHERE salary > (SELECT AVG(salary) FROM employees);```以上SQL语句将返回薪水高于平均工资的员工信息。

首先,我们从"employees"表中选择所有字段,并通过WHERE子句筛选出工资高于整个表薪水平均值的员工。

在子查询中使用AVG函数计算出整个表的薪水平均值,并将其与每个员工的薪水进行比较。

题目三:查询没有参加过项目的员工姓名解答:```sqlSELECT nameFROM employeesWHERE employee_id NOT IN (SELECT employee_id FROM projects);```以上SQL语句将查询没有参加过任何项目的员工姓名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL语言操作示例练习设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩)。

一、数据库创建操作【练习之1-1】:使用SQL命令创建一个包含一个数据文件和一个事务日志文件的数据库。

库文件名和数据文件逻辑名均为教学管理数据库,物理文件名为教学管理数据库.mdf,存储在D盘根目录中,该数据库主数据文件是教学管理数据库,初始大小8MB,最大尺寸80MB,以10%的速度增长。

事务日志文件逻辑名为Book_log,物理文件名为教学管理数据库_log.ldf,初始大小1MB,最大尺寸20MB,以20%的速度增长。

操作示例如下:CREATE DATABASE 教学管理数据库ONPRIMARY (NAME= 教学管理数据库,FILENAME='D:\ 教学管理数据库.mdf',SIZE=8MB,MAXSIZE=80MB,FILEGROWTH=10%)LOG ON(NAME=教学管理数据库_log,FILENAME='D:\ 教学管理数据库_log.ldf',SIZE=1MB,MAXSIZE=20MB,FILEGROWTH=20%)【练习之1-2】修改数据库alter database 教学管理数据库add file(name=教学管理数据库_data2,filename='d: \ 教学管理数据库2.mdf',size=10mb,maxsize=20mb,filegrowth=20%)【练习之1-3】删除数据库use masterdrop database\ 教学管理数据库go二、数据表的创建操作create table【练习之2-1】:使用SQL命令,在“教学管理数据库”下面创建三个数据表。

“学生”表结构学号字符型7 主键姓名字符型8 非空性别字符型 2年龄整形班级字符型10专业字符型10“学生”表use 教学管理数据库Create table 学生(学号char(7) not null,姓名char(8) not null,性别char(2),年龄int,班级char(10),专业char(10)PRIMARY KEY(学号))“课程”表use 教学管理数据库Create table 课程(课程号char (10) not null,课程名char(20) not null,学时数int,PRIMARY KEY(课程号))“选课”表,use 教学管理数据库create table 选课(学号char(7) not null,课程号char(10) not null,成绩int, PRIMARY KEY(学号,课程号),CHECK(成绩>=0 AND 成绩<=100))【练习之2-1】给课程表增加“先修课程”字段。

use教学管理数据库alter table课程add先修课程char(20)【练习之2-2】在“选课表”的“成绩”列中添加一个未经验证的CHECK 约束(0<=成绩<=100)use教学管理数据库ALTER TABLE选课WITH NOCHECKADD CONSTRAINT选课_check CHECK(成绩>=0 and成绩<=100)【练习之2-3】删除表:Drop table <表名>三、数据记录添加【练习之3】:使用SQL语句添加数据。

(1)SQL命令格式:INSERT INTO [教学管理数据库].[dbo].[学生]([学号],[姓名],[性别],[年龄],[班级],[专业])VALUES(<学号,char(7),>,<姓名,nchar(10),>,<性别,char(2),>,<年龄,int,>,<班级,nchar(10),>,<专业,nchar(10),>)(2)操作示例插入学生数据记录use 教学管理数据库insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','沈红兵','男',22,'计算机','软件工程')insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','何雪娟','女',21,'经济','市场营销')insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','狄晓雷','女',22,'计算机','计算机应用')insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','刘军','男',20,'计算机','计算机应用')insert into 学生(学号,姓名,性别,年龄,班级,专业) values('','徐丽','女',20,'计算机','计算机应用')插入课程数据记录use 学生管理数据库insert into 课程(课程号,课程名,学时数) values('1','数据结构',54)insert into 课程(课程号,课程名,学时数) values('2','操作系统',51)insert into 课程(课程号,课程名,学时数) values('3','软件工程',33)insert into 课程(课程号,课程名,学时数) values('4','接口与通讯',51)插入选课数据记录use 学生管理数据库insert into 选课(学号,课程号,成绩) values('','1',84)insert into 选课(学号,课程号,成绩) values('','4',76)insert into 选课(学号,课程号,成绩) values('','2',91)insert into 选课(学号,课程号,成绩) values('','2',81)insert into 选课(学号,课程号,成绩) values('','3',69)insert into 选课(学号,课程号,成绩) values('','1',73)insert into 选课(学号,课程号,成绩) values('','4',80)insert into 选课(学号,课程号,成绩) values('','1',74)insert into 选课(学号,课程号,成绩) values('','3',77)【练习之4】:在将“学生”表中的所有学生的年龄增加1岁。

打开查询分析器,选择“学生管理数据库”,输入如下SQL语句,并执行:UPDATE 学生set 年龄=年龄+1四、数据查询操作【练习之5】查询学生的全部信息。

SELECT * FROM 学生用‘* ’表示学生表的全部列名,而不必逐一列出。

【练习之6】:查询全体学生的学号、姓名和年龄。

SELECT 学号, 姓名, 年龄FROM 学生【练习之7】查询选修了课程的学生号。

SELECT DISTINCT 学号FROM 选课➢查询结果中的重复行被去掉——DISTINCT➢上述查询均为不使用WHERE子句的无条件查询,也称作投影查询。

➢另外,利用投影查询可控制列名的顺序,并可通过指定别名改变查询结果的列标题的名字。

➢【练习之8】查询全体学生的姓名、学号和年龄。

SELECT 姓名学生姓名, 学号, 年龄FROM 学生➢其中,学生姓名为姓名的别名➢use学生管理数据库➢select姓名学生姓名,学号,年龄from学生【练习之6】在“学生”表中查找计算机班的学生的学号、姓名、班级信息。

use 教学管理数据库select 学号,姓名,班级from 学生where 班级='计算机'【练习之7】将“选课”表中的“成绩”字段名改为“考试成绩”,将所有学生成绩提高5%,并显示提高后的成绩;Use 教学管理数据库select 学号,课程号,考试成绩=成绩,成绩*1.05 =提高后成绩from 选课或者:use 教学管理数据库select 学号,课程号,成绩as 考试成绩,成绩*1.05 as 提高后成绩from 选课将上述操作生成的视图产生一个表select 学号,课程号,成绩as 考试成绩,成绩*1.05 as 提高后成绩into 学生成绩表from 选课【练习之7】查询学生表中性别为“男”,并且年龄大于等于22岁的所有学生记录use 教学管理数据库select * from 学生where 性别=’男’ and 年龄>22【练习之8】检索成绩在90分(含)以上的学生学号、课程号和成绩。

Use 教学管理数据库select 学号,课程号,成绩from 选课WHERE 成绩>=90【练习之9】在“学生”表中检索姓名为“何”姓的学生信息。

模糊查询use 教学管理数据库select * from 学生where 姓名LIKE '何%'五、常用库函数及统计汇总查询➢SQL提供了许多库函数,增强了基本检索能力。

➢常用的库函数,如表3.2所示【练习之5-1】求学号为学生的总分和平均分。

SELECT SUM(成绩) AS 总成绩, A VG(成绩) AS 平均成绩FROM 选课WHERE (学号= '')注意:函数SUM和A VG只能对数值型字段进行计算。

【练习之9】多表联合查询,学生、课程、选课三表联合查询按学生班级和学科查询学生的成绩;use 教学管理数据库select 学生.学号,学生.姓名,课程.课程名,选课.成绩from 学生,课程,选课where 学生.学号=选课.学号and 选课.课程号=课程.课程号and 课程.课程名='软件工程'【练习之10】统计学生所有的总成绩和平均成绩;use 教学管理数据库select 学号,姓名,sum(选课.成绩) as 总成绩,avg(选课.成绩) as 平均成绩from 学生,选课,课程where 学生.学号=选课.学号and 选课.课程号=课程.课程号group by 学生.学号,学生.姓名Sum()求和函数;avg()求平均值函数数据库操作练习题一、设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩)。

相关文档
最新文档