锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

一阶段--java基础

时间:2023-07-05 00:07:00 dx4电量变送器

1.Linux

1.1.操作系统是什么?

类似于一个平台,任何其他软件都需要在这个平台上运行

1.2.Linux历史

1.3.操作系统环境

?访问磁盘
位置-主文件夹
点击左侧文件系统6
/boot:存储系统启动时需要系统启动时需要读取的文档
/home:用户文件夹
/opt:额外的安装软件
/root:存储管理员目录

?应用程序

1.4.终端操作命令

打开终端:应用程序-附件-终端
快捷键:CTRL ALT T
退出终端:exit;

1.4.1.查看文件及目录

ls 查看当前目录下的文件和目录
ls –a 查看当前目录下的文件和目录(包括隐藏目录和隐藏文件)
ls –l查看当前目录下的文件和目录(包括详细信息)

文件种类:
蓝色:目录
白:普通文件
红:压缩文件
浅蓝色:可连接文件
绿色:可执行文件

###1.4.2.过滤
ls |grep 包含的文字
案例:查询当前目录包含案例e文件及目录
ls |grep e

忽略大小写:-i
案例:查询当前目录包含案例e目录和文件
ls |grep –i e

案例:同时检查详细信息
ls –l|grep e

1.4.3.目录跳转

cd 目标文件:进入目标文件
cd … :返回上一级目录
pwd:查看当前位置

###1.4.4.查找
find 查找位置 -name 目标文件
案例:查询文件名称为查询文件abc”的目录

案例:查询txt目录或文件的结尾

案例:查询文件名称包括o目录和文件
find ./ -name *o*

案例:查询a”开头的.txt文件
find ./ -name a*.txt

###1.4.5.文件夹操作
创建文件夹(目录):
mkdir 目录名

删除文件夹:
rmdir 目录(只能删除空目录)

1.4.6.文件操作

rm 文件名:删除文件

案例:一次删除多个文件

案例:删除非空目录
rm –rf 目标文件

-r:递归
-f:强制删除

1.4.7.查看文件内容

cat 文件名
案例:查看1.txt文件中的内容

案例:将1.txt内容覆盖2.txt

案例:将1.txt内容和2.txt复制到3.txt中

问:如果此时3.txt文件中有内容,执行此操作后,3.txt内容是覆盖还是添加?
如果不慎 只写了cat然后回车按Ctrl Shift D 退出

1.4.8.more命令

查看文件内容 可以分页
more –行数 目标文件
案例:分页查看1.txt每页查看4个内容
more -4 1.txt

空格键:向后翻页
B键:向前翻页

1.4.9.压缩

1.4.9.1.zip压缩
zip –r 目标文件名.zip 原文件名
案例:压缩abc文件夹

解压缩:
unzip 原文件名.zip
案例:将abc.zip压缩包解压

1.4.9.2.打包
tar –cvf 目标文件名.tar 源文件名
解包:
tar –xvf 源文件名.tar
案例:分别包装和解包abc文件夹

1.4.10.查看权限
使用ls –l 查看文件类型和文件类型
-rw-rw-r-- 1 soft01 soft01 97 3月 13 16:31 1.txt~
-rw-rw-r-- 1 soft01 soft01 5 3月 13 16:21 2.txt~
-rw-rw-r-- 1 soft01 soft01 11 3月 13 16:22 3.txt
drwxrwxr-x 2 soft01 soft01 4096 3月 13 16:39 abc
-rw-rw-r-- 1 soft01 soft01 10240 3月 13 16:54 abc.tar

?第一列:-rw-rw-r-
第一部分:-//d
-:普通文件
d:文件夹/目录

第二部分:rw-rw-r–
第二部分可以作为每三个字符的一部分
第一部分:用户权限
第二部分:用户组权限
第三部分:其他人权

r:可读权限
w:可写
x:可执行
-:没有权限

?第二列:数字
表示文件的链接数
普通文件链接文件
目录一般有两个链接文件

?第三列:用户名

?第四列:当前用的密码

?第五列:文件大小
普通文件的大小与其内容有关
目录尺寸为4096,目录尺寸仅为文件夹尺寸,不包括文件夹中子目录和子文件尺寸

?第六列:最后一次更新时间
?第七列:文件名/目录名

1.4.11.权限修改

?方式一
chmod [u/g/o/a][ /-/=][r/w/x] 文件名
u:User
g:grop
o:Other
a:ALL
:添加权限
-:删除权限
=:取消以前的所有权,并赋予当前权限

案例:将3.txt的 当前用户 可写权限 删除
chmod u-w 3.txt

?方式二
chmod [数字] [数字] [数字] 文件名
每个数字不超过7
r:4
w:2
x:1
案例:添加3.txt的 当前用户 的可写权限
chmod 664 3.txt

1.4.12.文件编辑

创建文件:vi 文件名
案例:创建hello.txt
vi hello.txt
敲入命令行后,系统将创建hello.txt,此时打开状态
如果想在hello.txt写内容,按下 i 键进入插入模式,不能在插入模式下保存
如需保存插入内容,请按下 esc 键入底行模式
输入底行模式后,输入底行模式 :wq 保存并退出

2.MySQL

2.1.数据库类型

?关系数据库:表与表之间的关系
MySQL,Oracle

?非关系数据库:每个表都是独立的
MongoDB

2.2.安装MySQL数据库

下载或下载官或下载教师

2.3.打开数据库

数据命令:mysql –uroot –proot

此时正常进入界面,如报mysql不是内部命令”,只需配置环境变量即可

2.4.配置MySQL环境变量

第一步:找到MySQL打开安装目录bin目录,复制链接

第二步:右键桌面上的计算机图标,选择属性
第三步:点击左侧高级系统配置

第四步:点击环境变量按钮

第五步:在系统变量中找到path”

第六步:点击编辑按钮,复制刚刚复制的按钮MySQL的bin放入目录,注意加分号 ;”

配置后,重新打开终端进入
退出数据库:quit;
退出数据库并退出终端:exit;

2.5.数据库连接

连接本地数据库:mysql –uroot –proot
远程连接数据库 :mysql –hIP地址 -uroot –proot
远程连接教师机:mysql –h10.0.27.98 –uroot –proot
测试连接是否成功:show databases;

2.6.数据库操作

2.6.1.查询数据库

语法:SHOW DATABASES;
查询出当前mysql软件中有哪些数据库?

