MySQL基础(一) 前置安装以及DDL详解

文章目录

  • 前言
  • 一.数据库的相关概念
    • 1.1数据库定义:
    • 1.2数据库(管理系统)类型:
      • 1.2.1:关系数据库管理系统
      • 1.2.2: 非关系型数据库(NoSQL):
  • 二.MySQL数据库安装和配置
    • 2.1:MySQL下载:
    • 2.2:MySQL安装与配置:
    • 2.3:MySQL登录与退出:
    • 2.4:MySQL卸载(cmd):
  • 三.MySQL语句学习
    • 3.1:SQL简介:
    • 3.2:SQL类型:
      • 3.2.1 数据定义语言DDL
        • 3.2.1.1:show:
        • 3.2.1.2:create:
        • 3.2.1.3:use:
        • 3.2.1.4:alter:
        • 3.2.1.5:drop:
        • 3.2.1.6:truncate:
      • 3.2.2:数据操作语言 DML(Data Manipulation Language)
      • 3.2.3:数据查询语言DQL(Data Query Language)
      • 3.2.4:数据控制语言DCL(Data Control Language):
  • 拓展:
    • 1.(DDL)自增列值

前言

MySQL 具有开源免费、跨平台性、可扩展性、安全性和社区支持等优点,这些优势使得它成为当今最主流的数据库之一,如今的互联网时代我们难免会与各种数据打交道。因此,学习一些数据库相关知识也是必要的。


一.数据库的相关概念

1.1数据库定义:

数据库就是按照一定的规律将数据(文本类型的数据,图像、音乐、声音等各种数据)存储和管理数据的计算机软件系统。简言之,可以理解为存放数据的“仓库”。

1.2数据库(管理系统)类型:

数据库管理系统是用来管理数据库而设计的电脑软件系统,常被称为数据库,如mysql数据库。

1.2.1:关系数据库管理系统

全名(Relational Database Management System:RDBMS)
主要特点是采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便,具有灵活性
例如:MySQL、Microsoft SQL Server(仅支持windows下运行)、Oracle、MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)、Sybase等。

1.2.2: 非关系型数据库(NoSQL):

分类:
键值(Key-Value)存储数据库:主要用到一个有特定的键和指针指向特定数据的哈希表。
                    优点:简单、易部署.  缺点:对其中部分值进行查询或更新时效率比较低.
                    例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存储数据库: 键指向了多个列,这些列是由列家族来安排的。
         如:Cassandra, HBase, Riak.
文档型数据库:数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。 
             同第一种键值存储相类似,可
             以看作是键值数据库的升级版.允许之间 嵌套键值.
         如:CouchDB, MongoDb,SequoiaDB(国内开源)
图形(Graph)数据库:使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标
                 准的查询语言(SQL),因此进行数据库查询需要制定数据模型。
              如:Neo4J, InfoGrid, Infinite Graph。

相比之下去掉了关系数据库的关系型特性,数据之间无关系,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。增强了架构可拓展性,高性能,数据库结构简单。

二.MySQL数据库安装和配置

2.1:MySQL下载:

进入MySQL官网下载适合操作系统版本的压缩文件,然后将压缩文件解压到一个非中文的目录中。(由于路径识别的时候出现中文可能会报错)
MySQL基础(一) 前置安装以及DDL详解_第1张图片可以下载5.7.24这个版本 ,原因是各个库支持的最完善且相对于最新版本更加的稳定。

2.2:MySQL安装与配置:

方法一:MySQL具体安装方法可参见MySQL技能树,这里就不再赘述了。
方法二:通过phpstudy直接安装MySQL的,比较方便。phpstudy下载官网

2.3:MySQL登录与退出:

1.cmd命令行启动(添加环境变量后):
在命令提示符窗口中运行net start mysql,此时,我们已经成功启动MySQL服务。

net start mysql   

运行net stop mysql即可停止MySQL服务。

net stop mysql

可以通过运行mysqladmin -u root password 1234修改默认账户密码,这里的1234指默认管理员(即root账户)的密码。
mysqladmin -u root password 1234

