javaweb基础打卡03

数据库的基本概念

1.数据库的英文单词:DataBase 简称:DB
2.什么是数据库?用于存储和管理数据的仓库。
3.数据库的特点:
	1.持久化存储数据。其实数据库就是一个文件系统
	2.方便存储和管理数据
	3.使用了统一的方式操作数据库 -- SQL
4.常见的数据库软件
	*MySQL:开源免费的数据库,小型的数据库,已经被Oracle收购了。MySQL6.x版本也开始收费。Sun公司收购了MySQL,而Sun公司又被Oracle收购
	*Oracle:收费的大型数据库,Oracle公司的产品。
	DB2:IBM公司的数据库产品, 收费的。常应用在银行系统中。
	SQL Server:MicroSoft公司收费的中型的数据库。C#、.net等语言常使用。
	SyBase:已经淡出了历史舞台。提供了一个非常专业的数据建模工具PowerDesigner
	SQLite: 嵌入式的小型数据库,应用在手机端,如:Android。

MySQL数据库软件

1.安装 安装完成后在cmd中输入mysql -uroot -proot查看是否可以成功连接mysql
2.卸载
	1.去mysql的安装目录找到my.ini文件
	复制 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
	2.卸载MySQL
	3.删除C:/ProgramData目录下的MySQL文件夹
3.配置	
- MySQL服务启动
	1.手动。此电脑右键点击管理-->双击服务与应用程序-->双击服务-->输入M
	2.cmd-->services.msc 打开服务的窗口
	3.使用管理员打开cmd
		- net start mysql:启动mysql服务
		- net stop mysql:关闭mysql服务
- MySQL登录
	1.mysql -uroot -p密码 (例如:mysql -uroot -proot)
	2.mysql -hip -uroot -p连接目标的密码 (例如:mysql -h127.0.0.1 -uroot -proot)
	3.mysql --host=ip --user=root --password=连接目标的密码 (例如:mysql --host=127.0.0.1 --user=root --password=root)
- MySQL退出	
	1.exit
	2.quit
- MySQL目录结构
	1.MySQL安装目录
		配置文件 my.ini
	2.MySQL数据目录
		数据库:文件夹
		表:文件
		数据

SQL

1.什么是SQL?
	Structured Query Language:结构化查询语言
	其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
2.SQL通用语法
	1.SQL语句可以单行或多行书写,以分号结尾
	2.可使用空格和缩进来增强语句的可读性
	3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
	4.3种注释
		- 单行注释:-- 注释内容 或 # 注释内容(mysql特有) (--方式必须有空格,#方式空格可有可无)
		- 多行注释:/* 注释 */
3.SQL分类
	1)DDL(Data Definition Language)数据定义语言 
		用来定义数据库对象:数据库,表,列表。关键字:create,drop,alter等
	2)DML(Data Manipulation Language)数据操纵语言
		用来对数据库中表的数据进行增删改。关键字:insert,delete,update等
	3)DQL(Data Query Language)数据查询语言
		用来查询数据库中表的记录(数据)。关键字:select,where等
	4)DCL(Data Control Language)数据控制语言
		用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等

DDL:操作数据库、表

1.操作数据库:CRUD
	1.C(Create):创建
		- 创建数据库:
			create database 数据库名称; (例如:create database db1;)
		- 创建数据库,判断是否存在,不存在再创建:
			create database if not exists 数据库名称; (例如:create database if not exists db2;)
		- 创建数据库,并指定字符集:
			create database 数据库名称 character set 字符集名; (例如:create database db3 character set gbk;)
		练习:创建db4数据库,判断是否存在,并指定字符集为gbk
			create database if not exists db4 character set gbk;
	2.R(Retrieve):查询
		- 查询所有数据库的名称:
			show databases;
		- 查询某个数据库的字符集(查询某个数据库的创建语句):
			show create database 数据库名称; (例如:show create database mysql)
	3.U(Update):修改
		- 修改数据库的字符集:
			alter database 数据库名称 character set 字符集名称; (例如:alter database db3 character set utf8;)
	4.D(Delete):删除
		- 删除数据库:
			drop database 数据库名称; (例如:drop database db3;)
		- 判断数据库是否存在,存在再删除:
			drop database if exists 数据库名称; (例如:drop database if exists db4;)
	5.使用数据库
		- 查询当前正在使用的数据库名称
			select database(); 
		- 使用数据库
			use 数据库名称; (例如:use db1;)	