2.6.2.创建数据库

语法:CREATE DATABASE 数据库名 DEFAULT CHARSET UTF8;

在创建之前,首先判断数据库中的数据库是否存在
CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET UTF8;

案例:创建ZHOU数据库
CREATE DATABASE ZHOU DEFAULT CHARSET UTF8;

2.63.切换数据库

语法:USE 数据库名

2.6.4.删除数据库

DROP DATABASE 数据库名;
案例:删除zhou数据库
DROP DATABASE ZHOU;

2.6.5.创建表

创建表之前需要选择数据库

语法:
CREATE TABLE 表名(
列名1 数据类型,
列名2 数据类型,

)
注意:
列名与数据类型之间有空格
字段与字段之间用逗号“, ”间隔
最后一个字段后面不能跟逗号

思考学生表的字段:编号、姓名、性别、年龄、电话、创建时间
案例:创建学生表
– 创建学生表
CREATE TABLE T_STU(
ID INT , – 学生编号
NAME VARCHAR(20), – 学生姓名
SEX INT, – 性别
AGE INT, – 年龄
PHONE CHAR(11), – 手机号
CREATETIME DATE – 创建时间
)

2.6.6.查看表

语法:SHOW TABLES;
查看当前数据库下有哪些表

日期类型:date datetime

2.6.7.删除表

语法:DROP TABLE 表名

2.6.8.查看表结构

语法:DESC 表名

练习:
新建NJWANGBO数据库
创建用户表
创建商品表
创建商品类型表

思考: 购物车表、订单表中的字段

建表三要素
表名
表的列名
列名类型

列类型

常用列类型:
数值类型:
int:整数
double:浮点数(小数)
decimal(5,2):

字符类型:
char(最大长度)、varchar(最大长度)
区别:
char:长度不可变,后面可以不设定最大长度,如果设定了最大长度,当保存的数据长度没有到达最大长度时,多出的长度将使用空格占位
varchar:长度可变,使用时必须要带最大长度,当保存的数据没有到达最大长度时,实际长度是几就是几,不采用空格占位

日期类型:
date:yyyy-MM-dd
datetime:yyyy-MM-dd hh:mm:ss(推荐使用)

2.6.9.查看建表语句

语句:SHOW CREATE TABLE 表名
案例:查看T-STU建表语句

2.6.10.编辑表

一般情况下,表创建成功之后是很少修改表结构
一般的操作都是将表直接删除,再重新建

2.6.10.1.修改表名

方法一:
语法:RENAME TABLE 旧表名 TO 新表名
案例:修改T_STU表的表名

方法二:
语法:ALTER TABLE 旧表名 RENAME 新表名
案例:修改T_STUDENT表的表名

2.6.10.2.修改列

2.6.10.3.修改列类型

语法:ALTER TABLE 表名 MODIFY 列名 列类型
案例:将t_stu表中的phone字段类型修改成varchar类型
ALTER TABLE T_STU MODIFY PHONE VARCHAR(11);

2.6.10.4.修改列名及列类型

语法:ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型
案例:将t_stu表中的phone列名换成 telephone,并将 数据类型修改成char类型
ALTER TABLE T_STU CHANGE PHONE TELEPHONE CHAR(11);

2.6.10.5.添加字段

语法:ALTER TABLE 表名 ADD 字段名 字段类型
案例:给t_stu表添加一个addres字段
ALTER TABLE T_STU ADD ADDRES VARCHAR(200);

2.6.10.6.删除字段

语法:ALTER TABLE 表名 DROP 列名 ;
案例:删除t_stu表中的addres字段
ALTER TABLE T_STU DROP ADDRES;

总结:
创建:CREATE …
修改:ALTER …
删除:DROP …

2.6.11.数据的增删改

2.6.11.1.数据添加

语法:INSERT INTO 表名(列名2,列名1,列名3…) VALUES (值1,值2,值3…)
如果表中字段是char、varchar、日期类型,插入数据时,数据需要使用单引号括起来
数值类型不需要带引号

案例:给t_stu表插入一条数据
INSERT INTO T_STU (ID,NAME,SEX,AGE,TELEPHONE,CREATETIME)
VALUES(1,‘ZHANGSAN’,0,29,‘13912345678’,‘2019-03-15’);

批量插入:
INSERT INTO T_STU (ID,NAME,SEX,AGE,TELEPHONE,CREATETIME)
VALUES
(2,‘ZHANGSAN’,0,29,‘13912345678’,‘2019-03-15’),
(3,‘ZHANGSAN’,0,29,‘13912345678’,‘2019-03-15’),
(4,‘ZHANGSAN’,0,29,‘13912345678’,‘2019-03-15’)

如果表中所有字段都需要插入值,则在insert后面可以不写列名,直接插入值即可
案例:向t_stu表中插入一条数据
INSERT INTO T_STU
VALUES (5,‘ZHANGSAN’,0,29,‘13912345678’,‘2019-03-15’)

注意:使用此种方法时,values后面值得顺序必须与表中字段的顺序一致

如果只想给表中某些字段插入数据,insert后面只需要跟想插入的字段即可
案例:给t_stu表中的ID,NAME插入数据,其他字段不插入数据
INSERT INTO T_STU(ID,NAME)
VALUES (6,‘LISI’);

查看表中数据
SELECT * FROM 表名

练习:向商品表中添加10条数据

2.6.11.2.数据修改

语法:UPDATE 表名 SET 列名1=列值1,列名2=值2…
案例:将t_stu表中的name值改成‘wangwu’,性别改成‘1’
UPDATE T_STU SET NAME=‘WANGWU’,SEX=1;

上述案例中,执行修改之后,将表中所有的数据都改了
问:如果只想修改一条数据,怎么做?

where条件
案例:将t_stu表中编号为‘1’的学生姓名修改为‘ZHANGSAN’
UPDATE T_STU SET NAME=‘ZHANGSAN’ WHERE ID=1;

练习:
– 将t_stu表中的数据性别都改为“0”
UPDATE T_STU SET SEX = 0;

– 将t_stu表中所有女同学的年龄都改为18
UPDATE T_STU SET AGE = 18 WHERE SEX = 0;

– 给t_stu表添加一个 薪资 字段
ALTER TABLE T_STU ADD SAL INT;