在命令行中输入:mysql -uroot -p,按照提示输入密码 ,即登录成功。
登录命令中的参数:mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306);
退出MySQL时输入:exit或quit.
MySQL基础(一) 前置安装以及DDL详解_第2张图片 2.phpstudy启动图形化mysql界面:
MySQL基础(一) 前置安装以及DDL详解_第3张图片
输入用户名,密码,执行即可
MySQL基础(一) 前置安装以及DDL详解_第4张图片MySQL基础(一) 前置安装以及DDL详解_第5张图片也可以将mysql安装路径加入环境变量用命令行启动mysql,不过要先通过phpstudy启动mysql服务。

2.4:MySQL卸载(cmd):

第一步:运行net stop mysql
第二步:运行mysqld -remove mysql
第三步:删除MySQL目录及相关的环境变量。

三.MySQL语句学习

3.1:SQL简介:

SQL是Structured Query Language的缩写,是一种用于管理关系型数据库的语言。它可以用于创建、修改和查询数据库中的数据,以及控制数据库的访问权限和安全性。
优点:因其简单、易学、灵活、高效等
被广泛应用于企业级应用、Web应用、移动应用等领域。

3.2:SQL类型:

SQL语言包括数据定义语言(DDL)数据操作语言(DML)数据查询语言(DQL)数据控制语言(DCL) 等多种类型,每种类型都有不同的语法和用途。(sql语句结尾以分号";"结束)

3.2.1 数据定义语言DDL

全名(Data Definition Language):

用来对进行数据库对象的创建,删除和修改的,所以DDL主包括create(创建)drop(删除)alter(修改)truncate (清空)show(查询)use(使用)
其中数据库对象包含数据库(database)、表(table)、列(column)、索引(index)、约束(constraint)、视图(view)、触发器(trigger)、存储过程(StoredProcedure)和函数(function).这里仅以库,表,列进行阐述。

SQL语句中关键词(如create,database,select等单词)建议使用时候都用大写,否则可能不能正常执行

3.2.1.1:show:

查所有库名:show databases;
查某个库下所有表名:show tables;
查询表结构:desc 表名称;
拓:(select * from 表名;查询表中内容)
MySQL基础(一) 前置安装以及DDL详解_第6张图片
MySQL基础(一) 前置安装以及DDL详解_第7张图片
MySQL基础(一) 前置安装以及DDL详解_第8张图片

3.2.1.2:create:

创建数据库: create database 数据库名;
MySQL基础(一) 前置安装以及DDL详解_第9张图片

创建表:create table 表名称(
字段名1 数据类型,
字段名2 数据类型,

字段名n 数据类型 #这里是不需要加上,的
);
MySQL基础(一) 前置安装以及DDL详解_第10张图片

MySQL基础(一) 前置安装以及DDL详解_第11张图片

 补充:      
SQL创建表时可以定义多种数据类型,常见的数据类型包括:
1. 整数类型(INT、INTEGER):用于存储整数,可以指定长度和是否有符号。
2. 小数类型(DECIMAL、NUMERIC、FLOAT、DOUBLE):用于存储小数,可以指定精度和范围。
3. 字符串类型(CHAR、VARCHAR、TEXT):用于存储字符串,可以指定长度和字符集。
4. 日期时间类型(DATE、TIME、DATETIME、TIMESTAMP):用于存储日期和时间,可以指定格式和时区。
5. 布尔类型(BOOLEAN):用于存储真假值。
6. 二进制类型(BLOB、BINARY、VARBINARY):用于存储二进制数据,如图片、音频等。
需要注意的是,不同的数据库管理系统可能支持不同的数据类型,而且在定义数据类型时需要考虑数据的实际需求和存储
空间的限制。

3.2.1.3:use:

使用(进入某个数据库):use 数据库名; (分号可以不加,还是建议加上养成习惯…)
MySQL基础(一) 前置安装以及DDL详解_第12张图片

3.2.1.4:alter:

关于MySQL对于数据库的重命名:

在MySQL中,尽管有RENAME命令,但是它并不支持重命名数据库1。如果需要更改一个数据库
的名称,可以使用下列步骤进行:

1. 创建一个新的数据库,并将源数据库中的数据导入到新数据库中。
2.  删除原数据库。
下面是具体的步骤:
1.  创建一个新的数据库:

CREATE DATABASE new_database_name;

2.  将原数据库中的数据导入到新数据库中:

