目录

一. 什么是数据库

1.1 连接服务器

1.2 SQL分类

1.2.1查看存储引擎

二. 库的操作(DDL)

2.1创建数据库

2.2操纵数据库

2.3修改数据库

2.4 删除数据库

三. 备份和恢复

四.表的操作(DML)

4.1创建表

4.2 查看表结构

4.3修改表

4.4删除表

五. 数据类型 

5.2 数值类型


一. 什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?


文件保存数据有以下几个缺点:
        1.文件的安全性问题
        2.文件不利于数据查询和管理
        3.文件不利于存储海量数据
        4.文件在程序中控制不方便  

        为了解决上述问题,专家们设计出更加利于管理数据的东西一一 数据库,它能更有效的管理数据。

1.1 连接服务器

输入:
mysql -h 127.0.0.1 -P 3306 -u root -p

1.2 SQL分类

一.DDL【datadefinition1anguage】数据定义语言,用来维护存储数据的结构
代表指令:create,drop,alter

二. DML【datamanipulationlanguage】数据操纵语言,用来对数据进行操作代表指令:insert,delete,update
        DML中又单独分了一个DQL,数据查询语言,代表指令:select

三. DCL【DataControlLanguage】数据控制语言,主要负责权限管理和事务
代表指令:grant,revoke,commit

MySQL的核心就是插件式存储引擎,支持多种存储引擎。


1.2.1查看存储引擎

输入
show engines;


二. 库的操作(DDL)

2.1创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification]....]


create_specification:
                [DEFAULT] CHARACTER SET charset_name
                [DEFAULT]COLLATEcollation_name

大写的表示关键字
[]是可选项
CHARACTERSET:指定数据库采用的字符集
COLLATE:指定数据库字符集的校验规则

例子:

//案例一. 创建一个使用utf字符集,并带校对规则的db3数据库。
create database db3 charset=utf8 collate utf8_general_ci;
//案例二. 创建一个数据库,校验规则使用utf8_generalci[不区分大小写]
create database testl collate utf8_general_ci;

2.2操纵数据库

//查看数据库
show databases;
//显示创建语句
show create database 数据库名;

2.3修改数据库

语法:
ALTER DATABASE db_name
[alter_spacification[,alter_spacification]...]


alter_spacification:
[DEFAULT]CHARACTERSET charset_name
[DEFAULT] COLLATEcollation_name

例子:

//将mytest数据库字符集改成gbk
mysql> alter database mytest charset=gbk;

2.4 删除数据库

//数据库删除
DROP DATABASE [IF EXISTS] db_name;

三. 备份和恢复

备份语法:
# mysqldump -P 3306- u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

还原语法:
mysql > source D:/mysql-5.7.22/mytest.sql;

如果备份的不是整个数据库,而是其中的一张表,怎么做?
#mysqldump -u root -p  数据库名表名1  表名2   >   D:/mytest.sql
同时备份多个数据库
# mysqldump   -u  root  -p  -B  数据库名1  数据库名2... >  数据库存放路径


四.表的操作(DML)

4.1创建表


语法:
CREATE TABLE table_name(
field1 datatype,
field2 datatype,
field3 datatype
)character set  字符集  collate  校验规则  engine  存储引擎;

说明:
field表示列名
datatype表示列的类型
characterset字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

例子:

create table users(
id int,
name varchar(20) comment'用户名',
password char(32) comment'密码'
birthday date  comment '生日'
) character set utf8 engine MyISAM;

不同的存储引擎,创建表的文件不一样。
users表 存储引擎是MyISAM,在数据目中有三个不同的文件,分别是:
users.frm:表结构
users.MYD:表数据
users.MYl:表索引

4.2 查看表结构

例子:

desc 表名;


4.3修改表


在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型表的存储引擎等等。这时我们就需要修改表。

ALTER TABLE tablename ADD (column datatype [DEFAULTexpr] [,column datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr] [,column datatype]...);
ALTER TABLE tablename  DROP  (column);

例子:

//在users表添加一个字段,用于保存图片路径
mysql> alter table users add assets varchar(100) comment '图片路径' after birthday;
//修改name,将其长度改成60
mysql> alter table users modify name varchar(60);
//修改表名为employee
mysql> alter table users rename to employee;

4.4删除表


语法格式:
DROP  [TEMPORARY]  TABLE  [IFEXISTS]  tbl_name [, tbl_name] .

示例:

drop table tl;

五. 数据类型 

5.2 数值类型