– 将薪资小于6000的同学薪资加500
UPDATE T_STU SET SAL = SAL+500 WHERE SAL < 6000;

– 将年龄大于30的同学薪资加1000
UPDATE T_STU SET SAL = SAL+1000 WHERE AGE>20;

– 将编号为1、3、5的同学,薪资增加25%
UPDATE T_STU SET SAL = SAL1.25 WHERE ID = 1 OR ID = 3 OR ID = 5;
UPDATE T_STU SET SAL = SAL
0.25 WHERE ID IN (1,3,5);

– 将姓名为‘WANGWU’且 SEX = 1 的学生薪资改为7000
UPDATE T_STU SET SAL =7000 WHERE NAME = ‘WANGWU’ AND SEX = 1;

2.6.11.3.删除表数据

语法:DELETE FROM 表名 WHERE 条件
案例:删除t_stu表中ID为‘1’的数据
DELETE FROM T_STU WHERE ID = 1;

根据条件删除
– 删除t_stu表中所有性别为1的数据

比较运算符
=、!=/<>、>、<、>=、<=
– 删除学生名称为‘张三’的数据
DELETE FROM T_STU WHERE NAME= ‘ZHENAGSAN’;

– 删除性别不为0的数据
DELETE FROM T_STU WHERE SEX != 0;

– 删除年龄大于25的数据
DELETE FROM T_STU WHERE AGE > 25

– 删除薪资在 5000(包含)到6000(包含) 之间的数据
DELETE FROM T_STU WHERE SAL>=5000 AND SAL <=6000;

NULL
– 删除ID为‘null’的数据
DELETE FROM T_STU WHERE ID IS NULL;

AND OR
AND:需要左右的表达式同时成立才成立
OR:两边有一个表达式成立即可

– 删除性别为0且年龄在25岁以上的学生
DELETE FROM T_STU WHERE SEX=0 AND AGE > 25;

– 添加一个分数字段
ALTER TABLE T_STU ADD SCORE DOUBLE;

– 删除分数在 60以下 且 年龄在18岁以下的学生
DELETE FROM T_STU WHERE SCORE <60 AND AGE <18 ;

– 删除分数在60以下 或 年龄在 18岁以下的学生
DELETE FROM T_STU WHERE SCORE <60 OR AGE <18 ;

BETWEEN… AND…
在…之间
– 删除薪资在 5000(包含)到6000(包含) 之间的数据
DELETE FROM T_STU WHERE SAL BETWEEN 5000 AND 6000;

NOT
– 删除分数不在80到90之间的学生数据
DELETE FROM T_STU WHERE SCORE NOT BETWEEN 80 AND 90;

NOT IN
– 删除学生ID不是1、3、5的学生信息
DELETE FROM T_STU WHERE ID NOT IN(1,3,5);

– 删除电话不为空的学生信息
DELETE FROM T_STU WHERE TELEPHONE IS NOT NULL;

2.6.12.用户操作

CREATE USER 用户名@’IP地址’ IDENTIFIED BY 密码
案例:创建zhou用户并赋予密码“zhou”
CREATE USER ZHOU@‘127.0.0.1’ IDENTIFIED BY ‘ZHOU’;
创建成功的用户,在mysql数据库中的user表中

切换到mysql数据库中,查询user表,即可看到创建的用户

赋予用户权限:需要使用管理员登录
GRANT 权限1、权限2… ON 数据库名.表名 TO 用户名@“IP地址”
案例:赋予zhou用户create、alter、drop、insert、delete、update、select等权限
GRANT CREATE,DROP,ALTER,INSERT,DELETE,UPDATE,SELECT
ON ZHOU.T_STU TO ZHOU@‘127.0.0.1’;

作业:
给三张表添加15条真实数据

2.6.13.查询数据

2.6.13.1.基本查询语句

– 查询数据表t_stu中所有的 数据
SELECT * FROM T_STU;

– 查询t_stu表中ID为5的学生信息
SELECT * FROM T_STU WHERE ID = 5;

– 查询t_stu表中所有学生的ID和NAME信息,其他信息不要
SELECT ID,NAME FROM T_STU;

– 查询t_stu表中学生名称包含“A”的学生信息
SELECT ID,NAME,SEX,AGE,TELEPHONE,CREATETIME,SAL FROM T_STU
WHERE NAME LIKE ‘%A%’;
%:匹配任意字符长度,匹配所有字符
_:匹配一个字符长度,匹配所有字符

– 查询t_stu表中学生名称第二个字符为“H”的学生数据
SELECT ID,NAME,SEX,AGE,TELEPHONE,CREATETIME,SAL FROM T_STU
WHERE NAME LIKE ‘_H%’;

2.6.13.2.函数

连接字符:concat(str1,str2);
SELECT CONCAT(‘HELLO’,‘WORLD’);

插入字符:insert(str,p,l,newStr);
str:被替换的字符串
p:开始替换位置
l:长度,替换几个长度
newStr:即将替换成的字符

转大写:upper(str);
转小写:lower(str)

计算长度:length()
去除前后空格:trim();
替换:replace(str,pStr,newStr);

2.6.13.3.数学函数

向上取整:ceil(num)

向下取整:floor(num)

四舍五入:round(num)

取余:mod(num1,num2)

2.6.13.4.日期函数

当前年月日:curdate();
格式:yyyy-MM-dd

当前时间:curtime();
格式:hh:mm:ss

当前时间:now();
格式:yyyy-MM-dd hh:mm:ss

案例:向t_stu表中插入一条数据(使用当前时间)
INSERT INTO T_STU
VALUES(7,‘LISI’,1,18,‘12345678978’,NOW(),7000);

2.6.13.5.聚集函数

max(列名):最大值
– 查看t_stu表中薪资最高的学生信息
SELECT MAX(SAL) FROM T_STU;

min(列名):最小值
–查看t_stu表中薪资最低的学生信息
SELECT MIN(SAL) FROM T_STU;

sum():求和
– 查看t_stu表中所有学生薪资的总和
SELECT SUM(SAL) FROM T_STU;

avg(列名):平均值
– 查看t_stu表中所有学生的平均薪资
SELECT AVG(SAL) FROM T_STU;

count():统计数量
– 统计t_stu表中性别为0的学生数量
SELECT COUNT(ID) FROM T_STU WHERE SEX = 0;

2.6.13.6.单表查询

