数据库介绍

数据库:存储数据的仓库 - 数据库管理系统(DBMS)
数据:数据类型 - 数字(整数、浮点数),字符(字符串),日期等。

数据库的种类:
1.关系型数据库 - 主要是依赖表格进行数据的保存 - 数据库中保存的都是表格。利用表格之间的字段关系进行操作。
经典代表:Oracle(通常使用在平台开发:银行项目,金融项目等等)
特点:收费贵,安全性高,稳定
mysql(当前分布式开发中最常用的数据库) - 目前已经被Oracle收购
特点:灵活,支持分布式管理
Sql Server:微软提供的,这个数据库的市场占有率17%~25%
主要是支持微软自己的产品:.net(c#)
Access:也是微软旗下的用于office软件的数据库
优点:稳定
Oracle和Mysql存储结构的区别.png
2.对象型数据库(非关系型数据库) - 不依赖表格之间的关系,将每一个数据当成是独立的对象来处理,利用面向对象思想处理的。
注意:对象型数据库也支持关系型处理。
经典代表:MogoDB - 主要是支持web前端和python等等
Nosql - 可以不使用sql语句处理
优点:方便,操作简便

mysql数据库概述

优点:

  1. 轻便,灵活
  2. 在被Oracle收购前免费,收购后商用需要收费
  3. 在分布式的支持上很默契

数据库位置图示.png分布式和集成式.png

数据库的使用:
数据库语言 - sql:是一门不健全的语言,也可以称之为命令,通过命令操作数据库。是关系型数据库的语言,所有 的数据库都支持sql,但部分的数据有方言。比如oracle数据库有自己的函数。
image.png

mysql命令

DDL语句 - 用来定义数据库对象。创建数据库、表等 - 是针对数据库和表的结构进行操作!
常用命令:show,create,alter,desc,drop,truncate

DML语句 - 数据操作语句:添加,删除,修改数据 - 是针对表中的数据进行处理!
常用命令:insert,delete,update

DQL语句 - 数据库查询语句(最常用最复杂的语句)- 数据的查询
命令:select

DCL语句 - 事务性管理的语句:管理数据库的访问权限等等 - 通常数据库管理员DBA

mysql数据库的结构:
数据库->私有库->存储数据表

DDL语句

数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。
关键字:create,alter,drop等。

  1. show databases; - 查看当前总数据库中的所有的私有库
  2. show create database 数据库; - 查看当前总数据库中的指定的私有库
  3. create database 数据库名; - 创建指定的私有数据库
  4. create database 数据库名 character set utf8;
  5. use 数据库名; - 使用当前指定的数据库
  6. select database(); - 查询当前使用的数据库(这是一个函数,不是DDL语句)
  7. show tables; - 查看当前私有库中的所有表格
  8. create table 表名(); - 创建表格
  9. desc 表名; - 查看表结构以及详情
  10. drop table 表名; - 删除表格(删除表结构)
  11. alter table 表名 add 字段 数据类型; - 修改表结构 - 添加字段
  12. 以上操作一旦使用不可回滚!

修改表结构格式

  • alter table 表名 add 列名 类型(长度) [约束];

修改表添加列

  • alter table 表名 modify 列名 类型(长度) 约束;

修改表修改列的类型长度及约束;

  • alter table 表名 drop 列名;

修改表删除列

  • alter table 表名 change 旧列名 新列名 类型(长度) 约束;

修改表修改列名

  • rename table 表名 to 新表名;

修改表名

  • alter table 表名 character set 字符集;

修改表的字符集

show tables;
desc user;
#删除表
drop table area;
#创建表
create table user(
id int primary key,
name varchar(10)
);
#修改表结构
# 添加列
alter table user add age int;
# 修改列的类型长度
alter table user modify age varchar(10);
# 修改列名
alter table user change age sex varchar(10);
# 删除列
alter table user drop sex;
# 修改表名
rename table user to user1;
rename table user1 to user;
# 修改字符集
alter table user character set utf8;

DML语句:主要是对表中数据进行操作

数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。
关键字:insert,delete,update等。

insert into 表名(字段1,字段2,...) values(值1,值2,...) - 插入数据
insert into 表名 values(值1,值2,...) - 插入数据 
update 表名 set 字段名=值,字段名=值...; - 更新指定字段
update 表名 set 字段名=值,字段名=值...where 条件;
delete from 表名 [where 条件]; - 删除记录
truncate table 表名; - 删除表所有记录(直接将auto_increment置为0,重新开始)

DQL语句

select 字段 from 表名; - 查询表中的数据

select * from 表名; - 查询表格中的所有的字段,注意:实际开发中不要使用*,要查询什么字段就写什么字段
使用*的弊端:会严重的影响查询性能(速度)
select price as 价格,pname 产品名称 from product;
select price 原价,price*0.8 折扣价 from product;
将字段重命名,as可以省略
select distinct price from product;
distinct用于去重处理

面试题:怎么提升数据库的查询效率?
回答:查询中不要使用*

约束

DOS命令窗口乱码问题解决方案

错误原因:mysql的客户端设置编码默认是utf8,而系统的cmd窗口编码是GBK。

方法一:临时方案

**SET names gbk;**

方法二:

修改安装目录下的my.ini文件,重启服务所有地方生效
**default-character-set=utf8**修改为GBK。