MySQL
-
数据库是所有软件体系中最核心的存在 !
查询数据库版本 mysql --version
1. 什么是数据库?
数据库(DB,DateBase)
概念:数据仓库,软件,安装在操作系统(window,linux,mac,...)之上! 可以存储大量数据,500W
作用:存储数据,管理系统
2. 数据库分类
关系型数据库:(SQL)
- MySql,Orale,sql,Sql Server,DB2,SQLLite
- 通过表和表,行和列之间的关系进行数据的存储, 学员信息表,考考勤表,...
非关系型数据库: (NoSql) Not Only
-
Redis,MongDB
-
非关系型数据库,对象存储,通过对象的自身属性来决定。
DBMS(数据库管理系统)
- 数据库管理软件,科学有效的管理我们的数据,维护和获取数据;
- MySQL,数据库管理系统,
- 数据库管理系统----管理和操作数据
- 数据库-----存储数据
3. MySQL服务的启动和退出
登录: mysql [-h主机名 -p端口号] -u用户名 -p密码
退出: exit 或者 ctrl+c
4. mysql常用命令
describe是查看表结构,select是查看表内数据。
sc delete mysql; -- 清空服务 mysql -uroot -p123456 -- 连接数据库 update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; -- 修改密码 flush privileges; -- 刷新权限 ---------------------------------------------------------------------- -- 所有的语句都使用;结尾 show databases;-- 查看所有的数据库 use school -- 切换数据库use数据库名 show tables; -- 查看数据库中所有表 desc student; -- 显示数据库中所有表的信息 create database ice; -- 创建一个数据库 select database(); -- 查看当前数据库 exit; -- 退出连接 -- 单行注释
每一个sqlyog的执行操作,本质就是对应一个sql,可以在历史记录中查看
5. 数据库XXX语言
DDL--定义 DML--操作 DQL--查询 DCL--控制
6. 创建表
引擎InnoDB 字符集utf8 核对utf8_general_ci
7. 操作数据库
操作数据库 > 操作数据库中的表 > 操作数据库表中的数据
MySQL关键字不区分大小写
- 创建数据库
CREATE DATABASE [IF NOT EXISTS] WESTOR
- 删除数据库
DROP DATABASE [IF EXISTS] WESTOR
- 使用数据库
use `school`
- 查看数据库
SHOW DATABASES -- 查看所有的数据库
8.数据库的类型
数值
-
tinyint 十分小的数据 1个字节
-
smallint 较小的数据 2个字节
-
mediumint 中等大小的数据 3个字节
-
int 标准的整数 4个字节 常用的 int
-
bigint 较大的数据 8个字节
-
float 浮点数 4个字节
-
double 浮点数 8个字节 (精度问题)
-
decimal 字符串形式的浮点数 金融计算的时候一般用decimal
字符串
-
char 字符串的固定大小 0-255
-
varchar 可变字符串 0-65535 常用的变量 String
-
tinytext 微型文本 2^8-1
-
text 文本串 2^16-1 保存大文本
时间日期
java.util.Data
- data YYYY-MM-DD 日期格式
- time HH:mm:ss 时间格式
- datatime YY-MM-DD HH:mm:ss 最常用的时间格式
- timestamp 时间戳 1970.1.1到现在的毫秒数! 也较为常用!
- year 年份表示
null
-
没有值,未知
-
注意:不要使用NULL进行运算,结果为NULL
9.数据库的字段属性(重点)
Unsigned:
-
无符号的整数
-
声明了该列不能为负
zerofill:
- 0填充的
- 不足的位数补0
自增:
-
默认在上一条记录的基础上自增1
-
通常用来设计唯一主键--index,必须是整数类型
-
可以自定义设计主键自增的起始值和增长
非空 NULL not null
-
假设设置为not null ,如果不赋值,会报错
-
NULL ,如果不写值,就是null
-- 目标创建一个school数据库
-- 创建学生表(列,字段)使用sql创建
-- 学号int 登陆密码varchar(20) 姓名,性别varchar(2),家庭住址,email
-- 使用英文(), 表的名称和字段尽量用``括起来
-- AUTO_INCREMENT 自增
-- 字符串使用单引号''括起来
-- 所有语句后面加英文逗号, 最后一句不用加
-- PRIMARY KEY 主键,一般一个表只有唯一一个主键!
CREATE TABLE IF NOT EXISTS `students`(
`id` INT(3) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(3) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
格式
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
...
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]
注意:创建表的括号里要用逗号;
创建外键约束:
constraint emp_depid_fk foreign key(dep_id) references department(id) ) on update cascade on delete cascade
-- 清空表中所有记录
truncate table 表名;
-- 创建外键约束
constraint teacher_id_fk foreign key (teacher_id) references teacher(id),
三大范式--
脏读:
虚读:update中
幻读:insert和delete中

浙公网安备 33010602011771号