重建学生表
CREATE TABLE T_STU(ID INT,NAME VARCHAR(20),SEX INT,AGE INT,SCORE INT,CREA
TETIME DATETIME);
准备数据
INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,CREATETIME)
VALUES(1,‘ZHANGSAN’,0,19,95,NOW());

INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,CREATETIME)
VALUES(2,‘LISI’,1,29,85,NOW());

INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,CREATETIME)
VALUES(3,‘WANGWU’,1,22,95,NOW());

INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,CREATETIME)
VALUES(4,‘ZHAOLIU’,0,24,75,NOW());

INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,CREATETIME)
VALUES(5,‘ZHUOQI’,1,24,59,NOW());

INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,CREATETIME)
VALUES(6,‘XIAOQIANG’,0,20,19,NOW());

– 查询表中所有的字段
方式一:
SELECT * FROM T_STU;
这种方式查出来的数据,数据展示顺序与表中的字段顺序一致

方式二:
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU;
此种方式真是的数据顺序与 select语句中的字段顺序一致

mysql中的+、-、*、/
– 查看每个学生的分数加上5分之后的数据(只展示ID,姓名,成绩三列)
SELECT ID,NAME,SCORE+5 FROM T_STU;

– 在上题基础上给成绩一列 起上 别名
SELECT ID,NAME,SCORE+5 AS S FROM T_STU;

– 查询学生表中姓名中包含“A”且成绩 大于70的学生信息
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE NAME LIKE ‘%A%’ AND SCORE > 70;

– 查看学生表中 成绩在60(包含)到90(包含)之间的学生信息
方式一:
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE SCORE BETWEEN 60 AND 90;
方式二:
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE SCORE >= 60 AND SCORE <= 90

– 查询1995年到2005年之间出生的学生信息
‘1995-01-01’ ‘2005-12-31’

– 查询学生编号 为1,2,4的学生信息
方式一:
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE ID = 1 OR ID = 2 OR ID = 4;
方式二:
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU WHERE ID IN (1,2,4);

– 查询学生编号 不为1,2,4的学生信息
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE ID NOT IN (1,2,4)

– 查询学生成绩为0的学生信息(成绩为null也算作0分)
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE SCORE = 0 OR SCORE IS NULL;

– 查询 有成绩 的学生信息(0分也算作成绩)
SELECT ID,NAME,SEX,AGE,SCORE,CREATETIME FROM T_STU
WHERE SCORE IS NOT NULL;

0-- 查询每个学生的成绩,如果有学生成绩为null,则使用0表示
SELECT ID,NAME,SEX,AGE, IFNULL(SCORE,0),CREATETIME FROM T_STU ;
IFNULL(参数1,参数2);
当参数1为null时,使用参数2展示,如果参数1不为null,则使用参数1展示

– 查看每个学生的年薪(添加上薪资字段即可)
SELECT SAL*12 AS SAL FROM T_STU;

– 查看每个学生的年薪(加上奖金)
SELECT (SAL*12)+ IFNULL(COM ,0) AS SAL FROM T_STU;

– 查看年薪大于10W的学生信息
方式一:
– 先查出学生的年薪
SELECT ID,NAME,SEX,AGE ,(SAL12+IFNULL(COM,0)) AS S FROM T_STU
– 在上一步的结果集中使用having进行二次筛选
SELECT ID,NAME,SEX,AGE ,(SAL
12+IFNULL(COM,0)) AS S FROM T_STU
HAVING S > 100000;

方式二:
– 先查出学生的年薪
SELECT ID,NAME,SEX,AGE ,(SAL12+IFNULL(COM,0)) AS S FROM T_STU
– 在上一步的结果集上再查一次,将上一步的结果作为一张临时表
SELECT ID,NAME,SEX,AGE,S
FROM
(SELECT ID,NAME,SEX,AGE ,(SAL
12+IFNULL(COM,0)) AS S FROM T_STU) T
WHERE S>100000;

– 统计表中共有多少个学生
SELECT COUNT(ID) FROM T_STU;

– 显示表中所有学生信息,并按照 成绩 降序 排列
SELECT ID,NAME,SEX,AGE ,SAL,IFNULL(COM,0) AS S ,SCORE FROM T_STU
ORDER BY SCORE DESC;
order by:排序
desc:降序
asc:升序(默认)

– 在上题基础上,如果成绩一致,则再按照薪资降序排列
SELECT ID,NAME,SEX,AGE ,SAL,IFNULL(COM,0) AS S ,SCORE FROM T_STU
ORDER BY SCORE DESC,SAL DESC ;

– 展示最大成绩
– 展示最小成绩
– 展示成绩总和
– 查询班级平均成绩
– 查询最高成绩,按照男女生性别分组
SELECT MAX(SCORE) FROM T_STU GROUP BY SEX;
group by:分组

2.6.13.7.多表联查

准备数据
新建学生表t_stu
ID,NAME,SEX,AGE,SCORE,SAL,CLASSID,CREATETIME
CREATE TABLE T_STU(
ID INT,
NAME VARCHAR(20),
SEX INT ,
AGE INT,
SCORE INT ,
SAL INT ,
CLASSID INT NOT NULL,
CREATETIME DATETIME
);

班级表:t_class
ID,NAME,TEACHER,BOSS,CREATETIME
CREATE TABLE T_CLASS(
ID INT PRIMARY KEY,
NAME VARCHAR(20),
TEACHER VARCHAR(20),
BOOS VARCHAR(20),
CREATETIME DATETIME
);

– 插入班级表数据
INSERT INTO T_CLASS(ID,NAME,TEACHER,BOOS,CREATETIME)
VALUES(1,‘JAVA’,‘XIAOZHOU’,‘YUNJIE’,NOW());
INSERT INTO T_CLASS(ID,NAME,TEACHER,BOOS,CREATETIME)
VALUES(2,‘WEB’,‘BAOGE’,‘HAIYAN’,NOW());
INSERT INTO T_CLASS(ID,NAME,TEACHER,BOOS,CREATETIME)
VALUES(3,‘JAVA’,‘JINZHONG’,‘WENYA’,NOW());
INSERT INTO T_CLASS(ID,NAME,TEACHER,BOOS,CREATETIME)
VALUES(4,‘C’,‘JINZHONG’,‘WENYA’,NOW());

