数据库概念:
- 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 表名
-- 投影:只获取部分查询项
-- 筛选:只获取复合条件的记录 。。。