初始MySQL
一、了解主流的数据库和数据库分类
1、数据库概念
- 按照数据结构来组织,存储和管理数据的一种建立在计算机存储设备上的仓库。
数据库的优势:
优势1、可以持久化存储大量的数据、方便我们进行检索
优势2、可以保证数据的安全和数据的一致性(事物...)
优势3、可以很轻松的通过数据库来提取提取出新的有效信息(计算平均分、统计人数)
2、数据库的分类
RDB(Relational DataBase)关系型数据库
例如:在关系型数据库中 有一张存储了学生数据的表格 还有一张存储了学生年级的表格。
学生姓名 性别 年级
石浩然 男 1
陈旭 男 2
年级编号 年级名称 年级....
1 大学一年级
2 大学二年级
**性能方面:**关系型数据库受限于技术实现,所以有瓶颈。但是它在安全方面比较可靠。(事物支持好)
**NoSQL(Not only SQL)**不仅仅是SQL 非关系型数据库
文档型数据库
键值对数据库 key value
姓名 石浩然
图形数据库
.....
它这种概念正式兴起于web2.0时代 2006~2009… 它的性能非常优异。但是安全方面比较差。(事物支持不太好)
RDB(主) + NoSQL(副)
show databases;
3、主流数据库
RDB:
MySQL、Oeacle、SQLServer、PostgreSQL、MaruaDB、SQLlite...
NoSQL:
Redis、Memcached、MongoDB、HBase、Solr、ElasticSearch...
二、了解常用的数据库命令
1、数据库服务器的组成
数据库是基本单位
数据表是数据库的基本单位
例如:我们需要开发一个小说阅读器,他需要存储小说、分类、用户…等信息、
创建一个小说阅读器的数据库:sun_reader_db
在 sun_reader_db 中创建小说表,分类表、用户表(二维表)
2、SQL:(Structured Query Language)结构化查询语言,它也是一种规范,标准。
我们的关系型数据库都是采用SQL 来进行操作的。CRUD
DDL:数据定义语言 创建Create 删除Drop 修改Alter table
DML:数据操作语言 CUD增Insert 删Delete 改Update
DQL:数据查询语言 Select 查询
DCL:数据控制语言 Grant、Roll back、Commit…
3、数据库相关操作命令
-- 创建数据库命令
create database 数据库名;
-- 删除数据库命令
drop database 数据库名;
-- 查看数据库
show databases;
-- 切换数据库 如果需要在此数据库中进行操作 必须要先切换此数据库
use 数据库名;
三、熟悉创建数据库的语句
1、创建数据表
create table 表名(
列名1 数据类型 列约束/属性,
列名2 数据类型 列约束...
);
-- 创建用户信息表 有些时候在MySQL中 如果有敏感字/关键字 可以添加反引号` `来解决。注意不是单引号
create table `user`(
id int,
username varchar(20),
);
2、查看数据库中的数据表
-- 查看数据库的所有表
show tables;
-- 查看表定义/结构
desc/descrinbe 表名;
3、删除数据库
-- 删除数据库表
drop table 表名;
四、熟悉常见的数据列属性、类型
1、列属性
not null -- 不允许字段为空
unique -- 字段必须唯一
unsigned -- 无符号 无负号 不能与unique关键字同时存在
zerofill -- 以0补全某个字段类型的剩余长度 不能与unsigned同时使用
default -- 默认值
comment -- 注释
primary key -- 主键:用来唯一标识一条数据的列就是主键 它的默认效果为 非空not null且唯一unique 它还能提升查询速度
auto_increment -- 自动增长 用于主键列的值自增
2、列类型
数值:可写可不写
tinyint(短整型) [int](整数型) bigint(长整型)
[double](双精度浮点数)
字符串:字符串必须写长度
[varchar] 可变字符串 最大长度255 char不可变字符串
假设设置了varchar长度为10 char长度也为10 当真实存了1个字符 varchar占用1个 char占用10个(效率高)
text 长文本
日期类型:日期类型不能写长度
[datetime] timestamp
年月日 时分秒 年月日