数据库概念:

- RDBMS(关系型数据库管理系统):Oracle、SQL Server、DB2、MySQL...
- 实体:这些客观存在的、可以被描述的事物
- 数据表(关系):二维表
- 记录(元组):行
- 字段(属性):列
- 数据库 - 对象(表、视图、索引、。。。。。)
- DB(数据库Database)、DBS(数据库系统)、DBMS(数据库管理系统)、RDBMS(关系型数据库管理系统)
- 数据操作:增删查改(CRUD)、(insert、update、select、delete)
- 三范式  -- 冗余

数据库完整性:

- 实体完整性
  -- 正确区分实体
  -- 主键:唯一、非空 -- 组合键
- 引用完整性(参照完整性)
  -- 从表中的数据参照主表中的数据(公共列)
  -- 外键:允许null
- 域完整性
  -- 保证字段数据的正确性
  -- 约束:默认值、check、。。。。。

MySQL

- 开放源代码,广泛使用在web应用中
- 版本:社区版、企业版
- 安装与配置

MySQL管理:

- 服务器管理:
  -- 启动服务:net start mysql    // mysql是安装的服务名字
  -- 关闭服务:net stop mysql
- 登录mysql
  -- mysql -uroot -p1
  -- mysql -u用户名 -p密码 -h主机 -P端口
- 登出
  -- quit
- show databases; 查看当前服务器的数据库信息
- use xxx; 打开某数据库
- show tables; 查看当前数据库的所有表
- desc 查看表结构

Navicat:

- 安装(集成版)
- 建立mysql的连接
- 可视操作
- 命令:命令列界面
- 数据迁移
- 逆向模型

操作:

- 建库 - 建表 - 数据操作
- SQL(Structured Query Language):结构化查询语言
  -- 分类
     -- DML:数据操作语言(操作数据库中的数据) insert、update、delete
     -- DDL:数据定义语言(创建和删除数据库对象)create、drop、alter
     -- DQL:数据查询语言(用于查询数据库中的数据)select
     -- DCL:数据控制语言(数据库组件的一切权限) grant、commit、rollback
  -- 运算符
     -- 算术运算符  + - * /(非整除) %
     -- 逻辑运算符  and  or  not
     -- 赋值运算符  =
     -- 关系运算符  = <>  !=  >=  <=

数据库操作:

- 创建: create database  xxxx
         create database test DEFAULT CHARACTER set utf8 COLLATE utf8_general_ci
- 删除: drop database  xxxx

数据表操作:

- 数据类型
- UNSIGNED属性
     标识为无符号数
  ZEROFILL属性
     宽度(位数)不足以0填充(查询结果)

- 创建: create table 表名(字段名 类型 [约束],,,,)
         create table student(id int primary key auto_increment,name varchar(20) not null);
- 约束:
         主键、外键、非空、唯一、默认值
- 删除:drop table xx
- 修改:alter table xxx .......
  -- 列操作:
     添加: alter table xxx add column 列名 类型 约束
     删除: alter table xxx drop column
     修改: alter table xxx modify column xxxx
  -- 约束操作:
     ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);

数据操作:

- 增(insert)
  insert into 表名(列名1,列名2.。。。) values(值1,值2.。。。)   // 字符串和日期时间类型需要使用''
  省略列名,需要给所有列按照顺序提供值(包括自动增长列)
- 删(delete)
  delete from 表名; 删除所有记录
  delete from 表名 where 条件;
  TRUNCATE TABLE 表名; 清空表
- 改(update)
  update 表名 set 列名1=新值1,列名2=新值2 [where 条件]
- 查(select)
  select * from 表名
  -- 投影:只获取部分查询项
  -- 筛选:只获取复合条件的记录  。。。