mysql
# mysql数据库,是当前应用非常广泛的一款关系型数据库。
# 优点:持久化存储,优化读写,保证数据的有效性
# E-R关系模型
# E表示entry,实体 (表的类)
# R表示relationship,关系(任何事物之间都有直接或者间接的联系)
# 一个实体转换为数据库中的一个表
# 关系描述两个实体之间的对应规则,包括
# 一对一
# 一对多
# 多对多
# 数据库的3范式
# 第一范式(1NF):列不可拆分
# 第二范式(2NF):唯一标识
# 第三范式(3NF):引用主键
# 后一个范式,都是在前一个范式基础上建立起来的
# 主要操作包括:
# 数据库的操作,包括创建,删除
# 表的操作,包括创建,修改,删除
# 数据的操作,包括增加,修改,删除,查询,简称crud
# 学生表
# id
# 姓名
# 性别
# 地址
# 生日
# 科目表结构
# id
# 名称
# 数据完整性
# 在mysql中包括的数据类型很多
# 数字:int,decimal(浮点型)
# decimal(5,2) 一共包含5位数,小数两位
# 字符串:
# char 存的字符是固定的
# varchar 存的字符是不固定的
# text
# 编码
# gb2312 中国大陆编码
# utf8 国际通用标准
# 日期:
# datetime
# 布尔:
# bit
# 性别
# 约束
# 主键 primary key
# 非空 not null
# 唯一 unique
# 默认 default
# 外键 foreign key
# 逻辑删除(isDelete,DeleteFlag)
# 对于重要数据,并不希望物理删除,一旦删除,数据无法找回
# 一般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除
# 大于大量增长的非重要数据,可以进行物理删除
# 数据的重要性,要根据实际开发决定
# 打开cmd终端,运行命令:
# mysql -uroot -p
# Enter password: ****
# 数据库库的操作
# 查看当前的版本
# select version()
#显示当前时间
# select now()
# 查看所有的数据库
# show databases;
# 创建数据库
# create database 数据库名 charset=utf8
# 删除数据库
# drop database 数据库名
# 切换数据库
# use 数据库名
# 查看当前选择的数据库
# select database();
# 表的操作
# 查看当前所有的表
# show tables;
# 创建表
# 自动增长 auto_increment
# create table 表名(列及类型);
# create table student(
# id int auto_increment primary key not null,
# name varchar(10) not null,
# gender bit default 1,
# birthday datetime
# );
# 查看表结构
# desc 表名
# 删除表
# drop table 表名;
# 修改表
# alter table 表名 add|change|drop 列名 类型;
# 更改表名称
# rename table 原表名 to 新表名
# 查看表的创建语句
# show create table 表名
# 数据操作
# 查询
# select * from 表名
# 增加
# 全列插入
# insert into students values(0,'东邪黄药师',1975-1-1,1,0)
# 针对字段插入
# insert into students(name,birthday) values('西毒欧阳锋','1975-01-01')
# 同时插入多条数据
# insert into students values(...),(...)或 insert into students(name,gender) values('南帝段王爷',1),('北丐洪七公',1)
# 修改
# update students set birthday='1990-2-2',gender=0 where id=9;
# 删除
# delete from students where id=3