– 插入学生表数据
INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,SAL,CLASSID,CREATETIME)
VALUES(1,‘XIAOJUN’,1,19,90,7000,1,NOW());
INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,SAL,CLASSID,CREATETIME)
VALUES(2,‘XIAOMING’,0,23,80,8000,2,NOW());
INSERT INTO T_STU(ID,NAME,SEX,AGE,SCORE,SAL,CLASSID,CREATETIME)
VALUES(3,‘LIHUA’,0,24,85,9000,1,NOW());

– 查询学生所有信息(包含所在班级名称,班级讲师,班主任)
内连接:inner join
SELECT
S.ID,S.NAME,S.SEX,S.AGE,S.SCORE,S.SAL,S.CLASSID,C.NAME AS CLASSNAME ,
C.TEACHER,C.BOOS
FROM T_STU S
INNER JOIN T_CLASS C
ON S.CLASSID = C.ID

左连接:left join
以左表为主,会查出左表中所有数据,右表中不满足的数据将会使用null代替
SELECT
S.ID,S.NAME,S.SEX,S.AGE,S.SCORE,S.SAL,S.CLASSID,C.NAME AS CLASSNAME ,
C.TEACHER,C.BOOS
FROM T_STU S
LEFT JOIN T_CLASS C
ON S.CLASSID = C.ID

右链接:right join
以右表为主,会查出右表中所有数据,左表中不满足的数据将会使用null代替
SELECT
S.ID,S.NAME,S.SEX,S.AGE,S.SCORE,S.SAL,S.CLASSID,C.NAME AS CLASSNAME ,
C.TEACHER,C.BOOS
FROM T_STU S
RIGHT JOIN T_CLASS C
ON S.CLASSID = C.ID

练习:
查出商品表中所有数据(包含商品类型名称)

2.6.14.约束

2.6.14.1.非空约束:not null

不能为空,但可以重复
方式一:
ALTER TABLE 表名 CHANGE 旧列名 新列明 新数据类型 约束
– 给t_stu表中的ID字段添加非空约束
ALTER TABLE T_STU CHANGE ID ID INT NOT NULL;

方式二:删表重建
CREATE TABLE T_STU(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
SEX INT NOT NULL,
AGE INT NOT NULL,
SCORE INT,
SAL INT,
CLASSID INT NOT NULL,
CREATETIME DATETIME DEFAULT ‘2019-03-18’
);

2.6.14.2.唯一约束:unique

可以为空,但不能重复
方式一:
ALTER TABLE 表名 ADD UNIQUE(字段名)
– 给class表中的ID数据添加唯一约束
ALTER TABLE T_CLASS ADD UNIQUE(ID);

方式二:删表重建
CREATE TABLE T_STU(
ID INT,
NAME VARCHAR(20) NOT NULL,
SEX INT NOT NULL,
AGE INT NOT NULL,
SCORE INT,
SAL INT,
CLASSID INT NOT NULL,
CREATETIME DATETIME DEFAULT ‘2019-03-18’
);

非空约束与唯一约束作用在同一个字段上将会产生主键约束

2.6.14.3.主键约束:primary key

方式一:
ALTER TABLE 表名 ADD PRIMARY KEY (ID)
– 给t_stu表中的ID字段加上主键约束
ALTER TABLE T_STU ADD PRIMARY KEY (ID);

方式二:删表重建
CREATE TABLE T_STU(
ID INT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
SEX INT NOT NULL,
AGE INT NOT NULL,
SCORE INT,
SAL INT,
CLASSID INT NOT NULL,
CREATETIME DATETIME DEFAULT ‘2019-03-18’
);

2.6.14.4.外键约束:foreign key

保证数据的正确性
外键的创建一般是一个 外键 指向 一张表的 主键
注意:设置主外键关系时,主表中的关系字段需要设置主键约束
方式一:
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (列名) REFERENCES 主表(列名)

方式二:删表重建
CREATE TABLE T_STU(
ID INT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
SEX INT NOT NULL,
AGE INT NOT NULL,
SCORE INT,
SAL INT,
CLASSID INT NOT NULL,
CREATETIME DATETIME DEFAULT ‘2019-03-18’,
FOREIGN KEY FK_CLASSID (CLASSID) REFERENCES T_CLASS(ID)
);

2.6.14.5.自增长列

auto_increment
建表时给ID使用自增长
CREATE TABLE T_STU(
ID INT AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
SEX INT NOT NULL,
AGE INT NOT NULL,
SCORE INT,
SAL INT,
CLASSID INT NOT NULL,
CREATETIME DATETIME DEFAULT ‘2019-03-18’,
FOREIGN KEY FK_CLASSID (CLASSID) REFERENCES T_CLASS(ID)
);

作业:
重构三张表:约束,主外键,自增长列
新建:购物车表,订单表,评论表 以及 其中的约束,主外键,自增长列
可选:
查询出:
购物车页面中展示的信息
订单页面中展示的信息

2.6.14.6.删除约束

删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY ;

删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名 ;

删除唯一约束
ALTER TABLE 表名 DROP INDEX 字段名 ;

2.6.15.数据库引擎

查看mysql中的数据库引擎
SHOW ENGINES;

2.6.16.事务

创建事务
事务开启:begin/strat transaction
事务回滚:rollback
事务提交:commit

– 使用事务向班级表中添加一条数据
BEGIN; – 开启事务
INSERT INTO T_CLASS(NAME,TEACHER,BOOS) VALUES (‘WEB’,‘ZHOU’,‘YUN’); – 执行的操作
ROLLBACK/COMMIT; – 执行结束之后可以选择是提交还是回滚

设置事务是否自动提交
mysql中默认事务是自动提交
SET @@AUTOCOMMIT = 1/0

2.6.17.存储过程

类似于封装方法/函数
创建存储过程
语法:
CREATE PROCEDURE 存储过程名(参数)
BEGIN
逻辑操作语句
END

案例:
– 封装一个学生表和班级表联合查询的存储过程
CREATE PROCEDURE SELECT_USER()
BEGIN
SELECT
S.ID,S.NAME,S.SEX,S.AGE,S.SCORE,S.SAL,S.CLASSID,C.NAME AS CLASSNAME ,
C.TEACHER,C.BOOS
FROM T_STU S
INNER JOIN T_CLASS C
ON S.CLASSID = C.ID;
END //

修改结束符
delimiter //
mysql系统中默认将‘; ’认为是结束符,此时用在存储过程中会保存
使用delimiter语句可以将结束符修改

