数据在程序中运行时有,程序运行完就没有了,这样我们数据是在内存中的。
Java基础的时候有Java IO流,把数据保存到文件中,这样重启之后数据还在。
取数据的时候不方便
“zhangsan,123456,18,男,我是一个土豪、lisi,666666,19,男,”
应该有一个规范来保存数据,于是数据库软件诞生了。
数据库就是一个软件,它是解决数据持久化的软件。
数据持久化,指的是把数据保存到磁盘的过程,还包括从磁盘读取的过程。
磁盘还可以是其他设备。
数据库(DataBase ,db,DB):指长期保存在计算机的存储设备中,按照一定的规则组织起来,可以被各种用户或者程序应用共享的数据集合。
数据库管理系统: (DataBase Management System ,DBMS)
2.主流的数据库软件?
Oracle: 运行稳定,功能齐全,性能超群,技术领先…… 收费。PL/SQL
MySQL: 免费,体积小,速度快,开源。数据库引擎支持插件化(Inno DB)。2008年被SUN收购了,2009年SUN又被Oracle收购了。5.7.x
5.7.x为什么让大家用这个版本,安装与卸载的时候方便,都有图形化工具。
SQL Server:微软出品,sp4补丁。
PostgreSQL:它也是免费的,加州大学伯克利分校开发的,最开始只是用于实验室,数据库原理的实验上,后来发现,设计的很好,性能也不错,很多企业选择了它。
DB2 ACC TD ……
运行标准SQL语句都一样。
3、Select
查询关键字你可以用select查询出数据库的版本信息,当前时间,日期,等等……
查看版本信息
Select version();
查看时间
Select current_time;
查看日期
Select current_date;
查看日期时间*****
Select now();
Select还可以当计算器用:
select (1+2+3)/3;
4、查看数据库
Show databases;
在数据库中不许删除原生数据库:
Information_schema
Performance_schema
Mysql
Sakila
Sys
World
不同版本数据库,原生数据库可能不一样,但是都不可以删除。
数据库:
使用数据库
Use database_name;
查看数据库中所有的表的表名
Show tables;
5、***查看数据库中表里的信息:
Select * from table_name;
Sql语句是大小写不敏感的
Mysql文件系统当中,有数据文件的概念。
什么叫“数据文件”?
保存数据的文件我们称之为数据文件,其实数据库软件不过是对“IO流”的封装而已。
日志文件,里面记录了对于数据库的操作,可以使用它对数据库进行恢复。
备份数据文件。
6、创建自己的数据库
Create database database_name;
创建表:
Create table table_name(
id int(4),
name varchar(20)
);
向表中插入数据
Insert into table_name values(1,’zhangsan’);
数据类型:
Bit,tinyint,smallint
Int 整型 -21亿多-21亿多 Float 浮点 double双精度浮点
金钱相关的数据不要使用int float doubel类型
Java中有一个类叫BigDecimal
Mysql中decimal
二者对应。
7、Char varchar的区别
其实在数据库中有char,和Java语言中String的概念不一样
Char(10)
Lisi放进去
Lisi
“lisi ”
Varchar不一样
Varchar(10)
lisi
Varchar(10)
2018-01-021234561387
Date DateTime Year
YYYY-MM-DD
YYYY-MM-DD HH:mm:ss
YYYY
8、Select在查询的时候可以指定列
也就是“*”位置替换成具体的列名
Select col_name1,col_name2…… from table_name;
查询出的结果,我们称之为“结果集”。
表的结构可以修改
Alter table table_name add col_name value_type;
数据被赋值之前是“NULL”
修改NULL为具体的值。
Update语句,意思是更新数据
Update table_name set col_name1=value1,col_name2=value2…… where boolean1 and boolean2;
丢弃表的一列
Alter table table_name drop column col_name;
删除一行数据
Delete from table_name where Boolean1;
删除表:drop table table_name; 删除数据库:drop database database_name;
9、主键:
在软件开发中,我们通常用主键来区分数据库中的每一行。
DDL DATA DEFINITION LANGUAGE 数据定义语言 create drop alter
DML data manipulation language 数据操控语言 insert delete update
DQL data query language 数据查询语言 select
Select delete是有from的
Where条件过滤
Select * from mytable where Boolean
Order by
Select * from mytable order by age;
默认升序,加desc就是降序
Select * from mytable order by col_name1 desc,col_name2
分组问题:where和having的顺序
Select * from table_name
Where boolean1
Group by col_name1
Having boolean2
Order by col_name2
10.聚合函数不能使用在where条件中