发表于: 2022-02-28 21:51:54
0 731
1.数据库
是存储和管理数据的仓库
类似于冰箱存放食物,而数据库存放数据
允许多人同时使用查找数据
类似于网盘
2.关系数据库
由多个表组成,结构:多个表+各个表之间的【联结(join)】--->表要关联其他表,通过对应的列产生关系
了解表的结构,对象,属性?
3.MySQL
mysql是一种关系数据库管理系统,
(数据库)--实现-->(通过MySQL)--查找数据(sql)-->得到数据
4.SQL
用来操作数据库里数据的工具,访问和处理数据库的计算机语言
5.支付宝的背后的运行原理,用户把钱存放到支付宝数据库里,当用户查看支付宝余额的时候,后台使用SQL这个工具操作支付宝的数据库,把里面的数据查找出来,然后返回给用户,这样用户就可以看到存放到支付宝里的钱和每天的收益,过程用户看不到,用户看到的只是最后的一个查询结果。
6.Navicat是数据库开发工具,可以同时连接MySQL等多种数据库,从而可以创建,管理,维护数据库
7.JAVA(面向对象的编程语言)
八大数据类型:
整型 byte,short,int,long,(表示的整数)
字符型 char
浮点型 float,double
布尔型 Boolean
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
例子:short s = 1000,short r = -20000。
一般地整型变量默认为 int 类型;
long主要使用在需要比较大整数的系统上;
float/double可以表示小数,double更精确
char 数据类型可以储存任何字符,例:‘a’,‘b’‘你’,‘1’都是字符; “ab你1”是字符串
1.初步了解navicat的功能及其使用操作
2.创建数据库 CREATE DATABASE 数据库名字
3.sql语句 选取数据 全表选取 SELECT * FROM 表名
选取某表的某列 SELECT 列名 FROM 表名
选取某列中去除重复的唯一不同值 SELECT DISTINCT 列名 FROM 表名
4.有条件的选取表中数据 SELECT 列名 FROM 表名 WHERE 列名 运算符 ‘值’
全表中有条件的选取 SELECT * FROM 表名 WHERE 列名 运算符 值
'文本值' , 数值 运算符:= 等等
5.数据插入新的行 INSERT INTO 表名 VALUES (‘值1’,‘值2’,...)
数据插入某列 INSERT INTO 表名(列名1,列名2,...)VALUES (‘值1’,‘值2’,...)
6.更新某行中的某列 UPDATE 表名 SET 列名 = ’新值‘ WHERE 列名 = ‘某值’
更改某行中的若干列 UPDATE 表名 SET 列名1 = '新值', 列名2 = '新值',... WHERE 列名 = '某值'
7.删除表中的某行 DELETE FROM 表名 WHERE 列名 = 值
删除表中的全部行 DELETE FROM 表名
sql语句结束后加 ;
8.创建表
表的字段是表中的列(名)
字段类型常用: int , bigint , varchar , date , datetime , timestamp
(int,bigint)-表示数值整数型
(varchar)- 表示长字符串型
(date,datetime,timestamp)- 表示日期或日期时间
时间戳用timestamp,日期=时间用datetime, 日期用date long型用bigint型表示
创建表添加字段第一步先增加ID,自增ID的用法:插入数据时需用 INSERT INTO 表名(列名1,列名2,...)VALUES (‘值1’,‘值2’,...),其中ID列不用插入
创建表过程 字段名尽量小写,注意写注释,英文单词间隔用 _ 表示,值的日期间隔用 - 表示
9.登录MySQL数据库
打开电脑命令行 , C:\Users\lgq03>mysql -u 用户名 -p密码
10.使用JDBCTemplate连接MySQL数据库
//开头必备
public static void main(String[] args) {
//正文
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://IP地址:3306/数据库名");
dataSource.setUsername("用户名");
dataSource.setPassword("密码");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//打印
List<Map<String, Object>> 表名 = jdbcTemplate.queryForList("select * from 表名");
for (Map<String, Object> asd:表名){
System.out.println(asd);
}
11.JDBC是Java语言连接数据库接口,用于连接数据库
2.观看了解了MySQL和navicat的安装调试教程,及navicat连接MySQL的教程
3.进行了任务一中的创建报名表中的任务,进行过程中不断出现报错,寻找错误后发现,要注意规范标点符号,以及中英文标点符号的使用
4. create_time 创建时间
create_by 创建人
update_time 更新时间
update_by 更新人
5.了解将表导出为sql文件,在navicat中表的备份,恢复
6.对表与表的左连接有了初步的认识及结果的展示效果
例: SELECT `bmb2`.*, `student`.* FROM `bmb2` JOIN `student` on `bmb2`.teacher_id = `student`.id;
7.索引的初步建立使用,
CREATE INDEX 索引名 ON 表名 (列名)
想法:qq,学号,修真类型
8.
有索引插入十条数据的时间
> Affected rows: 12
> 时间: 0.005s
无索引插入十条数据的时间
> Affected rows: 12
> 时间: 0.003s
删除索引:DROP INDEX 索引名 ON 表名
9.字段占用长度设置超过报错
> 1406 - Data too long for column 'username' at row 1
思考:、
1,qq类型用varchar还是int?
我觉得要用varchar,首先varchar是字符串型,可扩展性比int要好的多,
比如客户不用qq而是微信,那么可以在qq列中记录微信号,可以增大留存客户联系方式的程度,
再比如qq也许会如同微信号推出个人自定义QQ号,;其次varchar虽然在储存方面要比int更大一些,
但是在作为仅仅记录号码的情况下,varchar的选择性更大
2.如修真类型来说就只有java,op,pm,等等11种选择,可以选择用0-10的数字来表示这11种修真类型,其缺点是不够简洁明了,需要备注清晰
明日计划:
1.对象,对象属性的概念理解加深
2.索引的建立,删除,使用,及其概念了解
3.学会使用表与表之间的左连接,及了解别的连接
4.w3school上的sql语句高级教程学习推进
5.任务一上的任务推进学习
6.不理解的再学习
评论