调用存储过程
CALL 存储过程名()
CALL SELECT_USER(); --调用案例中创建的存储过程

3.JAVA

3.1.初识JAVA

3.1.1.安装JDK

3.1.2.开发第一个JAVA程序

三种注释方式:
// 单行注释
/* / 多行注释
/
* */文档注释

3.1.3.配置JDK

练习:
在控制台输出以下界面
欢迎进入商品管理系统


	1、登录
	2、退出

请选择操作

在控制台输出以下界面
数据库中有如下商品


商品标号 商品名称 商品库存 商品销量 商品价格
001 苹果 1000 1222 5.2
002 橘子 5212 95455 2.5


请输入你想购买的产品(输入编号即可)

3.2.变量

通俗的说:
内存类似于酒店
变量类似于酒店的房间
变量名相当于房间的门牌
变量值相当于房间中住的人

3.2.1.数据类型

3.2.1.1.八种基本数据类型

整数型
byte 1字节
short 2字节
int 4字节
long 8字节

浮点型
float 4字节 单精度浮点型32
double 8字节 双精度浮点型64

字符型
char 2字节

布尔类型
boolean true/false

3.2.1.2.四种引用数据类型

String 对象 数组 类

练习:
使用变量定义手机的各种属性,并输出
尺寸、品牌、重量、价格、颜色、像素、内存、操作系统、电量

3.2.1.3.定义变量

方式一:
数据类型 变量名 = 变量值;

方式二:
数据类型 变量名;
变量名 = 变量值;
3.2.1.4.变量命名规范
变量名中不能出现除“$”、“_”之外的符号
变量名不能以数字开头
变量名一般使用驼峰式命名,首字母小写,其后每个单词的首字母都大写

练习:
定义三个变量,分别保存学生的java成绩、web成绩、c的成绩
求出三门成绩的平均值并输出

package com.njwangbo.test;

/** * 定义三个变量,分别保存学生的java成绩、web成绩、c的成绩 求出三门成绩的平均值并输出 * @author Administrator * */
public class Test05 { 
        
	public static void main(String[] args) { 
        
		//定义java成绩
		int javaSocre = 90;
		//定义web成绩
		int webScore = 85;
		//定义c的成绩
		int cScore = 80;
		
		//定义变量 接收平均分
		int avgSocre = (javaSocre+webScore+cScore)/3;
		
		System.out.println("三门课的平均分是" + avgSocre);
	}
	
}

练习:
在控制台分别输入学生的java成绩、web成绩、c的成绩
求出三门成绩的平均值并输出

package com.njwangbo.test;

import java.util.Scanner;

/** * 在控制台分别输入学生的java成绩、web成绩、c的成绩 求出三门成绩的平均值并输出 * @author Administrator * */
public class Test07 { 
        
	public static void main(String[] args) { 
        
		//引用Scanner类
		Scanner sc = new Scanner(System.in);  
		
		System.out.println("请输入java成绩");
		//接收java成绩
		int javaScore = sc.nextInt();
		
		System.out.println("请输入web成绩");
		//接收web成绩
		int webScore = sc.nextInt();
		
		System.out.println("请输出c的成绩");
		//接收c的成绩
		int cScore = sc.nextInt();
		
		//计算平均值
		int avgScore = (javaScore+webScore+cScore)/3;
		System.out.println("三门课的平均成绩是:"+avgScore);
	}
}

3.3.数据类型转换

java代码中 :
整数的默认类型是int
小数的默认类型是double

3.3.1.基本数据类型取值范围

整数类型:
byte: 1字节 二进制:8位 取值范围:-2的7次方 ~ 2的7次方-1
short: 2字节 二进制:16位 取值范围:-2的15次方 ~ 2的15次方-1
int: 4字节 二进制:32位 取值范围:-2的31次方 ~ 2的31次方-1
long: 8字节 二进制:64位 取值范围:-2的63次方 ~ 2的63次方-1

浮点型:
float: 4字节 二进制:32位 取值范围:-2的149次方 ~ 2的128次方-1
double:8字节 二进制:64位 取值范围:-2的1074次方 ~ 2的1024次方-1

char类型可以自动转成 int/long/float/double

3.3.2.自动类型转换

取值范围小的数据类型向取值范围大的转换

3.3.3.强制类型转换

取值范围大的数据类型向取值范围小的转换

案例1:

package com.njwangbo.test;

/** * 数据类型转换 * @author Administrator * */
public class Test05 { 
        
	
	public static void main(String[] args) { 
        
		double num2 = 3.9;
		
		//编译报错,double类型数据的取值返回比int类型大,如果转成int类型,需要强转
		//int num3 = num2; 
		
		//将double类型强转成int类型,会丢失精度
		int num3 = (int)num2;
		System.out.println(num3); //3
		
	}

}

案例2:
package com.njwangbo.test;

public class Test06 {
public static void main(String[] args) {

	float num1 = 9;
	
	double num2 = 3;
	//编译报错:flaot 定义的num3 不知道 后期num2即将会被赋予什么类型的数据,所以在编译的时候直接报错
	float num3 = num2;

}

}

3.3.4.将字符串类型转成数值类型
将String类型转换成int类型
package com.njwangbo.test;

/**

  • 字符串类型与数值类型之间的转换
  • @author Administrator

*/
public class Test07 {
public static void main(String[] args) {

	/**
	 * 将字符串类型转成数值类型
	 */
	String str = "123";
	
	//将字符串类型转成int类型
	int num = Integer.parseInt(str);

	//将字符串类型转成double类型
	double num1 = Double.parseDouble(str);
	
	System.out.println(num);
	System.out.println(num1);

	
	//将数值类型转成String类型	
	int i = 1;
	//直接在后面连接 ""
	String stri = i+"";
	
	
	
}

}

3.4.运算符
3.4.1.算术运算符
+、-、*、/、%
取余:只看结果,正负号取决于被除数的符号
案例:
package com.njwangbo.test;

public class Test01 {
public static void main(String[] args) {
System.out.println(-5 % -2);//-1
System.out.println(-5 % 2); //-1
System.out.println(5 % -2); //1
System.out.println(5 % 2); //1
}
}

案例:在控制台输入一个四位数数字,求出每个位数上 数字之和及平均值
package com.njwangbo.test;

import java.util.Scanner;

