文章目录
重点需要掌握
- CURD操作
- 索引
- 事务
- 视图
其他作为扩展
一、数据库基础
1. 什么是数据库
存储数据用文件就可以了,为什么要学习数据库呢?
因为文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
数据库的存储介质: - 磁盘
- 内存
为了解决文件存储缺点,专家们设计出更加有利于管理数据的东西----数据库
2. 基本使用
2.1 MySQL安装,
关于MySQL数据库安装,这里就不给出了,网上一搜就有详细步骤。
2.2 服务器,数据库,表的关系
-
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
-
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
-
数据库服务器,数据库和表的关系如下:
2.3 进入MySQL
在命令行中进入MySQL数据库
对于windows,开始菜单-> 运行–>输入cmd,即可调出命令行界面。
在命令行中进行如下命令的操作就可以进入到MySQL数据库中:mysql -h localhost -u root -p
-
-h :后面的是主机名,表示你要连接到哪台主机的数据库。
-
-u: 后面接的是用户名,MySQL默认的就是root
-
-p: 指定的是使用密码登陆数据库,如果密码为空,该参数可以省略。
-h后面写了localhost,表示要登陆到当前主机的MySQL数据库
-h参数以及localhost可以省略
mysql -u root -p
但是,如果你真的要连接到远程主机的MySQL数据库的话,需要写-h参数,加上远程的IP地址
mysql -h 202.116.97.98 -u root -p
对于本地数据库,-p后面可直接跟上密码
mysql -u root -p123456
2.4 使用案例
- 查看已有的数据库
show databases;
- 创建数据库
create database hello;
- 使用数据库
use hello;
- 创建数据表
create table student(
id int,
name varchar(32),
gender varchar(2)
);
- 表中数据的中插入
insert into student(id,name,gender)values(1,"张",'男');
insert into student(id,name,gender)values(1,"王小",'女');
insert into student(id,name,gender)values(1,"李梅",'女');
- 查询表中的数据
select * from student;
2.4 SQL分类
- DDL数据定义语言,用来维护存储数据的结构
代表指令:create,drop,alter - DML数据操纵语言,用来对数据进行操作
代表指令:insert,delete,updata - DCL数据控制语言,主要负责权限管理和事物
代表指令:grant,revoke,commit
二、库的操作
1. 创建数据库
- 创建名为db1的数据库
create database db1;
默认字符集utf-8,校验规则是:utf8_general_ci
- 创建一个使用utf字符集,并带校对规则的db3数据库。
create detabase db3 charset=utf8 collate utf8_general_ci
查看数据库支持的字符集
show charset;;
查看数据库支持的字符集校验规则
show collation;
- 不区分大小写
创建一个数据库,校验规则使用utf8_general_ci[不区分大小写]
create database test1 collate utf8_general_ci;
- 区分大小写
create database test2 collate utf8_bin;
2. 操纵数据库
2.1 查看数据库
show databases;
2.2 修改数据库
主要指修改数据库的字符集,校验规则
将mytest数据库字符集改成gbk
alter database mytest charset=gbk;
2.3 数据库的删除
drop database [IF EXISTS] db_name;
三、表的操作
获取数据库中所有表
show tables
1 . 创建表
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;
2 . 查看表结构
desc 表名;
3. 修改表
- 在student表添加两条记录
insert into student values(4,"李四",'男');
- 在student表中添加一个字段(在name后),用于保存图片路径
alter table student add assets varchar(100) comment '图片路径' after name;
查看表
select * from student;
- 修改name,将其长度改成60
alter table student modify name varchar(60);
- 删除assets列
alter table student drop assets;
- 修改表名
为classmates
alter table student rename to classmates;
to可以省掉
- 将name列修改为xingming
alter table classmates change name xingming varchar(60);
</