2.操作表	
	1.C(Create):创建
		1.语法:
			create table 表名(
				列名1 数据类型1,
				列名2 数据类型2,
				...
				列名n 数据类型n
			);
			- 注意:最后一列,不需要加逗号(,)
			- 数据类型:
				1.int:整数类型
					age int,
				2.double(总位数,小数点后位数):小数类型
					score double(5,2) (最大999.99)
				3.date:日期,只包含年月日,yyyy-MM-dd 
				4.datetime:日期,包含年月日时分秒,yyyy-MM-dd HH-mm-ss
				5.timestamp:时间戳类型,包含年月日时分秒,yyyy-MM-dd HH-mm-ss
					如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
				6.varchar:字符串
					- name varchar(20):姓名最大20个字符
					- zhangsan 8个字符 张三 2个字符
			
		2.创建表
			create table student(
				id int,
				name varchar(32),
				age int,
				score double(4,1),
				birthday date,
				insert_time timestamp	
			);
		3.复制表:
			create table 表名 like 被复制的表名; (例如:create table stu like student;)
	2.R(Retrieve):查询
		- 查询某个数据库中所有的表名称
			show tables;
		- 查询表结构
			desc 表名; (例如:desc host;)
	3.U(Update):修改
		1.修改表名
			alter table 表名 rename to 新的表名; (例如:alter table student rename to stu;)
		2.修改表的字符集
			alter table 表名 character set 字符集名称; (例如:alter table stu character set utf8;)
		3.添加一列
			alter table 表名 add 列名 数据类型; (例如:alter table stu add gender varchar(10);)
		4.修改列名称 类型
			alter table 表名 change 列名 新列名 新数据类型; (例如:alter table stu change gender sex varchar(20);)
			alter table 表名 modify 列名 新数据类型; (例如:alter table stu modify sex varchar(10);)
		5.删除列
			alter table 表名 drop 列名; (例如:alter table stu drop sex;)
	4.D(Delete):删除
		- drop table 表名; (例如:drop table stu;)
		- drop table if exists 表名; (例如:drop table if exists stu;)
3.客户端图形化工具:SQLYog 	按住ctrl+滚轮改变字体大小	

DML:增删改表中数据

1.添加数据:
	语法:
		insert into 表名(列名1,列名2,...列名n) values (值1,值2,...值n); (例如:INSERT INTO stu(id,NAME,age) VALUES(1,'张无忌',18);)
	注意:
		1.列名和值要一一对应
		2.如果表名后不定义列名,则默认给所有列添加值
			insert into 表名 values (值1,值2,...值n); (例如:INSERT INTO stu VALUES(2,'赵敏',17,99.9,NULL,NULL);)
		3.除了数字类型,其他类型需要使用引号(单双都可以)引起来
2.删除数据:
	语法:
		delete from 表名 [where 条件]; (例如:DELETE FROM stu WHERE id=1;)
	注意:
		1.如果不加条件,则删除表中所有记录。(例如:DELETE FROM stu;)
		2.如果要删除所有记录
			1.delete from 表名; (例如:DELETE FROM stu;) -- 不推荐使用。有多少条记录就会执行多少次删除操作
			2.truncate table 表名; (例如:TRUNCATE TABLE stu;) -- 推荐按使用,效率更高。先删除表,然后再创建一张一样的表
3.修改数据:
	语法:
		update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件]; (例如:UPDATE stu SET age = 117 WHERE id = 3;) (例如:UPDATE stu SET age = 117 , score = 100 WHERE id = 2;)
	注意:
		1.如果不加任何条件,则会将表中所有记录全部修改 (例如:UPDATE stu SET age = 20;)

DQL:查询表中的数据

1. 语法:
	select
		字段列表
	from
		表名列表
	where
		条件列表
	group by
		分组字段
	having
		分组之后的条件
	order by
		排序
	limit
		分页限定			