USE new_database_name;
SOURCE /path/to/old_database.sql;
其中,将SOURCE后的路径改为源数据库的.sql文件所在路径。

3.  删除原数据库:

DROP DATABASE old_database_name;

通过以上步骤,可以把原数据库重命名为一个新的数据库名了。注意在重命名数据库的过程中,务必要先备份数据,新数据库的名称不要与已存在的数据库重名。该方法也适用于其他关系型数据库软件。

对表操作:
修改表名:
alter table 表名 rename to 新的表名;
增加一列:
alter table 表名 add 列名 数据类型;
修改数据类型:
alter table 表名 modify 列名 新数据类型;
修改列名和数据类型:
alter table 表名 change 列名 新列名 新数据类型;
删除列:
alter table 表名 drop 列名;
MySQL基础(一) 前置安装以及DDL详解_第13张图片(修改表名时要注意命名规范,否则会报错,比如数字,下划线等的位置通常有要求)
(其他命令可以自行演示)

3.2.1.5:drop:

drop table 表名; drop database 数据库名;
删除表(判断表/数据库是否存在):
drop table if exists 表名; drop table if exists 数据库名;
MySQL基础(一) 前置安装以及DDL详解_第14张图片
MySQL基础(一) 前置安装以及DDL详解_第15张图片

3.2.1.6:truncate:

truncake 表示清空,具体表现为把一个表结构摧毁然后重构,只剩表头。

使用语法
truncate的作用是清空表或者说是截断表,只能作用于表。truncate的语法很简单,后面直接跟表名即可。
例如: truncate table     tbl_name 或者 truncate tbl_name 。执行truncate语句需要拥有表的drop权限,
从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create table 语句的组合。
为了实现高性能,它绕过了删除数据的DML方法,因此,它不能回滚。尽管truncate table与delete相似,
但它被分类为DDL语句而不是DML语句。

3.2.2:数据操作语言 DML(Data Manipulation Language)

用于对数据库中的数据进行增、删、改等操作,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁)。

3.2.3:数据查询语言DQL(Data Query Language)

用于从数据库中查询数据,包括SELECT等命令。
基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

3.2.4:数据控制语言DCL(Data Control Language):

对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权,包括GRANT、REVOKE等命令。

拓展:

1.(DDL)自增列值

创建表:create table 表名称(
字段名1 数据类型 (PRIMARY KEY AUTO_INCREMENT),
字段名2 数据类型,

字段名n 数据类型 #最后不需要逗号了
)(ENGINE INNODB);

如果在 MySQL 建表时设置了某一列为自增列,那么在插入数据时,可以不用指定该列的值,MySQL 会自动为该列生成一个唯一的自增值。例如,建立一个名为 users 的表,其中 id 列为自增列,可以按照以下方式插入数据:

INSERT INTO users (name, age) VALUES ('John', 25);

在这个例子中,我们没有指定 id 列的值,MySQL 会自动为其生成一个唯一的自增值。如果需要获取插入数据后的自增值,可以使用 LAST_INSERT_ID() 函数,例如:

INSERT INTO users (name, age) VALUES ('John', 25);
SELECT LAST_INSERT_ID();

这样可以获取到插入数据后 id 列的自增值。需要注意的是,只有在插入数据时才会生成自增值,如果直接修改该列的值,MySQL 不会自动为其生成自增值。

在 MySQL 中,自增值是由系统自动生成的,一般情况下是不能手动修改的。如果需要修改自增值的规则,
可以通过修改表结构来实现。具体来说,可以使用 `ALTER TABLE` 命令来修改自增值的起始值和步长。
例如,以下命令可以将 `users` 表的自增值起始值设置为 100,步长设置为 2:
ALTER TABLE users AUTO_INCREMENT = 100, AUTO_INCREMENT_INCREMENT = 2;

需要注意的是,修改自增值的规则可能会影响到已有数据的自增值,因此需要谨慎操作。如果需要修改已有数据的自增值,可以使用 UPDATE 命令手动修改。但是需要注意,手动修改自增值可能会导致数据不一致,因此需要谨慎操作。



  1. 虽然有些文章说可以用rename重命名,但是我试了他们的命令会报错… ↩︎

你可能感兴趣的:(MySQL,mysql,数据库,sql)