MySQL(DDL)

1.了解主流的数据库和数据库分类

1.1数据库概念

**数据库:**按照数据结构来组织、存储和管理数据的一种建立在计算机存储设备上的仓库
数据库的优势:
1.可以持久化存储大量的数据、方便我们进行检索
2.可以保证数据的安全和数据的一致性(事物…)
3.可以很轻松的通过数据库来提取出新的有效信息(计算平均分、统计人数)

1.2数据库的分类

RDB(Relational DateBase) 是 关系型数据库
例如:在关系型数据库中 有一张存储了数据的表格 还有一张存储了学生年级的表格
性能方面 关系型数据库受限于技术实现,所以有瓶颈 但它在安全方便比较可靠 (事物支持好)
NoSQL(Not only SQL)不仅仅是SQL 是 非关系型数据库
例如:文档型数据库 、 键值对数据库 (key value)、 图形数据库…
它这种概念正式兴起于web2.0时代 2006-2009…
性能方面 非常优异,但是它的安全方面要比较差。(事物支持不太好)
RDB(主)+NoSQL(副)

1.3主流数据库

RDB:
MySQL Oracle SQLServer PostgreSQL MariaDB SQLlite…
NoSQL:
Redis Memcached MongoDB HBase Solr ElasticSearch…

2.了解MySQL,学会安装MySQL

3.学会使用MySQL的图形界面管理工具

4.了解常用的数据库命令

4.1数据库服务器的组成

数据库是基本单位

​ 数据表是数据库的基本单位
例如:我们需要开发一个小说阅读器,它需要存储小说、分类、用户…信息。
创建一个小说阅读器的数据库:sun_reader_db
在sun_reader_db中创建小说表、分类表、用户表(二维表)

4.2 SQL介绍

SQL:(Structured Query Language )结构化查询语言,它也是一种规范、标准。
我们的关系型数据库都是采用SQL来进行操作的,不同的数据库队SQL进行了一些改造,但是类似 CRUD
DDL:数据定义语言 创建Create 删除Drop 修改Alter table…
DML:数据操作语言 CUD 增Insert 删Delete 改Update
DQL:数据查询语言 Select 查询
DCL:数据控制语言 Grant、Roll back、commit…
4.3 数据库相关操作命令

-- 创建数据库命令
create database 数据库名;
-- 删除数据库命令
drop database 数据库名;
-- 查看数据库
show databases;
-- 切换数据库  如果需要在此数据库中进行操作 必须要先切换此数据库
use 数据库名;

5.熟悉数据表操作的语句/命令

5.1 创建数据库表

create table 表名(
	列名1  数据类型(数据长度)  列约束/属性,
	列名2  数据类型  列约束.....
);
-- 创建用户信息表   有血时候在MySQL中 如果有敏感字/关键字 可以添加反引号`来解决。注意不是单引号'
create table`user`

5.2查看数据库中的数据表

-- 查看数据库的所有表show tables;-- 查看表定义/结构desc/describe 表名;

5.3删除数据库

-- 删除数据库
drop table 表名;

5.4修改数据库

-- 修改字段名
change:更改字段信息时  并且可以改名/modify  只能改字段信息
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型(属性);
-- 修改表名
ALTER TABLE 旧表名 RENAME【TO】新表名;
-- 添加字段名
ALTER TABLE 表名 ADD字段名 数据类型【属性】;
-- 删除字段名
ALTER TABLE 表名 DROP 字段名

主键和外键<面试题>

主键:能够唯一标识信息表中的一条啊数据的字段/字段组
Alter Table 表名 Add Consistent 主键名 Primary key 表名(主键字段名)

ALTER TABLE school_stu
   ADD CONSTRAINI pk_stu_stuID
   PRIMARY KEY school_stu(stuID);

外键:在一张表中的某个字段引用的数据来自另一张表的某个字段信息
主表:它的主键一般是需要被从表引用 从表:在其中拥有外键,可以引用主表的主键信息
grade 主表 student 从表
实现物理外键 通过SQL语句将外键绑定好 可以保证数据一致性

ALTER TABLE school_stu
   ADD CONSTRAINT fk_stu_grade
   FOREIGN KEY (gradeId)
   REFERENCES grade(gradeId);
   

为了能方便我们进行数据表操作 在实际项目中一般不设置物理外键,而设置逻辑外键

6.熟悉常见的数据列属性和类型

6.1列属性

-- not null 不允许字段为空
unique 字段必须唯一
unsigned 无符号 无负号 不能与unique关键字同时存在
zerofill 以0补全剩余长度 不能与 unsigned 同时使用
default 默认值
comment 注释
primary Key 主键:用来唯一标识一挑数据的列就是主键  
				 它的默认效果:非空not null 且唯一unique  还能提升查询速度
auto_increment 自动增长 用于主键列的值自增

6.2列类型

数值:长度可写可不写
	tinyint(短整形) int 整数	bigint(长整型)
	double(浮点数)
字符串:必须写长度
	varchar(可变字符串) char (不可变字符串)
	假设设置了varchar长度为10 char长度也为10 当真实存在了1个字符  varchar占用1个  char占用10个(效率高)
	text长文本
日期类型:不能写长度
	【datetime】	 timestamp
	年月日 时分秒 	年月日
	

你可能感兴趣的:(MySQL(DDL))