Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站
JavaWeb: 是用 Java技术来解决相关web互联网领域的技术栈
数据库
存储数据的仓库,数据是有组织的进行存储 英文:DataBase,简称 DB
数据库管理系统
管理数据库的大型软件 英文:DataBase Management System,简称 DBMS SQL
SQL
英文:Structured Query Language,简称 SQL,结构化查询语言
操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
Oracle:收费的大型数据库,Oracle 公司的产品
MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
PostgreSQL:开源免费中小型的数据库
DB2:IBM 公司的大型收费数据库产品
SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
MariaDB:开源免费中小型的数据库
下载链接:https://downloads.mysql.com/archives/community/
下载完成直接解压就可以了
电脑属性->高级系统设置->环境变量->新建系统变量MYSQL_HOME 把bin目录的路径创建进去
然后找到path变量 新增 %MYSQL_HOME%/bin 就可以了
创建my.ini 配置文件,将下面内容 输入进去并保存,安装目录记得修改成自己的
[client] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\\web\\mysql-8.0.11 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错 # datadir=C:\\web\\sqldata # 允许最大连接数 max_connections=20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
初始化mysql 管理员运行CMD 输入mysqld --initialize --console 就初始化成功了 这时候会告诉你最开始的密码,一定要复制这个密码,然后修改成新密码 mysqladmin -u用户名 -p旧密码 password 新密码 然后输入mysqld install 安装mysqld
输入net start mysql 就可以启动数据库了
输入net stop mysql 就可以停止数据库了
输入mysql -u root -p登录数据库
如果不需要使用了 输入 exit 或者quit退出就可以了
英文:Structured Query Language,简称 SQL 结构化查询语言,一门操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
SQL 语句可以单行或多行书写,以分号结尾。
MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
注释 单行注释: -- 注释内容 或 #注释内容(MySQL 特有) 多行注释: /* 注释 */
DDL(Data Definition Language) 数据定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
数据库:
create table tb_user(
id int,
username varchar(20),
password varchar(32)
);
数据类型
分为三类:数值,日期,字符串
double(5,2) 表示定义的类型为0-100, 小数点后两位
练习:需求:设计一张学生表,请注重数据类型、长度的合理性
1.编号
2.姓名,姓名最长不超过10个汉字
3.性别,因为取值只有两种可能,因此最多一个汉字
4.生日,取值为年月日
5.入学成绩,小数点后保留两位
6.邮件地址,最大长度不超过 64
7.家庭联系电话,不一定是手机号码,可能会出现 - 等字符
8.学生状态(用数字表示,正常、休学、毕业...)
create table student(
id int,
name varchar(10),
sex char(1),
birthday date,
score double(5,2),
mail varchar(64),
tel varchar(15),
status tinyint
);
先写在记事本上然后复制到cmd就可以了
2:也就是说 给所有列添加数据时可以省略列名
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;
update stu set sex ='女' where name ='张三';
注意:修改语句中如果不加条件,则将所有数据都修改!
DELETE FROM 表名 [WHERE 条件] ;
注意:修改语句中如果不加条件,则将所有数据都删除!
3:
select name as 名字 from stu;
这时候name就会显示成名字
“并且”一般都用and 不用 &&
“或者” 可以直接不用符号连接,一般用or
简写:select *from stu where age in(18,20,22); 选择出年龄为18或者20,或者22的学生
注意:null值的比较不能使用= ,!= 需要使用is ,is not
select * from stu where english is null;
like模糊查询 _代表单个任意字符 %代表任意个任意字符
查询姓马的学生
select * from stu where name like '马%';
查询第二个字是花的学生
select * from stu where name like '_花%';
查询名字中包含德的学生
select * from stu where name like '%德%';
查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列
select * from stu order by math desc,english asc;
统计班里所有学生
select count(id) from stu;
count 统计的列名不能为null 一般括号里我们填 主键或者*
1.查询 男同学和女同学的各自平均分
select sex,avg(math) from stu group by sex;
2.查询男同学跟女同学的数学各自平均分,低于70分的不参与分组
select sex ,avg(math),count(*) from stu where math >70 group by sex;
3.查询男同学跟女同学的数学各自平均分,低于70分的不参与分组,分组之后人数需要大于2
select sex ,avg(math),count(*) from stu where math >70 group by sex having count(*) >2;
select * from stu limit 0,3; 每页显示三条数据,查询第一页
select*from stu limit 3,3 每页显示三条数据 查询第二页数据
所以公式 起始索引= (当前页码-1)*每页显示条数
IDEA右边栏有个database
点击加号 选择mysql 得到以下画面
填好用户名跟密码,以及对应的数据库 就可完成连接
连接好后 可以直接在控制台运行语句