MySQL学习笔记3-SQL基本操作

本文最后更新于:March 10, 2019 pm

MySQL学习笔记,第3篇。主要是在实现MySQL的一些基本操作(增删改查)。


1、MySQL数据库

MySQL数据库是一种C/S结构的软件:客户端/服务端。
特点:若想访问服务器必须通过客服端(服务器一直运行,客户端在需要使用的时候运行)

1.1 交互方式

  1. 客户端连接认证:连接服务器,认证身份:mysql.exe -hPup

    1
    mysql -hlocalhost -P3306 -uroot -p

其中h是找主机的IP,这里是localhost即为本机,P是找端口,mysql对应的是3306端口,u是用户,这里是root用户,p则是使用密码

  1. 客户端发送SQL指令
  2. 服务器接受SQL指令;处理SQL指令;返回操作结果
  3. 客户端接受结果:显示结果
  4. 断开连接(释放资源:保证服务器的并发性)

2、MySQL服务器对象

因为我们没有办法完全了解服务器内部的内容,只能粗略地去分析数据库服务器内部的结构。

将MySQL服务器内部对象分为四层:

数据库管理系统(DBMS)-> 数据库(DB)-> 数据表(table)-> 字段(field)

3、SQL基本操作

基本操作:增删改查

将SQL的基本操作根据操作对象分为三类:库操作,表操作(字段),数据操作

4、数据库操作

4.1 新增数据库

4.1.1 指令

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

4.1.2数据库命名规则

  • 数据库名字不能使用关键字或者保留字
  • 如果使用关键字或者保留字,需要使用反引号把数据库名字括起来
  • 保证服务器可以识别中文的情况下可以使用中文命名数据库,但是非常不建议这样做

4.1.3 库选项

库选项:用来约束数据库,分为两个选项

  • 字符集设定:charset/character set 具体字符集(数据存储的编码格式)

  • 校对集设定:collate 具体校对集(数据比较的规则)

4.1.4 注释

双中划线+空格或者使用井号

-- 这是一个注释
# 这也是一个注释

4.1.5 报错规则

静默模式,即只会告知报错的大概位置而不会告知错误的原因。

4.1.6 创建了数据库之后发生了什么

  1. 在数据库系统中,增加了对应的数据库信息;
  2. 会在保存数据库的文件目录下新增一个对应数据库名字的文件夹;
  3. 每个数据库文件夹中都会有一个对应的db.opt文件,文件中记录库选项

▼图中为对应数据库的字符集设定和校对集设定。(校对集依赖字符集)

4.2 查看数据库

4.2.1 查看所有数据库

1
mysql> show databases;

4.2.2 查看指定部分的数据库(模糊查询)

1
show databases like 'pattern';

其中pattern是匹配模式的意思,分为两种匹配模式

%:匹配多个字符
_:匹配单个字符

查看以mydata_开头的数据库时,需要对_进行转义处理,即在前面加一个反斜杠,否则会查询错误,因为系统会认为mydata_中的_是匹配单个字符,而%是匹配多个字符,这样子的话:

1
2
3
show databases like 'mydata_%'

show databases like 'mydata%'

这两条语句的实际使用效果就是一样的了。

正确的操作应该是

1
show databases like 'mydata\_%'

4.2.3 查看创建数据库的时候使用的语句

1
show create database 数据库名;

因为SQL是一种编译型语言,所以数据库在执行SQL语句之前会对其进行优化,导致最终我们查询到的创建数据库时使用的语句和我们输入的语句并不完全一致。

4.3 更新数据库

  • 数据库名字不可以修改(修改名字不安全,牵一发而动全身)

  • 数据库的修改 仅限于库选项,即字符集和校对集(注意校对集依赖字符集)

    alter database 数据库名 [库选项]

  • charset/character set = 字符集 //注意此处可以使用=也可以不用,但是一般不用

  • collate = 校对集

一般不轻易修改库选项

4.4 删除数据库

数据库属于结构,所以使用ddl语言,即drop语句;

1
drop database 数据库名;

注意:数据库删除后极难恢复,一定要注意备份,不要轻易删库

4.4.1 数据库删除后发生了什么

  1. 在数据库内部该数据库被删除了;
  2. 数据库对应的文件夹也被递归删除了;