/**

  • 练习:
  • 在控制台输入一个四位数数字,求每个位数上数字之和及平均值 并输出
  • @author Administrator

*/
public class Test02 {
public static void main(String[] args) {
//定义接收数字变量
Scanner scanner = new Scanner(System.in);
System.out.println(“请输入一个四位数:”);
int num = scanner.nextInt(); //输入1234
//定义接收位数的变量
int a,b ,c, d;
a=num/1000; //1
b= num/100%10; //2
c=num/10%10; //3
d=num%10;//4
System.out.println(a );
System.out.println(b );
System.out.println(c );
System.out.println(d );
//定义接收和与平均值的变量
int sum = a+b+c+d;
double avg = (double)sum/4;
System.out.println(“和为:”+sum);
System.out.println(“平均值是:”+avg);
}
}

常用数据类型默认值
int:0
double:0.0d
char:‘\u0000’
String:null

3.4.2.++运算符
package com.njwangbo.test;

/**

  • ++ 运算符
  • @author Administrator

*/
public class Test03 {
public static void main(String[] args) {

	int num1 = 1;
	
	
	//int num2 = num1++;  
	/* 上述步骤等于:
	 * 		int num2 = num1;
	 * 		num1 = num1+1;
	 * */
	
	int num3 = ++num1;
	/*	删除步骤等于:
	 * 		num = num+1;
	 * 		int num3 = num;
	 * 
	 */
	
	
	
	System.out.println(num1);
	//System.out.println(num2);
	System.out.println(num3);
	
}

}

3.4.3.–运算符
package com.njwangbo.test;

/**

  • – 运算符
  • @author Administrator

*/
public class Test04 {
public static void main(String[] args) {

	int num1 = 3;
	//int num2 = num1--;  
	/* 上述步骤等于:
	 * 		int num2 = num1;
	 * 		num1 = num1 - 1;
	 * */
	
	int num3 = --num1;
	/*	删除步骤等于:
	 * 		num = num - 1;
	 * 		int num3 = num;
	 * 
	 */
	System.out.println(num1);
	//System.out.println(num2);
	System.out.println(num3);
	
}

}

3.4.4.三元运算符/三目运算符
语法:
表达式 ? 代码块1 : 代码块2
表达式需要返回一个boolean类型的值
如果值为true,执行 代码块1
如果只为false,执行 代码块2
案例:
package com.njwangbo.test;

/**

  • 三元运算符
  • @author Administrator

*/
public class Test08 {
public static void main(String[] args) {
//定义两个变量保存数据
int num1 = 9;
int num2 = 3;

	//使用三元运算符 判断 数据
	String str = num1 > num2 ? "你好" : "再见";
	
	//输出
	System.out.println(str);
}

}

练习1:
在控制台输入两个数字,输出较大的数
package com.njwangbo.test;

import java.util.Scanner;

/**

  • 在控制台输入两个数字,输出较大的数
  • @author Administrator

*/
public class Test09 {
public static void main(String[] args) {

	//引用Scanner类
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入一个数字");
	//接收第一个数字
	int num1 = sc.nextInt();
	
	System.out.println("请再输入一个数字");
	//接收第二个数字
	int num2 = sc.nextInt();
	
	//开始比较
	int max = num1 > num2 ? num1 : num2;
	System.out.println("较大的数据是:" + max);
			
}

}

练习2:
在控制台输入一个5位数,如果前4位数总和大于20,输出“真棒”,反之输出:“呵呵哒”
package com.njwangbo.test;

import java.util.Scanner;

/**

  • 在控制台输入一个5位数,如果前4位数总和大于20,输出“真棒”,反之输出:“呵呵哒”
  • @author Administrator

*/
public class Test10 {
public static void main(String[] args) {

	//引用Scanner类
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入一五位数");
	//接收数据
	int num = sc.nextInt();
	//获取第一位数字
	int a = num/10000;
	//获取第二位数字
	int b = num%10000/1000;
	
	//获取第三位数字
	int c = num%10000%1000/100;
	//获取第四位数字
	int d = num%10000%1000%100/10;
	
	//计算前四位数字之和
	int sum = a+b+c+d;
	//比较
	String str = sum > 20 ? "真棒" : "呵呵哒";
	//输出
	System.out.println(str);
}

}

3.4.5.关系运算符
== 、>、<、>=、<=、!=
案例:
package com.njwangbo.test;

/**

  • 关系运算符
  • @author Administrator

*/
public class Test11 {
public static void main(String[] args) {
//定义两个变量
int num = 1;
int num1 = 2-1;
//比较两个变量是否相等
String str = num == num1 ? “相等” : “不相等”;
//输出
System.out.println(str);

}

}

练习:
在控制台输入两个 三位数 数字,
取出第一个数字的最后一位数字和第二个数字的第一位数字
比较这个数字是否相等

3.4.6.逻辑运算符
&& 、||、 !
语法:&&
表达式1 && 表达式2
当表达式1和表达式2的结果都为true时,整个表达式结果为true
如果两个表达式结果,一个为真,一个为假,整个表达式结果为false

注意:当&&号左侧的表达式结果为false时,系统将不会再判断&&右侧的表达式
案例:
package com.njwangbo.test;

/**

  • 逻辑运算符
  • @author Administrator

*/
public class Test14 {
public static void main(String[] args) {

	//定义3个变量,保存数据
	int num1 = 10;
	int num2 = 2;
	int num3 = 3;
	
	//判断
	String str = num1>num2 && num1>num3 ? "你好" : "再见";
	
	System.out.println(str);
	
}

}

语法:||
表达式1 || 表达式2
当表达式1和表达式2的结果都为false时,整个表达式结果为false
如果两个表达式结果,有一个为true时,整个表达式结果为true

当 || 号左侧的表达式为true时,系统将不会再判断 || 号右侧的值
案例:
package com.njwangbo.test;

/**

  • 逻辑运算符
  • @author Administrator

*/
public class Test14 {
public static void main(String[] args) {

	//定义3个变量,保存数据
	int num1 = 10;
	int num2 = 2;
	int num3 = 3;
	
	//判断
	String str = num1>num2 || num1>num3 ? "你好" : "再见";
	
	System.out.println(str);
	
}

}

!:求反
案例:
package com.njwangbo.test;

