MySQL学习笔记(3):DBMS、SQL与数据库基本操作

一、DBMS与SQL

正如之前所提到的,数据库即数据仓库,而打开这个仓库的两把钥匙,就是DBMS与SQL。

(一)DBMS

DBMS即数据库管理系统(Database Management System),是操作和管理数据库的软件,用于建立、使用和维护数据库。

用户无法直接访问数据库,对数据的所有操作,包括存储、检索、删除和处理等等,都通过DBMS来完成。

DBMS并非特指某一款软件,而是一类软件的统称,MySQL就是其中一种,其他常见的还包括MS SQL Server、Oracle、Access等等。

(二)SQL

SQL是结构化查询语言(Structured Query Language)的简称,是一种专门用来与数据库通信的计算机语言。用户通过编写SQL语句,向DBMS传达指令,从而对数据库进行各种操作。

任何一门语言的基本构成元素都是字或词,SQL也不例外,它的语句全部由描述性很强的英语单词构成,这些单词又被称为关键字。SQL语句就是由关键字+用户自定义内容按特定语法排列而成。

关键字是用于执行数据库操作的特殊词汇,又分保留关键字和非保留关键字,为避免语句产生歧义,一般禁止用于用户自定义的库名、表名、列名等。

SQL既是一种语言,也是一种标准。几乎所有的DBMS都支持SQL,但都进行了不同程度的扩展,相同的SQL语句在不同的DBMS里不一定通用。

用户通过DBMS与数据库建立连接,使用SQL传达指令,二者配合使用,缺一不可。

二、数据库基本操作

安装好MySQL数据库之后,便可使用自带的命令行实用程序对数据库进行操作,但显然目前我们对SQL语句一无所知,不知如何“开口”。

截至8.0版本,MYSQL中的关键字有675个(其中保留关键字262个),是否有必要把所有的关键字都学习一遍之后再开始操作MYSQL?答案是否定的,我们完全可以按照需求从最简单、最常用的语句学起。

(一)登录退出

在对MYSQL数据库进行操作之前,要先登录,登录的指令为:

(mysql 是登录数据库的命令;

-u 表示后面将输入用户名,本示例用户名为root;

-p 表示后面将输入密码)

随后回车、输入密码、回车,显示如下内容则登陆成功,可对MYSQL进行后续操作。

相应地,如果操作结束后要退出MYSQL,退出的指令有以下三种:

(二)查询数据库基本信息

登录到MYSQL之后,如果对当前服务器上的数据库、表和内部信息等不熟悉,可使用show关键字进行查询,如:

1、查询服务器上的所有数据库名:

2、查询指定数据库里的所有表名:

(使用use关键字指定数据库,use mysql 即使用名为mysql的数据库)

3、查询指定表里的所有列配置信息:

(使用from关键字指定表,from db即从名为db的表里查询信息)

4、查询服务器状态信息:

5、查询服务器错误信息:

6、查询服务器警告信息:

7、查询当前用户的安全权限(可使用的关键字):

8、查询创建某个数据库的MYSQL语句:

(mysql为要查询的数据库名)

9、查询创建某个表的MYSQL语句:

(mysql为要查询的表名)

本节首次使用到的保留关键字:show、databases、use、from、create、database、table。

tables、columns、status、errors、warnings、grants为非保留关键字。

(三)数据库的创建与删除

数据库里的数据存储在一个个表中,而数据库本身可以理解为一个虚拟的外壳,包裹这些表,或者可以更直观地把数据库理解为文件管理系统的一个文件夹。如果不考虑安全、权限等因素,数据库的创建、删除并不复杂,正如新建一个文件夹一样,仅仅需要一个名称。

1、数据库的创建:

(创建一个名为my_test的数据库)

2、数据库的删除:

(删除名为my_test的数据库)

本节首次使用到的保留关键字:drop。

(四)表的创建、修改与删除

1、表的创建:

不同于数据库的创建,表的创建除了需要定义表的名字之外,还需要定义表中所有列的名字和属性、表的主键、引擎类型等。其中列的属性包括:数据类型(必须)、是否允许NULL值、默认值、是否自增等等。

创建一个最简单的表,只需要表名、列名、列支持的数据类型:

(在数据库my_test中创建了名为test_table的表,该表有名为userid、username、city、address的四个列,列名后跟的int、varchar(50)为该列支持的数据类型)

而在实际应用中,往往还需要定义表或列的其他属性,包括:

◆是否允许NULL值:不允许NULL值的列,在插入或更新行时必须给出该列的值,允许NULL值的列则不强制。如未定义,则创建时默认该列允许NULL值。

◆默认值:在插入行时如果没有给出该列的值,则使用默认值。如未定义,则创建时默认该列默认值为NULL。

◆是否自增:某些情况下需要该列的值按插入的顺序自动递增,无需人工填写。

◆主键:主键用于唯一标识某行。如果主键为单列,则该列值必须唯一;如果主键为多列,则这些列的组合值必须唯一。

◆引擎类型:MYSQL内置多种引擎,不同引擎具有各自不同的功能和特性,为不同的任务选择正确的引擎能获得良好的功能和灵活性。常用引擎为InnoDB(支持事务处理、不支持全文本搜索)和MyISAM(支持全文本搜索、不支持事务处理)。

(在数据库my_test中创建了名为test_table的表,该表有名为userid、username、city、address的四个列,列名后跟的int、varchar(50)为该列支持的数据类型,null和not null表示是否允许NULL值,auto_increment表示自增,default后面为默认值)

2、表的修改:

表在创建并存储数据之后,不建议再对表的结构进行修改。通常对表的修改操作包括:新增列、删除列、重命名、定义外键(不讨论)。

2.1 在表中新增列:

(在test_table表中添加名为sex的列,数据类型为varchar(10),不允许NULL值)

2.2 在表中删除列:

2.3 重命名表:

3、表的删除:

删除操作没有确认,不能撤销,需慎重。

(删除名为test_table_2的表)

本节首次使用到的保留关键字:int、not、null、varchar、default、primary、key。

auto_increment、engine为非保留关键字。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181223G0QLVO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券