精华内容
下载资源
问答
  • 2019access创建数据表、查询和窗体

    千次阅读 2019-10-25 13:59:14
    打开access,在菜单栏选择创建,我们可以看到有 “表格” 、“查询”、“窗体”等模块,我们可以通过这些按钮来进行表的创建查询设计、窗体的创建。 图 1.创建表 1)点击 “表” 点击 “表” ,出现下...

    2019 access创建数据表、查询和窗体

    打开access,在菜单栏选择创建,我们可以看到有 “表格” 、“查询”、“窗体”等模块,我们可以通过这些按钮来进行表的创建、查询设计、窗体的创建。
    在这里插入图片描述
    图 一 图一

    1.创建表

    1)点击 “表”

    点击图一的 “表” ,出现下图,其中第一列 ID 是表默认的一个自增序列
    在这里插入图片描述
    图 二 图二
    单击 “单击已添加”,出现下图,你可以选择你想要添加的数据类型,如:“数字”、“短文本”等,其余数据补充与 EXCEL 类似
    在这里插入图片描述 图 三 图三
    如果你想删除 ID 这一列号,右击上图(图三)箭头处,出现下图,选择设计视图,过程中可能会弹出保存页面,输入表的名字,保存即可。
    在这里插入图片描述
    图 四 图四
    接着,我们进入到了表的设计视图,如下(图五),在这个视图下我们可以删除 ID列,也可以添加其他列、设置主键
    在这里插入图片描述
    图 五 图五
    右击下图(图六)箭头处,可以选择取消和设置这一列为主键,如果想要设置多个主键,可以按住"Ctrl"同时选中多个标签,设置为主键.在这里插入图片描述
    图 六 图六
    如下图(图七), 我已创建好了三个数据表, “boats” 表是船的信息表,其中包括bname(船的名字)、bid(船的编号);“sailors”表是水手的表,即可以预定船的顾客的信息,其中包括sid(水手编号)、sname(水手名字)、rating(水手等级)、age(水手年龄);“reserves”表是船的预定表,其中包括,id(预定号)、sid(水手编号)、bid(船的编号)、date(预定的日期),我们可以对这三个数据表建立表与表之间的关系。
    在这里插入图片描述
    图 七 图七
    点击菜单栏的 “数据库工具” , 接着点击出现的 “关系” ,出现下图(图八)
    在这里插入图片描述
    图 八 图八
    点击上图中的 “显示表”, 出现我们刚刚建立的三个表, 如下,我们可以双击选择或者选中该表并单击页面的 “添加” 按钮来添加一个表 .
    在这里插入图片描述
    图 九 图九
    现在我们选中三个表来创建关系, 选中一个表中的任一标签拖动到另一个表即可出现编辑关系页面, 选择两个表中相同的标签, 即可成功创建它们之间的关系, 如下图(图十),选择结束之后单击确定即可.在这里插入图片描述
    图 10 图10 10

    2.创建查询

    建立好表和关系后,我们就可以根据它们新建查询了, 点击图一中的 “查询设计”( 菜单栏下的"创建" ), 就进入了查询设计试图页面 , 同样我们可以选择我们要基于哪些表来查询,如下图
    在这里插入图片描述
    图 11 图11 11
    我们选择刚刚建好的三张表,在下图中的 “字段” 中选择你要限定的标签,在 “条件”位置填写你对这个标签值的限定条件,如下图(图12)
    在这里插入图片描述
    图 12 图12 12
    确定好条件之后,点击上图最左侧的 “视图”,选择数据表视c图,就可以看到该条件下的查询结果了。
    在这里插入图片描述
    图 13 图13 13
    除了上述的创建查询的方法,你还可以通过:

    1. 在图一上(菜单栏“创建”下)的 “查询向导” 的指示下一步一步完成查询
    2. 在图13中最左端的视图下选择SQL视图,用SQL语言写查询条件,生成数据表,如:图14在这里插入图片描述
      图 14 图14 14

    3.创建窗体

    在图一(菜单栏“创建”下)选择空白窗体,到如下图:
    在这里插入图片描述
    图 15 图15 15
    选择上图右侧 “字段列表” 中的 “显示所有表”,双击选择你想要显示的信息,如下:
    在这里插入图片描述
    图 16 图16 16
    创建出来的这个窗口作为一个要显示的弹窗,你可以直接在下方的搜索栏里面搜索相关的数据,也可以将它作为其他表的一个特定显示窗口,保存为窗体信息查询列表。例如,你想要在一个窗口上输入一只船的名字,然后就能显示出它的颜色及编号,你就可以将上面的窗体作为它要弹出的窗体。现在,你需要创建一个新的窗口,作为输入船的名字的窗体,并将它输入的值与该窗体的船的名字连接起来。
    再创建一个新的 “空白窗体”,如上,选择 “窗体布局” 下的 “设计”,如下:
    在这里插入图片描述
    图 17 图17 17
    单击选择上图红箭头指向的 “ 文本框”,点击它,在窗体上画文本框,会弹出来一个向导页面,可以设置这个文本框的字体、输入法、对齐参数等等,在最后页面输入你的文本框的名字,如: text0, 单击完成。
    在这里插入图片描述
    图 17 图17 17
    接着单击下图中红色箭头指向的 “按钮” 图标,
    在这里插入图片描述
    图 18 图18 18
    在窗体内画按钮,弹出页面,选择 “窗体操作” ,选择 “ 打开窗体”,单击下一步,
    在这里插入图片描述
    图 19 图19 19
    选择你将要弹出的窗体,我们要显示船的信息,就选择刚刚创建的 “窗体信息查询列表”,单击下一步
    在这里插入图片描述
    我们要显示是的与输入的船的名字相关的信息,选择 “打开窗体并查找要显示的特定数据”,单击下一步
    在这里插入图片描述
    选择左侧该窗体下的 “text0 ” 和 右侧窗口的船的名字 “bname”,单击红箭头指向的图标,将这两个值关联起来,单击下一步
    在这里插入图片描述
    选择在按钮上显示图片还是文字,在这里我们选择显示文字 “ 查询 ”,单击下一步
    在这里插入图片描述
    指定按钮的名称,可以采取默认,单击完成。
    在这里插入图片描述
    单击最左侧的 “视图”,选择 “窗体视图”,在 text0 文本框内输入一个船的名字 “aaaa”,单击查询
    在这里插入图片描述
    即可弹出要显示的信息,如下:
    在这里插入图片描述这样,我们创建窗体和弹出窗体就完成了,你可以在窗体的 “布局视图” 设置背景图片,如下:
    在这里插入图片描述
    也可以在布局视图下拖动调整按钮的位置等等,如下:
    在这里插入图片描述

    展开全文
  • 创建YGGL数据库并在YGGL数据库创建表:employees,salary,departments 创建XSCJ数据库并在XSCJ数据库创建表:XS,KC,XS_KC 、YGGL 1.首先需要创建YGGL数据库: create database YGGL default character...

    实训内容

    创建YGGL数据库并在YGGL数据库创建三个表:employees,salary,departments。

    创建XSCJ数据库并在XSCJ数据库创建三个表:XS,KC,XS_KC。

    一、YGGL数据库

    1.首先需要创建YGGL数据库:

    create database YGGL
    	default character set gb2312 collate gb2312_chinese_ci;
    

    创建数据库代码
    ▲因为我已经创建过了,所以图片里的代码数据库名会+1,以下+1操作不做重复解释。

    2.创建员工信息表employees

    use YGGL;
    create table employees (
      员工编号 char(6) NOT NULL,
      姓名 char(10) NOT NULL,
      学历 char(4) NOT NULL,
      出生日期 date NOT NULL,
      性别 char(2) NOT NULL,
      工作年限 tinyint(1) DEFAULT NULL,
      地址 varchar(20) DEFAULT NULL,
      电话号码 char(11) DEFAULT NULL,
      员工部门号 char(3) DEFAULT NULL,
      PRIMARY KEY (员工编号)
    ) ENGINE=InnoDB;
    

    创建表格
    3.创建员工薪水情况表salary

    CREATE TABLE salary (
      员工编号 char(6) NOT NULL,
      收入 float(8,2) NOT NULL,
      支出 float(8,2) NOT NULL,
      PRIMARY KEY (员工编号)
    ) ENGINE=InnoDB;
    

    创建员工薪水表
    4.创建部门信息表departments

    CREATE TABLE departments (
      部门编号 char(3) NOT NULL,
      部门名称 char(20) NOT NULL,
      备注 text,
      PRIMARY KEY (部门编号)
    ) ENGINE=InnoDB;
    

    创建部门信息表
    5.给salary表建立数据完整性约束,创建外键,以保证当要删除和更新employees表中的员工编号时,自动删除和更新salary表中匹配的行。

    alter table salary add foreign key (员工编号) references employees(员工编号) on delete cascade on update cascade;
    

    修改完整性
    6.插入数据
    (1)插入employees表数据

    INSERT INTO employees VALUES ('000001', '王林', '大专', '1966-01-23', '1', 8, '中山路32-1-508', '83355668', '2');
    INSERT INTO employees VALUES ('010008', '伍容华', '本科', '1976-03-28', '1', 3, '北京东路100-2', '83321321', '1');
    INSERT INTO employees VALUES ('020010', '王向荣', '硕士', '1982-12-09', '1', 2, '四牌楼', '83792361', '1');
    INSERT INTO employees VALUES ('020018', '李丽', '大专', '1960-07-30', '0', 6, '中山东路102-2', '83413301', '1');
    INSERT INTO employees VALUES ('102201', '刘明', '本科', '1972-10-18', '1', 3, '虎距路100-2', '83606608', '5');
    INSERT INTO employees VALUES ('102208', '朱俊', '硕士', '1965-09-28', '1', 2, '牌楼巷5-3-106', '84708817', '5');
    INSERT INTO employees VALUES ('108991', '钟敏', '硕士', '1979-08-10', '0', 4, '中山路10-3-105', '83346722', '3');
    INSERT INTO employees VALUES ('111006', '张石兵', '本科', '1974-10-01', '1', 1, '解放路34-1-203', '84563418', '5');
    INSERT INTO employees VALUES ('210678', '林涛', '大专', '1977-04-02', '1', 2, '中山北路24-35', '83467336', '3');
    INSERT INTO employees VALUES ('302566', '李玉珉', '本科', '1968-09-20', '1', 3, '热和路209-3', '58765992', '4');
    INSERT INTO employees VALUES ('308759', '叶凡', '本科', '1978-11-18', '1', 2, '北京西路3-7-52', '83308901', '4');
    INSERT INTO employees VALUES ('504209', '陈林琳', '大专', '1969-09-03', '0', 5, '汉中路120-4-12', '84468158', '4');
    

    (2)插入salary表数据

    INSERT INTO salary VALUES ('000001', 2100.80, 123.09);
    INSERT INTO salary VALUES ('010008', 1582.62, 88.03);
    INSERT INTO salary VALUES ('020010', 2860.00, 198.00);
    INSERT INTO salary VALUES ('020018', 2347.68, 180.00);
    INSERT INTO salary VALUES ('102201', 2569.88, 185.65);
    INSERT INTO salary VALUES ('102208', 1980.00, 100.00);
    INSERT INTO salary VALUES ('108991', 3259.98, 281.52);
    INSERT INTO salary VALUES ('111006', 1987.01, 79.58);
    INSERT INTO salary VALUES ('210678', 2240.00, 121.00);
    INSERT INTO salary VALUES ('302566', 2980.70, 210.20);
    INSERT INTO salary VALUES ('308759', 2531.98, 199.08);
    INSERT INTO salary VALUES ('504209', 2066.15, 108.00);
    

    (3)插入departments表数据

    INSERT INTO departments VALUES ('1', '财务部', NULL);
    INSERT INTO departments VALUES ('2', '人力资源部', NULL);
    INSERT INTO departments VALUES ('3', '经理办公室', NULL);
    INSERT INTO departments VALUES ('4', '研发部', NULL);
    INSERT INTO departments VALUES ('5', '市场部', NULL);
    

    7.对YGGL数据库进行select语句查询。
    (1)查询employees表员工部门号和性别,要求消除重复行。

    select distinct 员工部门号,性别 from employees;
    

    在这里插入图片描述
    (2)计算每个雇员的实际收入(实际收入=收入-支出)。

    select 员工编号,姓名,收入-支出 as 实际收入 from salary join employees using(员工编号);
    

    在这里插入图片描述
    (3)查询employees表中员工的姓名和性别,要求sex值为1时显示为“男”,为0时显示为“女”

    select 姓名,case when 性别='1' then '男' when 性别='0' then '女' end as 性别 from employees; 
    

    在这里插入图片描述
    (4)查询每个雇员的地址和电话,显示的列标题要求显示“address” “telephone”。

    select 地址 as address,电话号码 as telephone from employees;
    

    在这里插入图片描述
    (5)计算salary表中员工月收入的平均数。

    select avg(收入) as 员工平均收入 from salary;
    

    在这里插入图片描述
    (6)计算所有员工的总支出。

    select sum(支出) as 员工的总支出 from salary;
    

    在这里插入图片描述
    (7)显示女雇员的地址和电话。

    select 姓名,地址,电话号码 from employees where 性别='0';
    

    在这里插入图片描述
    (8)计算员工总数。

    select count(*) as 员工总人数 from employees;
    

    在这里插入图片描述
    (9)显示员工的最高收入和最低收入。

    select max(收入) as 最高收入,min(收入) as 最低收入 from salary;
    

    在这里插入图片描述
    8.对YGGL数据库进行条件查询。
    (1)显示月收入高于2000元的员工的员工号。

    select 员工编号,收入 from salary where 收入>=2000;
    

    在这里插入图片描述
    (2)查询1970年以后出生的员工的姓名和地址。

    select 姓名,地址,出生日期 from employees where 出生日期>='1970';
    

    在这里插入图片描述
    (3)显示工作年限三年以上(含3年)、学历在本科以上(含本科)的男性员工的信息。

    select 姓名,性别,工作年限,学历 from employees where 性别='1' and 工作年限>=3 and 学历='本科';
    

    在这里插入图片描述
    (4)查找员工号中倒数第二个数字为0的员工的姓名、地址和学历。

    select 员工编号,姓名,地址,学历 from employees where 员工编号 like '%0_';
    

    在这里插入图片描述
    (5)查询月收入在2000~3000元的员工。

    select 姓名,收入 from salary join employees on (salary.员工编号=employees.员工编号) where 收入>=2000 and 收入<=3000;
    

    在这里插入图片描述
    9.对YGGL数据库进行多表查询。
    (1)查询“王林”的基本情况和所工作的部门名称。

    select distinct * from employees join departments on (employees.员工部门号=departments.部门编号) join salary on (employees.员工编号=salary.员工编号) where 姓名='王林';
    

    在这里插入图片描述
    (2)查询财务部、研发部、市场部的员工信息。

    select * from departments join employees on(employees.员工部门号=departments.部门编号) where 部门名称='财务部' or 部门名称='研发部' or 部门名称='市场部';
    

    在这里插入图片描述

    (3)查询每个雇员的基本情况和薪水情况。

    select distinct * from employees join salary on(employees.员工编号=salary.员工编号);
    

    在这里插入图片描述

    (4)查询研发部在1970年以前出生的员工姓名和薪水情况。

    select 姓名,出生日期,部门名称,收入,支出 from employees join salary on(employees.员工编号=salary.员工编号) join departments on(employees.员工部门号=departments.部门编号) where 部门名称='研发部' and 出生日期>'1970';
    

    在这里插入图片描述

    (5)查询employees表中员工的姓名、住址和收入水平,要求2000元以下显示为“低收入”,2000~3000显示为“中等收入”,3000元以上时显示为“高收入”。

    select 姓名,地址,case when 收入<2000 then '低收入' when 收入>=2000 and 收入<=3000 then '中等收入' else '高收入' end as 收入水平 from employees join salary on(employees.员工编号=salary.员工编号);
    

    在这里插入图片描述
    10.对YGGL进行分类汇总与排序。
    (1)按部门列出该部门工作的员工人数。

    select 部门名称,count(*) from departments join employees on(employees.员工部门号=departments.部门编号) group by 部门名称;
    

    在这里插入图片描述
    (2)分别统计男性员工和女性员工人数。

    select 性别,count(*) from employees group by 性别;
    

    在这里插入图片描述
    (3)查找雇员数超过2人的部门名称和员工数量。

    select 部门名称,count(*) as 员工人数 from departments join employees on(employees.员工部门号=departments.部门编号) group by 部门名称 having count(*)>2;
    

    在这里插入图片描述
    (4)按员工学历分组统计各种学历人数。

    select 学历,count(*) from employees group by 学历;
    

    (5)将员工信息按出生日期从大到小排序。

    select * from employees order by 出生日期 desc;
    

    在这里插入图片描述
    (6)将员工薪水按收入多少从小到大排序。

    select 姓名,收入 from employees join salary on(employees.员工编号=salary.员工编号) order by 收入;
    

    在这里插入图片描述
    (7)按员工的工作年限进行分组,统计各个工作年限的人数,并按人数从小到大排序。

    select 工作年限,count(*) from employees group by 工作年限 order by count(*);
    

    在这里插入图片描述

    二、XSCJ数据库

    1.首先需要创建XSCJ数据库:

    create database XSCJ
    	default character set gb2312 collate gb2312_chinese_ci;
    

    创建数据库
    ▲因为我已经创建过了,所以图片里的代码数据库名会+1,以下+1操作不做重复解释。

    2.创建学生基本情况表XS

    use XSCJ;
    CREATE TABLE XS (
      学号 char(6) NOT NULL,
      姓名 char(8) DEFAULT NULL,
      专业名 char(10) NOT NULL DEFAULT '计算机',
      性别 tinyint(1) DEFAULT NULL,
      出生时间 date DEFAULT NULL,
      总学分 tinyint(1) NOT NULL,
      照片 blob,
      备注 text,
      PRIMARY KEY (学号)
    ) ENGINE=InnoDB;
    

    创建表
    3.创建课程信息表KC

    CREATE TABLE KC (
      课程号 char(3) NOT NULL,
      课程名 char(16) DEFAULT NULL,
      开课学期 tinyint(1) DEFAULT NULL,
      学时 tinyint(1) DEFAULT NULL,
      学分 tinyint(1) NOT NULL,
      PRIMARY KEY (课程号)
    ) ENGINE=InnoDB;
    

    在这里插入图片描述
    4.创建成绩表XS_KC

    CREATE TABLE XS_KC (
      学号 char(6) NOT NULL,
      课程号 char(3) NOT NULL,
      成绩 tinyint(1) NOT NULL,
      学分 tinyint(1) NOT NULL,
      PRIMARY KEY (学号,课程号)
    ) ENGINE=InnoDB;
    

    在这里插入图片描述
    (1)建立数据完整性约束,创建外键,以保证当要删除和更新XS表中的学号时,自动删除和更新XS——KC表中匹配的行。

    alter table xs_kc add foreign key(学号) references XS(学号) on delete cascade on update cascade;
    
    alter table xs_kc add foreign key(课程号) references KC(课程号) on delete cascade on update cascade;
    

    在这里插入图片描述
    5.插入数据
    (1)插入XS表数据

    INSERT INTO XS VALUES ('081101', '王林', '计算机', 1, '1990-02-10', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081102', '程明', '计算机', 1, '1989-10-06', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081103', '王燕', '计算机', 0, '1989-10-06', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081104', '韦严严', '计算机', 1, '1990-08-26', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081106', '李方方', '计算机', 1, '1990-11-20', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081107', '李明', '计算机', 1, '1990-05-01', 54, NULL, '提前修完《数据结构》,成绩游戏');
    INSERT INTO XS VALUES ('081108', '林一帆', '计算机', 1, '1989-08-05', 52, NULL, '已提前修完一门课');
    INSERT INTO XS VALUES ('081109', '张强民', '计算机', 1, '1989-08-11', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081110', '张蔚', '计算机', 0, '1991-07-22', 50, NULL, '三好生');
    INSERT INTO XS VALUES ('081111', '赵琳', '计算机', 0, '1990-03-18', 50, NULL, NULL);
    INSERT INTO XS VALUES ('081113', '严红', '计算机', 0, '1989-08-11', 48, NULL, '有一门功课不及格,待补考');
    INSERT INTO XS VALUES ('081201', '王敏', '通信工程', 1, '1989-06-10', 42, NULL, NULL);
    INSERT INTO XS VALUES ('081202', '王林', '通信工程', 1, '1989-01-29', 40, NULL, '有一门功课不及格,待补考');
    

    (2)插入KC表数据

    INSERT INTO KC VALUES ('101', '计算机基础', 1, 80, 5);
    INSERT INTO KC VALUES ('102', '程序设计与语言', 2, 68, 4);
    INSERT INTO KC VALUES ('206', '离散数学', 4, 68, 4);
    INSERT INTO KC VALUES ('208', '数据结构', 5, 68, 4);
    INSERT INTO KC VALUES ('209', '操作系统', 6, 68, 4);
    INSERT INTO KC VALUES ('210', '计算机原理', 5, 85, 5);
    INSERT INTO KC VALUES ('212', '数据库原理', 7, 68, 4);
    INSERT INTO KC VALUES ('301', '计算机网络', 7, 51, 3);
    INSERT INTO KC VALUES ('302', '软件工程', 7, 51, 3);
    

    (3)插入XS_KC表数据

    INSERT INTO XS_KC VALUES ('081101', '101', 80, 5);
    INSERT INTO XS_KC VALUES ('081101', '102', 78, 4);
    INSERT INTO XS_KC VALUES ('081101', '206', 76, 4);
    INSERT INTO XS_KC VALUES ('081102', '102', 78, 4);
    INSERT INTO XS_KC VALUES ('081102', '206', 78, 4);
    INSERT INTO XS_KC VALUES ('081103', '101', 62, 5);
    INSERT INTO XS_KC VALUES ('081103', '102', 70, 4);
    INSERT INTO XS_KC VALUES ('081103', '206', 81, 4);
    

    6.对XSCJ数据库进行数据查询。
    (1)查询XS表中各个同学的姓名、专业名、和总学分。

    select 姓名,专业名,总学分 from XS;
    

    在这里插入图片描述
    (2)查询XS表中计算机系同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。

    select 学号 as number,姓名 as ame,总学分 as mark from XS where 专业名='计算机';
    

    在这里插入图片描述
    (3)查询xs表中计算机系各同学的学号、姓名和总学分,对其总学分按以下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为优秀。列标题更改为”等级“。

    select 学号,姓名,总学分,case when 总学分 is null then '尚未选课' when 总学分<50 then '不及格' when 总学分>=50 and 总学分<=52 then '合格' when 总学分>52 then '优秀' end as 等级 from XS where 专业名='计算机';
    

    在这里插入图片描述
    (4)按120分计算成绩,显示XS_KC 表中学号为081101的学生课程信息。

    select *,姓名,round(成绩*1.2,2) as 120分值的成绩 from XS_KC join xs using(学号) where 学号='081101';
    

    在这里插入图片描述
    (5)对XS表只选择专业名和总学分,消除结果集中的重复行。

    select distinct 专业名,总学分 from XS;
    

    在这里插入图片描述
    (6)求学生的总人数。

    select count(*) as 总人数 from XS;
    

    在这里插入图片描述
    (7)统计备注不为空的学生数目。

    select count(*) as 备注不为空的人数 from XS where 备注 is not null;
    

    在这里插入图片描述
    (8)统计总学分在50分以上的人数。

    select count(*) as 总学分在50以上的人数 from XS where 总学分>=50;
    

    在这里插入图片描述
    (9)求选修101课程的学生的最高分和最低分。

    select 课程号,max(成绩) as 最高成绩,min(成绩) as 最低成绩 from XS_KC join XS on(XS.学号=XS_KC.学号) where 课程号='101';
    

    在这里插入图片描述
    (10)求学号081101的学生所学课程的总成绩。

    select 学号,sum(成绩) as 总成绩 from XS_KC where 学号='081101';
    

    在这里插入图片描述
    (11)求选修101课程的学生的平均成绩。

    select avg(成绩) as 选修101课程平均成绩 from XS_KC where 课程号='101';
    

    在这里插入图片描述
    (12)查询XSCJ数据库XS表中学号为081101的学生的情况。

    select * from XS where 学号='081101';
    

    在这里插入图片描述
    (13)查询XS表中总学分大于50的学生的情况。

    select * from XS where 总学分>=50;
    

    在这里插入图片描述
    (14)查询XS表中备注为空的同学的情况。

    select * from XS where 备注 is null;
    

    在这里插入图片描述
    (15)查询XS表中专业为计算机,性别为女(0)的同学的情况。

    select * from XS where 专业名='计算机' and 性别='0';
    

    在这里插入图片描述
    (16)查询XS_KC 表中102 和206课程中大于80分的同学的记录。

    select * from XS_KC where (课程号='102' or 课程号='206') and 成绩>=80;
    

    在这里插入图片描述
    (17)查询XSCJ 数据库XS 表中姓王的学生学号、姓名及性别。

    select 学号,姓名,性别 from XS where 姓名 like '王%';
    

    在这里插入图片描述
    (18)查询XSCJ数据库XS表中学号倒数第二个数字为0的学生学号、姓名及专业名。

    select 学号,姓名,专业名 from xs where 学号 like '%0_';
    

    在这里插入图片描述
    (19)查询XS表中名字包含下划线的学生学号和姓名。

    select 学号,姓名 from xs where 姓名 like '%#_%'escape '#';
    

    在这里插入图片描述
    ▲为了证明语法正确,故意把表里的数据改了一下在进行查询,但其实运行结果应该是下面这张图才对
    在这里插入图片描述
    (20)查询XS表中不在1989年出生的学生情况。

    select * from xs where 出生时间<'1989-01-01' or 出生时间>='1989-12-31';
    

    下列与上列语句等价

    select * from xs where 出生时间 not between '1989-01-01' and '1989-12-31';
    

    在这里插入图片描述
    (21)查询xs表中专业名为“计算机” “通信工程” 或 “无线电” 的学生的情况。

    select * from xs where 专业名='计算机' or 专业名='通信工程' or 专业名='无线电';
    

    在这里插入图片描述
    (22)查询xscj数据库中总学分尚不定的学生的情况。

    select * from xs where 总学分 is null;
    

    在这里插入图片描述
    (23)查找xscj数据库中所有学生选过的课程名和课程号。

    select 课程名,课程号 from xs_kc join xs on(XS_KC.学号=XS.学号) join kc using(课程号);
    

    在这里插入图片描述
    (24)查找选修了206课程且成绩在80分以上的学生姓名及成绩。

    select 姓名,成绩,课程号 from XS_KC join xs using(学号) where 课程号='206' and 成绩>80;
    

    在这里插入图片描述
    (25)查找选修了“计算机基础” 课程且成绩在80分以上的学生学号、姓名、课程名及成绩。

    select 学号,姓名,课程名,成绩 from XS_KC join xs using(学号) join kc using(课程号) where 课程名='计算机基础' and 成绩>=80;
    

    在这里插入图片描述
    (26)查找xscj数据库中课程不同、成绩相同的学生的学号、课程号和成绩。

    select 学号,成绩,课程号 from XS_KC where 成绩 in(select 成绩 from XS_KC group by 成绩 having count(*)>1);
    

    在这里插入图片描述
    (27)查找kc表中所有学生选过的课程名。

    select distinct 课程名 as 选过的课程名 from kc join xs_kc using(课程号);
    

    在这里插入图片描述
    (28)查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况。

    select * from xs left outer join XS_KC on(xs.学号=XS_KC.学号);
    

    在这里插入图片描述
    (29)查找被选修了的课程的选修情况和所有开设的课程名。

    select * from kc left join xs_KC on(kc.课程号=xs_kc.课程号);
    

    在这里插入图片描述
    (30)查找在xscj数据库中选修了课程号206的课程的学生的姓名、学号。

    select 姓名,学号 from xs_kc join xs using(学号) where 课程号='206';
    

    在这里插入图片描述
    (31)查找未选修离散数学的学生的姓名、学号、专业名。

    select 姓名,学号,专业名 from xs where 学号 not in(select 学号 from XS_KC where 课程号 in(select 课程号 from KC where 课程名='离散数学'));
    

    在这里插入图片描述
    (32)查找选修了离散数学的学生学号。

    select 学号 from XS_kc join kc using(课程号) where 课程名='离散数学';
    

    在这里插入图片描述
    (33)查找xs表中比所有计算机系的学生年龄都大的学生学号、姓名、专业名、出生日期。

    select 学号,姓名,专业名,出生时间 from xs where 出生时间>all (select 出生时间 from xs where 专业名='计算机');
    

    在这里插入图片描述
    (34)查找xs_kc表中课程号为206的成绩不低于课程号101的最低成绩的学生的学号。

    select 学号 from XS_KC where 课程号='206' and 成绩>any(select 成绩 from XS_KC where 课程号='101');
    

    在这里插入图片描述
    (35)查找选修了206号课程的学生姓名。

    select 姓名 from xs join XS_KC using(学号) where 课程号='206';
    

    在这里插入图片描述
    (36)将xs中各专业名输出。

    select 专业名 from xs;
    

    在这里插入图片描述
    (37)求xs中各专业的学生数。

    select 专业名,count(*) as 各专业学生数 from xs group by 专业名;
    

    在这里插入图片描述
    (38)求被选修的各们课程的平均成绩和选修该课程的人数。

    select 课程号,avg(成绩) as 各选修课程的平均成绩,count(*) from XS_KC group by 课程号;
    

    在这里插入图片描述
    (39)在xscj数据库上产生一个结果集,包括每个专业的男生人数、女生人数、总人数以及学生总人数。

    select 专业名,性别,count(*) as 各专业的人数 from xs group by 专业名,性别 with rollup;
    

    在这里插入图片描述
    (40)查找xscj数据中平均成绩在85分以上的学生的学号和平均成绩。

    select 学号,avg(成绩) as 平均成绩 from XS_KC group by 学号 having avg(成绩)>85;
    

    在这里插入图片描述
    (41)查找选修课程超过2门且成绩都在80分以上的学生的学号。

    select 学号 from XS_KC where 成绩>=80 group by 学号 having count(*)>2;
    

    在这里插入图片描述
    (42)将通信工程专业的学生按出生日期先后排序。

    select 专业名,出生时间 from xs where 专业名='通信工程' order by 出生时间;
    

    在这里插入图片描述
    (43)将计算机专业学生的“计算机基础”课程成绩按降序排列。

    select 课程名,成绩 from kc join XS_kc using(课程号) where 课程名='计算机基础' order by 成绩 desc;
    

    在这里插入图片描述
    (44)将计算机专业学生按期平均成绩排列。

    select 学号,姓名,专业名 from xs where 专业名='计算机' order by(select avg(成绩) from XS_KC group by XS_KC.学号 having xs.学号=XS_KC.学号);
    

    在这里插入图片描述
    (45)查找XS表中学号最靠前的5位学生的信息。

    select * from xs order by 学号 limit 5;
    

    在这里插入图片描述
    (46)查找XS表中从第四位同学开始的5位学生的信息。

    select * from xs order by 学号 limit 3,5;
    

    在这里插入图片描述

    完啦!!!!!!!!!

    展开全文
  • MYSQL查询大于创建时间小时的数据

    万次阅读 2020-07-10 14:11:34
    1.查询大于times小时的数据 //大于号后面都是获取times小时后的时间 select*from table where now() >SUBDATE(times,interval -1 hour); select*from table where now() > SUBDATE(times,interval -60*60...

     

    以下代码中times为时间字段,类型为datetime


    1.查询大于times一小时的数据

    //大于号后面都是获取times一小时后的时间
    select*from table where now() >SUBDATE(times,interval -1 hour);
    select*from table where now() > SUBDATE(times,interval -60*60 second);
    select*from table where now() > date_add(times,interval -1 hour);
    select*from table where now() >ADDDATE(times,interval 15 hour);

    2.查询大于times一天的数据

    //大于号后面都是获取times一天后的时间
    select*from table where now() >SUBDATE(times,interval -1 day);
    select*from table where now() > SUBDATE(times,interval -60*60*60 second);
    select*from table where now() > date_add(times,interval -1 day);
    select*from table where now() >ADDDATE(times,interval 15 day);

    展开全文
  • 用类与对象创建一个银行账户类。银行账户类包括账号、用户姓名、密码和余额属性,银行账户类的功能包括: 开户 查询余额 取款 存款 功能实现思路: 开户方法 Account(),创建账户的账号、密码、姓名和余额 ...

    用类与对象创建一个银行账户类。银行账户类包括账号、用户姓名、密码和余额属性,银行账户类的功能包括:

    • 开户
    • 查询余额
    • 取款
    • 存款

    功能实现思路:

    • 开户方法 Account(),创建账户的账号、密码、姓名和余额
    • 查询方法 Display(),显示账户的账号、姓名和余额信息
    • 取款方法 takeMoney(),先让用户输入密码验证,密码正确后输入取款金额,取款成功后余额减除相应的金额
    • 存款方法 saveMoney(int moneys),存款是直接传入存款金额,账户余额增加相应的金额
    import java.util.Scanner;
    
    public class Account {
    	
    	public int id;
    	public String name;
    	public int password;
    	public int money;
    	
    	//方法Account(),创建账户的账号、密码、姓名和余额
    	public Account(int id, String name, int password, int money) {
    	    this.id = id;
    	    this.name = name;
    	    this.password = password;
    	    this.money = money;
    	}
    	
    	//方法Display(),显示账户的账号、姓名和余额信息
    	public void Display(){
    	    System.out.println("账户:" + id);
    	    System.out.println("姓名:" + name);
    	    System.out.println("余额:" + money);
    	}
    	
    	/*取款方法 takeMoney(),先让用户输入密码验证,
    	密码正确后输入取款金额,取款成功后余额减除相应的金额*/
    	public void takeMoney(){
    	    while(true){
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入密码进行验证!");
    		int pass = sc.nextInt();
    		if(pass == password){
    		    System.out.println("请输入需要取款的金额:");
    		    int withdrawals = sc.nextInt();
    		    if(withdrawals <= money) {
    			money= money-withdrawals;
    			System.out.println("账户余额:" + money);
    		    }else {
    			System.out.println("当前余额不足!");
    		    }
    		    break;
    		}else {
    		    System.out.println("你输入的密码有误,请重新输入!");
    		}
    		sc.close();
    	    }
    	}
    	
    	/*存款方法 saveMoney(int moneys),
    	存款是直接传入存款金额,账户余额增加相应的金额*/
    	public void saveMoney(int inmoney){	
    	    money = money + inmoney;
    	    System.out.println("此次存款为:" + inmoney);
    	    System.out.println("账户余额:" + money);
    	}
    	
    	public static void main(String[] args) {
    	    Account acc = new Account(10000,"小明",123456,100000);
    	    /*
    	    acc.id = 10000;
    	    acc.name = "小明";		
    	    acc.password = 123456;
    	    acc.money = 100000;
    	    */
    	    Scanner sc = new Scanner(System.in);
    	        while(true) {
    		    System.out.println("---欢迎进入银行账户操作系统---");
    		    System.out.println("---------1银行账户信息--------");
    		    System.out.println("---------2取款操作------------");
    		    System.out.println("---------3存款操作------------");
    		    System.out.println("---------4退出系统------------");
    		    System.out.println("------------------------------");
    		    int choice = sc.nextInt();
    			switch(choice) {
    			case 1:
    			    System.out.println("---银行账户信息---");
    			    acc.Display();
    			    break;
    			case 2:
    			    System.out.println("---取款操作---");
    			    acc.takeMoney();
    			    break;
    			case 3:
    			    System.out.println("---存款操作---");
    			    acc.saveMoney(1000);
    			    break;
    			case 4:
    			    System.exit(0);
    			    break;
    			default:
    			    System.out.println("您的选择有误!");
    			    break;
    			}
    		}
    	}
    }
    

     

    展开全文
  • 【教她写代码】使用Intellij创建一个Springboot程序

    万次阅读 多人点赞 2016-05-20 19:24:53
    首先先介绍一下Springboot:Spring是Java开发中,十分著名的一个框架。但是该框架的使用必须结合大量的XML配置文件,这一点让开发人员痛苦无比。Springboot是Spring官方重新构造的一个框架,将Spring的配置简化了很...
  • 创建一个简单的触发器

    千次阅读 2010-05-08 13:02:00
    一、创建一个简单的触发器触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。触发器可以在...
  • 数据库索引创建,查询

    千次阅读 2018-04-26 10:55:14
    索引的详解索引的创建 主键索引的创建 主键索引的创建有两种方式, 1 在创建表的时候, 直接在指定列或者某几列为主键 create table aaa(id int primary key , name varchar(32)) 2添加表后, 对指定列创建索引...
  • spring data jpa 可以通过在接口中按照规定语法创建一个方法进行查询,spring data jpa 基础接口中,如CrudRepository中findOne,save,delete等,那么我们自己怎么按照需要创建一个方法进行查询呢? 最常见的做法是...
  • 在webstorm创建一个新的vue页面

    千次阅读 2018-05-25 00:05:42
    在前端开发过程中我通常使用Sublime text 3跟webstorm一起开发这次先讲讲简单的,怎么用webstorm在已有的项目创建一个新的页面。1.在已有视图的文件夹右击会出现:选择NEW-》Vue Component2.创建页面的名称3.页面...
  • 基本使用(创建节点,关系,查询) 详细使用,请参考w3school Neo4j教程 安装Neo4j Desktop 官网:https://neo4j.com/ 下载neo 4j 根据提示进行安装,运行出现如下界面,选择存放位置 出现...
  •  在大学期间,不过学习 C/C++ 还是 Java,每次写的程序都是控制台黑框框,有时候想设计一个可视化的应用程序却不知从何下手,大学里面的课程也没有 Windows 程序设计相关,有点苦恼。本文就这个问题分享一下创建 ...
  • openstack创建一个虚拟机的过程

    万次阅读 多人点赞 2017-05-15 09:54:09
    为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签...资源可以循环利用的一个过程(PS:没有虚拟化就没有云
  • MySQL创建前缀索引和索引选择

    千次阅读 2018-05-05 17:49:15
    “天忽作晴山捲慢,云犹含态石披衣” 什么是前缀索引: 一般情况下,如果需要作为索引的那列长度很长....索引选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行.唯一索引的选择性是...
  • SQ01 快速创建SAP查询报表

    万次阅读 2011-12-05 14:15:53
    ,Query 无需编程在SAP中利用查询创建各种报表; 创建时,自带各种功能:比如:分类汇总,小计,特别标示..... 二, 增加计算栏位; 如有特殊需求,可以增加一些栏位,用来存放中间计算结果 三, Query 转成Tcode;  创建...
  • 之后再点击上方工具栏中的新建查询,界面中会出现一个编辑区,我们就可以在编辑区输入代码并调试执行了。 下面是我创建的名为STC的数据库代码: CREATE DATABASE STC ON ( NAME=Stc_Data, FILENAME='E:\数据库\...
  • 1.文档编写目的在使用CDH集群中经常会有一些特定顺序的作业需要在集群中运行,对于需要多个作业顺序执行的情况下,如何能够方便的构建一个完整的工作流在CDH集群中执行,前面Fayson也讲过关于Hue创建工作流的一系列...
  • Intellij Idea作为一款编程工具,自从尝到它的强大功能带来的甜头后,就再也不想用Eclipse来进行开发了。下面用它来演示一下如何创建一个普通的Java工程,并导入MySql数据库的驱动包,用JDBC方式来连接数据库。
  • SQL2000中创建作业(定时查询,更新) 企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --...
  • 1/DataTable 创建主键PrimaryKey ,在按DataTable 的PrimaryKey 查询时使用到 2/DataTable 插入列,插入条数据,DataTable操作, 3/DataTable 数据查询,按主键查询,按条件查询  private DataTable SysSource ...
  • MySQL创建数据库和创建数据表

    万次阅读 多人点赞 2019-10-20 23:44:40
    MySQL 创建数据库和创建数据表 MySQL 是最常用的数据库,在...数据库在操作时,需要使用专门的数据库操作规则和语法,这语法就是SQL(Structured Query Language) 结构化查询语言。 SQL 的主要功能是和数据库...
  • 【dbForge Studio for SQL Server下载】 创建查询: 1.创建服务器连接。有关如何创建服务器连接的详细信息,请参阅如何:连接到...将打开一个空SQL文档。 3.键入对数据库的查询。 4.单击“ 执行” 或按CTRL + F...
  • get:get是通过URL来提交数据的,信息会显示在地址栏上,所以它的安全性不高但是效率要比post高,例如搜索查询可以用get方式提交。 post:post提交的数据量比get大,并且安全性高,它是把数据封装在HTML HEADER内的,...
  • 不得不说pycharm是一个强大编辑工具,虽然在Mac系统,在系统命令是基本上相同,但是不等于linux,虽然很多的博客中都有讲如何在Windows或者Linux中使用Django,但是对于适合MAC确实不多,创建项目, application ...
  • 创建组合索引时,网上一般的说法会提到:查询时where条件中的列的顺序要和创建...对于mysql的InnoDB引擎来说,组合索引的B+树结构上的叶子节点是按照第一个列的值大小进行排序,譬如对于组合索引(a,b,c),a,b,c...
  • 透明表索引有两种:分别是主索引和二级索引。 主索引是在我们创建表激活后由系统自动创建的,这个我们不能修改;二级索引可以我们自己创建。 ...主索引是表的主键,二级...索引的第一个字段都是MANDT,后面的根据需求
  • 介绍如何黑屏下新建一个数据库服务,共分8步, 1. 新建一个例程,即sid 2. 配置一个pfile,并准备好和pfile内容对应的文件目录 3. 启动这个例程,nomount状态 4. 建立表空间,生成tablespace文件,controller...
  • 如题所示,博主对这个问题一直模模糊糊的,网上也没一个具体的测试,都是零零散散的提一下,缺少系统的测试。前两天看到csdn的论坛,看到两个大版主,有的说超过300性能会下降,有的说超过999性能会下降???行吧,...
  • WCF RIA 服务 (三)- 创建一个RIA Services Solution在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现...
  • Hive学习笔记 --- Hive中创建分区表,并且查询数据
  • 1. hive创建外部表 创建外部表的好处: hive创建外部表时,仅记录数据所在的路径,不对数据的位置做任何改变. 删除表的时候,外部表只删除元数据,不删除数据 所以总结起来就是 : 外部表相对安全,数据组织更加灵活,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 766,711
精华内容 306,684
关键字:

如何创建一个选择查询