public class Test15 {
public static void main(String[] args) {
//定义3个变量,保存数据
int num1 = 10;
int num2 = 2;

	//使用求反
	String str = ! (num1 > num2) ? "你好" : "再见";
	
	System.out.println(str);
}

}

3.4.7.位运算符
&、|、^
与逻辑运算符使用方式一致
&:与 不会短路,当 & 号左侧的表达式为false时,系统依然会判断 & 号右侧的表达式
|:或 不会短路,当 | 号左侧的表达式为true时,系统依然会判断 | 号右侧的表达式
^:异或 同真同假时为假,其他情况为真
package com.njwangbo.test;

public class Test16 {
public static void main(String[] args) {
//定义3个变量,保存数据
int num1 = 1;
int num2 = 2;
int num3 = 4;

	//使用求反
	String str = num1 < num2  ^ num1 < num3 ? "你好" : "再见";
	
	System.out.println(str);
}

}

作业:
作业1:
完成以下功能:
欢迎登录购物管理系统


1.登录
2.退出

请选择操作 (输入数字,选择登录即可)

选择登录,进入以下界面
您选择的是登录
请输入用户名
请输入密码

(比较用户名和密码输入是否正确,(正确的用户名和密码为:admin/111111))
如果正确,输出:登录成功
如果错误:输出:登录失败

作业2:
在控制台输入一个5位数,
判断中间三个数是不是‘666’
如果是:输出:“你好”
如果不是:输出:“再见”

作业3:
在控制台输入三个4位数
取出第一个数的第二个数字,第二个数的第三个数字,第三个数的第四个数字
比较这三个数字是否相等
如果相等:“相等”
如果不相等:“不相等”

作业4:
在控制台输入三个四位数
取出每个数字的 百位 数,
求三个 百位 数的平均值

完成以下功能:
欢迎登录购物管理系统


1.登录
2.退出

请选择操作
此处需要的操作:
1.接收用户的选择
2.根据用户的输入,进入不同的界面
选择1:进入登录界面
选择2:系统退出
选择3、4、5…其他情况,输出:“您输入的数字不正确,系统退出”

以下是登录界面
您选择的是登录
请输入用户名
请输入密码

(比较用户名和密码输入是否正确,(正确的用户名和密码为:admin/111111))
如果正确,输出:登录成功
如果错误:输出:登录失败

3.5.条件控制语句
3.5.1.基本if
语法:
if( 判断条件 ){
//当判断条件结果为true时,执行的逻辑语句代码块
}

判断条件:boolean类型的表达式
案例:
定义一个int类型的变量并赋值
如果值大于8,输出:“你好”,反之什么也不输出
package com.njwangbo.test;

/**

  • 基本if语法

  • 定义一个int类型的变量并赋值
    如果值大于8,输出:“你好”,反之什么也不输出

  • @author Administrator

*/
public class Test01 {
public static void main(String[] args) {

	//定义变量
	int num = 1;
	//使用if条件语句
	if( num > 8 ){
		//当判断条件为true时,执行的代码块
		System.out.println("你好");
		
	}
}

}

练习:
在控台输入一个数字
如果这个数大于60,输出:“真棒”,反之则什么也不做
package com.njwangbo.test;

import java.util.Scanner;

/**

  • 在控台输入一个数字
    如果这个数大于60,输出:“真棒”,反之则什么也不做
  • @author Administrator

*/
public class Test02 {
public static void main(String[] args) {
//引用Scaner类
Scanner sc = new Scanner(System.in);
System.out.println(“请输入一个数字”);
//接收控制台输入的数据
int num = sc.nextInt();
//使用if选择结构
if( num > 60 ){
//判断条件为true时执行的代码块
System.out.println(“真棒”);
}

}

}

3.5.2.if…else…
语法:
if( 判断条件 ){
//判断条件为true时执行的逻辑代码
}else {
//判断条件为false时执行的逻辑代码
}
3.5.2.1.简单条件语句

案例:
定义一个int类型的变量并赋值
如果值大于8,输出:“你好”,反之则输出“再见”
package com.njwangbo.test;

/**

  • 基本if语法

  • 定义一个int类型的变量并赋值
    如果值大于8,输出:“你好”,反之什么也不输出

  • @author Administrator

*/
public class Test03 {
public static void main(String[] args) {

	//定义变量
	int num = 9;
	//使用if条件语句
	if( num > 8 ){
		//当判断条件为true时,执行的代码块
		System.out.println("你好");
		
	}else{
		//判断条件为 false时执行的代码块
		System.out.println("再见");
	}

	
}

}

练习:
在控台输入一个分数
如果这个数大于60,输出:“真棒”,反之输出:“呵呵哒,你个渣渣! ”
package com.njwangbo.test;

import java.util.Scanner;

/**

  • 在控台输入一个分数
    如果这个数大于60,输出:“真棒”,反之输出:“呵呵哒,你个渣渣! ”

  • @author Administrator

*/
public class Test04 {
public static void main(String[] args) {
//引用Scaner类
Scanner sc = new Scanner(System.in);
System.out.println(“请输入一个数字”);
//接收控制台输入的数据
int num = sc.nextInt();
//使用if选择结构
if( num > 60 ){
//判断条件为true时执行的代码块
System.out.println(“真棒”);
}else{
//判断条件为假时执行的代码块
System.out.println(“呵呵哒,你个渣渣!”);
}

}

}

案例:
在控制台输入一个字符串
如果字符串中包含“竟然敢” ,输出:“我再也不干了”,反之输出:“真棒”
package com.njwangbo.test;

import java.util.Scanner;

/**

  • 在控制台输入一个字符串
    如果字符串中包含“竟然敢” ,输出:“我再也不干了”,反之输出:“真棒”

  • @author Administrator

*/
public class Test05 {
public static void main(String[] args) {
//引用Scanner类
Scanner sc = new Scanner(System.in);

	System.out.println("请输入一个字符串");
	String str = sc.next();
	
	//使用if条件语句比较 字符串中是否包含“竟然敢”
	if( str.contains("竟然敢") ){
		//判断条件结果为真
		System.out.println("我再也不敢了");
		
	}else{
		//判断条件加过为假
		System.out.println("真棒");
	}

}

}

练习:
在控制台输入字符串
如果字符串中含有“你会做什么”,“你有什么功能”,“你能做什么”这些关键字
输出:“我的特异功能就是吃饭”,反之输出:“我的特异功能就是什么都不会”
package com.njwa

相关文章