MySQL 数据库(一)
一、数据库概述
1.概述
特指计算机软件的一种, 按照一定的数据结构来存储和管理数据的仓库,处理数据主要放在磁盘和内存中。
2.数据库分类
- 关系型数据库(SQL),由多张互相连接的二维行列表格组成的数据库。
优点:
- 容易理解
- 使用方便
- 易于维护
缺点:
- i/o瓶颈(读写速度慢)
- 扩展性不够(修改结构麻烦)
- 非关系型数据库 NoSQL(Not Only SQL)
分类:
- 列式存储
- key-value 键值型 Redis (高性能并发读写 cache)
- 文档存储 mongodb
优点:存储方式比较灵活,存储数据的效率比较高
缺点:学习成本高,不同数据库操作完全不同,安全性低
二、MySQL介绍
1.简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于甲骨文(Oracle)公司。
MySQL由于性能好、成本低、可靠性好,是最流行的开源数据库之一,广泛应用于WEB。
关系型数据库管理系统:采用关系模型来组织管理数据的数据库系统,把数据保存在不同的表中,而不是将数据放在一个大仓库中,可以运行于多个系统上,并且支持多种编程语言。
特点:
- 开源
- 支持大型数据库
- 标准的SQL
- 兼容操作系统,支持多种语言
2.MySQL中的数据结构
MySQL不是数据库,它是数据库管理软件
MySQL有多个库,每个库中有多个表
表结构:
- 表头:每一列的名称(字段)
- 列:具有相同数据类型的数据的集合
- 行:一条记录
- 值:
- 键:
3.数据类型
三大类:
- 数值
- 时间日期
- 字符串
三、MySQL的常用操作
1.MySQL的进入与退出
进入:
mysql -uroot -p # mysql -u用户名 -p
qwe123 # 密码
或
mysql -yroot -pqwe123 # mysql -u用户名 -p密码
退出:
exit
2.MySQL库级操作
- 显示所有的库
show databases;
- 创建数据库
create database 数据库名 charset=utf8;
- 删除数据库
drop database 数据库名;
- 选择数据库
use 数据库名;
3…MySQL表级操作
- 显示所有的表
show tables;
- 创建表
create table 表名 (字段名 字段类型,字段2 类型, ...)
create table student (
id int unsigned primary key auto_increment,
name varchar(20) not null,
sex tinyint unsigned default 1,
age tinyint unsigned
);
- 显示创表信息
show create table 表名;
- 显示表结构
desc 表名;
- 删除表
drop table 表名;
语法总结:
- 大小写:关键字不严格区分大小写,但是表名,库名大小写敏感
- 语句结束符:默认情况下每个语句以分号结尾
;
或者\g
- 类型:强制数据类型,任何数据都有自己的数据类型
- 逗号:创建表的时候,最后一个字段后面不加逗号
4.数据操作
crud 操作 create read update delete
(1).插入数据
# 指定字段插入
insert into 表名 (字段1, 字段2,.....)
values
(value1, val2,...);
# 全字段插入
insert into 表名 values (all_values);
# 多行插入
insert into 表名 (字段1, 字段2,.....)
values
(value1, val2,...),
(value1, val2,...),
(value1, val2,...);
(2).查询数据
select 字段1,字段2,.. from 表名 [where 子句];
案例:
- 指定字段查询
select name, age from student;
- 全字段查询
select * from student;
- 带条件的查询
查询年龄等于18的学生select * from student where age=18;
(3).更新数据
update 表名 set 字段=新值, 字段2=新值2,... [where 子句];
- 修改所有数据
update student set sex=1;
- 修改满足条件的数据
update student set sex=1 where name='ww';
- 修改多字段
update student set sex=0, age=16 where id=2;
总结:
- 可以更新一个或多个字段
- 可以在where子句中指定任意条件,不加条件慎用。
(4).删除数据
delete from 表名 [where 子句];
- 删除满足条件的数据
delete from student where id = 1;
- 删掉所有数据
delete from student;
总结;
1. 如果你没有指定where子句,表中所有的数据都会被删除
2. where子句可以指定任何条件
加条件慎用。
(4).删除数据
delete from 表名 [where 子句];
- 删除满足条件的数据
delete from student where id = 1;
- 删掉所有数据
delete from student;
总结;
1. 如果你没有指定where子句,表中所有的数据都会被删除
2. where子句可以指定任何条件