为什么学习数据库
数据库:就是存储大量数据
- 序列化(只有jvm能够解析序列化以后的数据)
- 文件(规则,协议,存取数据的规则必须自己制定,自己制定的规则没有强制性,一旦存取数据不遵循规则,那么拿到的数据数据可能是错误的数据)
- 数据库:有通用格式(关系型数据库),而且如果要在数据库中存取数据,必须以这样的数据格式,否则数据库会报错、
1、数据格式通用,可以实现数据共享(java,c等)
2、保证数据的一致性和完整性约束,(不存在的学生选择了不存在的课程)
3、提供了事物处理(多线程问题,数据库会自己处理多线程问题)
一些介绍
- 数据库管理软件(dbms)mysql,sqlserver等
- 这些软件的架构
- 客户端(发送操作数据的指令)————服务(对数据的增删改查操作的接口)————物理数据(包含了大量的数据库)————逻辑数据(数据以行的形式村子啊,数据又是存储在数据表中的,而数据表又是存储在数据库中)
- SQL(针对关系型数据库)Structrued query language
- DDL(管理数据库和数据表)data defination language
- DML(数据操作语言)data manipulation language
- DCL(数据库控制语言)data control language。控制数据库中的数据正确性,权限管理,定义数据库中的存储过程(相当于java方法),事物处理
约束:用来存储数据过程的正确性
事物:
关系数据库中:数据的模型就是关系(二维表),有严格的数学依据(有一套基于关系模型的公理系统)
SQL简介
- SQL:Structured Query Language的缩写(操作关系数据库中的数据)
- 中文名称:结构化查询语言
- 作用:是一种定义、操作、管理关系数据库的句法。大多数关系型数据库都支持。
- 组成:
**DDL:数据定义语言
DML:数据操作语言
DCL:数据控制语言**
DQL:数据查询语言(sql最难的部分就是查询)(非官方分类)
常见数据库
Oracle(Oracle的)
DB2(IBM的)
Informix(卖给oracle了,专注于事物处理)
Sybase(基本上已过时,power designer帮助设计数据库)
SQL Server 2000 、2005(只能在windows上)
MySQL(开源、免费)
Access(office系列,比较简单)
SQLite(小巧、内嵌在Android)
一个问题
mysql -uroot -p123456
好多人输了以上这个指令以后报错
Access denied for user ‘root’@’localhost’ (using password: YES)
扯特别远要修改啥ini文件啥的
其实是因为123456就不是你的密码,mysql -uroot -p回车
然后输入密码就OK了
数据库服务器、数据库软件、数据库和表的关系
- 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
SQL
- 今天我们所学习的SQL
- 数据库:增删改查————ddl
- 数据表:增删改查————ddl
- 数据:增删改查
DDL数据定义语言
CREATE(创建) ALTER(修改) DROP(删除) TRUNCATE
创建数据库
创建一个名称为mydb1的数据库。
创建一个使用gbk字符集的mydb2数据库。并查看相关信息
创建一个使用gbk字符集,并带校对规则(校对集)的mydb3数据库。