MySQL 系列第一天

MySQL 系列第一天

这篇文章是黑马程序员 MySQL 教程的笔记,好好学习哦。

和 MySQL 数据库的交互

  • 客户端单向连接认证:连接服务器,认证身份。

MySQL 数据库属于 C/S 架构,所以开启服务器程序后,需要通过客户端连接它。MySQL 会自带一个客户端程序,可以直接输入账号和密码即可连接。

如果你是在 Windows 系统上使用 MySQL ,那么可以通过 cmd 命令打开命令行窗口,输入以下指令,同样可以连接上 MySQL 服务器程序。首先要配置 Path 环境变量,这样就可以不用输入 mysql.exe 的完整路径,操作系统也能找到这个可执行文件。

mysql -hlocalhost -p3306 -uroot -p //此时回车,紧接着输入密码再回车,就可以连接上 MySQL 服务器了。
//其中 -h 表示 MySQL 服务器程序所在主机的地址, -p 表示应用程序所使用的端口号, -u 表示用户名, -p 表示密码
  • 客户端发送 SQL 指令 show databases; //查询所有数据库
  • 服务器端接受指令,处理指令并返回结果
  • 客户端接受结果,并显示结果。
  • 客户端断开连接,释放资源,SQL 指令为 exit

全程截图如下:
MySQL 系列第一天_第1张图片

SQL 基本操作

在学习sql 指令使可以按照操作对象分为三类:数据库操作指令,数据表操作指令,数据操作指令。

  • 库操作指令

新增数据库:

create database 数据库名字 [库选项]

create database newdatabase cahrset utf8; 

执行新增操作后,MySQL 服务器程序会在它的 data 文件夹中创建一个以数据库名字命名的文件夹,文件夹内还有一个 db.opt 文件,里面保存的是库选项,内容如下:

default-character-set=utf8 //默认字符集是 utf8
default-collation=utf8_general_ci //默认校对集是 utf8_general_ci
//字符集很好理解,这里的校对集是什么呢?通常从数据库中查询数据时候,需要进行数据的比对,比如按照价格升序取出,这个校对集就是一种规定如何进行比对的规范

查询数据库:

show databases; //查询 DBMS 中所有的数据库
show databases like 'my%' //这是模糊查询的方式,如果有转义字符,不要忘了转义
show create database newdatabase; //查询创建某个数据库的 sql 语句

//此处查询后发现和自己写的 sql 语句不一样,只是因为 MySQL 在执行指令前,会先优化 sql 语句,再执行。 

更新数据库:

数据库的修改仅限于修改库选项:alter database 数据库名 charset 字符集 collate 校对集

 alter database newdatabase charset gbk
 //此指令执行后,db.opt 文件的字符集选项同时会立即更改,因为校对集依赖于字符集,所以它也会随之改变

删除数据库:

drop database newdatabase;
// 删除指令执行后,它在磁盘上的文件也会删除
  • 表操作指令

新增数据表:

create table [if not exists] 表名 (字段名字 数据类型 ,字段名字 数据类型 )[表选项] ;

create table student(
    name varchar(11),
    gender varchar(11),
    number varchar(11),
    age int
)
//数据库执行此操作后,默认会生成一个对应的表文件

查看数据表:

    show tables; //查看次数据库所有表
    show tables like 's%'; //模糊查询
    show create student; //查看表创建语句
    show columns from student //查看表结构,也就是查看表的字段名

修改数据表:

表本身可以修改,修改表名和表选项

rename table student to ne_student; //修改表名
alter table ne_student chaeset gbk; //修改表选项

项目写着就发现数据库设计的不够合理,需要更改,掌握修改字段真的很重要。
alter table ne_student add id int first;//添加 id 字段到表的第一个位置、
alter table ne_student add phone varchar(11) after age; //添加 phone 字段到 age 后面

alter table ne_student modify gender varchar(10); //修改 gender 字段的数据长度
alter table ne_student change gender sex varchar(10); //重命名 gender 为 sex

alter table ne_student drop sex; //删除 sex 字段

删除数据表

drop table student; //删除 student 单张表
drop table ne_student,ne_teacher; //删除多张表
  • 数据操作指令

插入数据:

insert into ne_student(id,name) values(1,'kk'); //这种插入操作只要字段名和值对应就可以了,并不需要全部字段都写上。

insert into ne_student values(2,'kkk','male','123'); //这种插入操作,就必须要按照表中字段的顺序,每一个字段都插入相对应的值。

查看数据:

select * from ne_student; //查看所有数据
select * from ne_student where name like 'k%'; //限制查询条件
//关于查询的操作非常多,这里只是简单展示下

更新数据:

update 表名 set 字段 = 值 [where条件];

update ne_student set id = 3 where name = 'kkk'; //将 kkk 的 id 改为 3 

删除数据:

delete form ne_student where name='kkk';//删除名字为 kkk 的这条记录
//这里之所以能够查询,是因为校对集在起作用

讲到这里,对于数据库、表、,表中字段以及数据的增删改查都已经展示完了。主要还是起到一个建立框架的作用,明确数据库中有哪些对象,针对这些对象来进行相应操作。

库选项的相关介绍

学习编程时,通常会遇到中文乱码问题。其实总结下来,就是因为编码和解码采用不同的字符集,产生了乱码。MySQL 数据库自然不能免俗啊。

通过show charsets; 可以查看 MySQL 支持的所有字符集,它默认采用的是 utf-8 编码,只要同一字符集就不会出现乱码问题。

通过show collation; 可以查看 MySQL 支持的所有校对集,有 129 种,不要惊讶,这是因为校对集是依赖于字符集的,每种字符集都有几种校对集。

校对集有三种格式:

_bin: binary 二进制比较, 取出二进制位,一位一位的比较, 区分大小写。例如,数据库会认为 aaa 不等于 Aaa;

_cs: case sensitive 大小写敏感, 区分大小写。例如,数据库会认为 aaa 不等于 Aaa;

_ci: case insensitice 大小写不敏感,不区分大小写。例如,数据库会认为 aaa 等于 Aaa;

所以,我们要根据实际情况,选择对应的校对集。

你可能感兴趣的:(数据库)