2. 基础查询
	1. 多个字段的查询
		- select 字段名1,字段名2... from 表名; 
		例如:查询姓名和年龄:select name,age from student;
			优化写法:
				select
					name, -- 姓名
					age -- 年龄
				from
					student; -- 学生表
		- 注意:
			如果查询所有字段,则可以使用*来替代字段列表。(例如:select * from student;)
	2. 去除重复:
		- distinct (例如:select distinct address from student;)
	3. 计算列
		- 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
			(例如:计算math和english分数之和:select name,math,english,math + english from student;)
		- ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
			表达式1:哪个字段需要判断是否为null
			表达式2:该字段为null后的替换值。
			(例如:select name,math,english,math + ifnull(english,0) from student;)
	4. 起别名:
		- as:as也可以省略
			(例如:select name,math,english,math + ifnull(english,0) as 总分 from student;)
			(例如:select name,math 数学,english 英语,math + ifnull(english,0) 总分 from student;)
3. 条件查询
	1. where子句后跟条件
	2. 运算符
		- ><<=>==<>
			查询年龄大于20岁:SELECT * FROM student WHERE age > 20;
			查询年龄等于20岁:SELECT * FROM student WHERE age = 20;
			查询年龄不等于20岁:SELECT * FROM student WHERE age <> 20;	
		- BETWEEN...AND  
			查询年龄大于等于20 小于等于30:SELECT * FROM student WHERE age BETWEEN 20 AND 30;
		- IN( 集合) 
			查询年龄22岁,18岁,25岁的信息:SELECT * FROM student WHERE age IN (22,18,25);
		- LIKE:模糊查询
			占位符:
				1. _:单个任意字符
				2. %:多个任意字符
			查询姓马的有哪些:SELECT * FROM student WHERE NAME LIKE '马%';
			查询姓名第二个字是化的人:SELECT * FROM student WHERE NAME LIKE "_化%";
			查询姓名是3个字的人:SELECT * FROM student WHERE NAME LIKE '___';
			查询姓名中包含德的人:SELECT * FROM student WHERE NAME LIKE '%德%';
		- IS NULL  
			查询英语成绩为null:SELECT * FROM student WHERE english IS NULL;
		- and 或 &&
			查询年龄大于等于20 小于等于30:SELECT * FROM student WHERE age >= 20 AND  age <=30;
		- or 或 || 
			查询年龄22岁,18岁,25岁的信息:SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
		- not 或 !
			查询英语成绩不为null:SELECT * FROM student WHERE english IS NOT NULL;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!欢迎您对JavaWeb基础学习的兴趣。如果您是初学者,我可以为您提供一些入门的建议和学习资源。以下是一些建议: 1. Java基础知识:在学习JavaWeb之前,首先需要掌握Java基础知识,包括面向对象编程、控制流、集合框架等。您可以通过在线教程、书籍或视频教程学习这些基础知识。 2. HTML和CSS:了解HTML和CSS是非常重要的,因为JavaWeb开发涉及到与前端页面的交互。您可以通过在线教程或相关书籍学习HTML和CSS的基础知识。 3. Servlet:Servlet是JavaWeb的核心技术之一,它用于处理HTTP请求和响应。学习Servlet可以帮助您理解JavaWeb开发的基本原理和流程。您可以通过阅读相关的文档、教程或者参考书籍来学习Servlet。 4. JSP:JSP(JavaServer Pages)是一种用于创建动态Web页面的技术。它可以帮助您将Java代码嵌入到HTML中,从而实现动态内容的生成和展示。学习JSP可以让您更高效地开发JavaWeb应用程序。 5. 数据库知识:JavaWeb应用程序通常需要与数据库进行交互,因此了解数据库的基本知识也是必要的。您可以学习关系型数据库(如MySQL)的基本概念、SQL语句的使用以及Java数据库的连接。 6. 框架和工具:学习一些常用的JavaWeb框架和工具,例如Spring、Hibernate等,可以提高您的开发效率和代码质量。 除了以上建议,您还可以通过参加培训班、加入开发社区或者实践项目来加强自己的JavaWeb技能。希望以上建议对您有所帮助!如果您有任何进一步的问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值