MySQL初学知识

MySQL初学知识


随着时代的不断发展,数据已经成为大数据时代重要的资源。数据库作为存放数据的仓库,可将数据按照特定的规律进行组织和存储,为了更好地掌握数据库技术,本文就介绍了MySQL学习的基础内容


一、MySQL数据库
1.1创建数据库
1.2创建表
1.3管理和修改数据库表
二、数据插入
2.1数据修改
2.2数据删除
三、数据查询
3.1单表查询
3.2多表查询

一、MySQL数据库

MySQL 安装成功后,系统会自动创建 information_schema 和 MySQL 数据库,这是系统数据库,MySQL 数据库的系统信息都存储在这两个数据库中。如果删除了这些数据库,MySQL 将不能正常工作。对于用户的数据,需要创建新的数据库来存放。

1.1创建数据库

代码如下(示例):

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] --数据库名

根据 CREATE DATABASE 的语法格式,如果不使用语句中 “[ ]” 内的可选项,“{ | }” 中的二选一选项选定为“DATABASE”,创建数据库的最简化格式如下:

CREATE DATABASE --数据库名

CREATE DATABASE Bookstore; --创建一个名为 Bookstore 的数据库

语句中 “[ ]” 内为可选选项,“{ | }” 表示二选一。MySQL 命令解释器对大小写不敏感,无论您输入的是大写还是小写,MySQL 命令解释器都视为小写,所以无论是输入“Petstore”还是“petstore”,MySQL 命令解释器中建立的都是同一个数据库。

1.2创建表

使用 CREATE TABLE 命令可以创建表。
代码如下(示例):

CREATE TABLE [IF NOT EXISTS] --表名

IF NOT EXISTS:在建表前判断,只有该表目前尚不存在时才执行 CREATE TABLE 操作。用此选项可以避免出现表已经存在而无法再新建的错误

CREATE TABLE book (  ) --创建一个名为 book 的表

1.3管理数据库表

ALTER TABLE 命令可以用于更改原有表结构。例如,可以增加或删减列、创建或取消索引、更改原有列的类型、重新命名列或表,还可以更改表的评注和表的类型。
代码如下(示例):

ALTER [IGNORE] TABLE 表名
ADD [COLUMN] 列名 [FIRST | AFTER 列名]                //添加列
| ALTER [COLUMN] 列名
		{SEL DEFAULT 默认值| DROP DEFAULT}            //修改默认值
| CHANGE [COLUMN] 旧列名 列定义                        //对列重命名
		[FIRST|AFTER 列名]
|MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名]           //修改列类型
|DROP [COLUMN] 列名                                    //删除列
|RENAME [TO] 新表名                                    //重命名该表

列定义:定义列的数据类型和属性,定义列通常是在创建表时进行的。列定义包含数据类型、可能的约束以及列名。
FIRST | AFTER 列名:表示在表头前或后添加,不指定则添加到最后
ALTER [COLUMN] 子句:修改表中指定列的默认值。
ADD [COLUMN] 子句:向表中增加新列,例如,在表 t1 中增加新的一列 a 的语句为:

ALTER TABLE t1 ADD COLUMN a TINYINT NULL;

CHANGE [COLUMN]子句:修改列的名称。重命名时,需给定旧的和新的列名称和列当前的类型。例如,将一个INTEGER列的名称从a到b的语句为:

ALTER TABLE t1 CHANGE a b INTEGER;

DROP 子句:从表中删除列成约束。
RENAME 子句:修改该表的表名。例如,将表a改名为b的语句为:

ALTER TABLE a RENAME TO b;

二、数据插入

一旦创建了数据库和表,下一步就是向表里插入数据。通过 INSERT 或 REPLACE 语句可以向表中插入一行或多行数据。语法格式如下:

INSERT [IGNORE] [INTO] 表名[(列名···)]
VALUES ({表达式 | DEFAULT},···),(···),···
| SET 列名={表达式 | DEFAULT},···

列名:需要插入数据的列名。如果要给全部列插入数据,列名可以省略。如果只给表的部分列插入数据,需要指定这些列。
表达式:可以是一个常量、变量或者一个表达式,也可以是空值 NULL,其值的数据类型要与列的数据类型一致。例如,列的数据类型为 int,插入的数据是“aaa”时就会报错,当数据为字符型和日期型时要用单引号括起来。
DEFAULT:指定为该列的默认值,前提是该列原先已经指定了默认值。如果列清单和 VALUES 清单都为空,则 INSERT 会创建一行,每个列都设置成默认值。

2.1数据修改

要修改表中的数据,可以使用 UPDATE 语句。UPDATE 可以用来修改单个表,也可以用来修改多个表。语法格式如下:

UPDATE [IGNORE] 表名
SET 列名1=表达式1 [,列名2=表达式2 ···]
[WHERE 条件]

SET 子句:根据 WHERE 子句中指定的条件对符合条件的数据进行修改。若语句中不设定 WHERE 子句,则更新所有行。
列名1、列名2···:如果要修改列值的列名,可以同时修改所在数据行的多个列值,中间用逗号隔开。
表达式1、表达式2:可以是常量、变量或表达式。

2.2数据删除

从单个表中删除行 语法格式如下:

DELETE [IGNORE] FROM 表名
[WHERE 条件]

FROM 子句:用于说明从何处删除数据,表名为要删除数据的表名。
WHERE 子句:条件中的内容为指定的删除条件。如果省略 WHERE 子句,则删除该表的所有行。

数据删除例子:将 Bookstore 数据库中 members 表中姓名为“张三”的员工的记录删除。

USE Bookstore;
DELETE FROM members
	WHERE 姓名=‘张三’;

三、数据查询

3.1单表查询

SELECT 语句定义:可以实现对表的选择、投影及连接操作。即 SELECT 语句可以根据用户的需要从一个或多个表中选出匹配的行和列,结果通常是生成一个临时表。语法格式如下:

SELECT [ALL | DISTINCT] 输出列表式,····      
	[FROM 表名1[,表名2]···]                           //FROM 子句
	[WHERE 	条件]                                      //WHERE 子句
	[GROUP BY {列名|表达式|列编号}]
		[ASC | DESC],···                              //GROUP 子句
	[HAVING 条件]                                      //HAVING 子句
	[ORDER BY {列名 | 表达式 | 列编号}]                  
		[ASC | DESC],···                               //ORDER BY 子句
	[LIMIT {[偏移量,] 行数 | 行数 OFFSET 偏移量}]        //LIMIT 子句

如果 SELECT 语句的表达式是表中的字段名变量,那么字段名之间要以逗号分隔。
其格式如下:
查询 Bookstore 数据库的 members 表中各会员的姓名、联系电话和注册时间。

USE Bookstore;
SELECT 姓名,联系电话,注册时间
	FROM members;

当在 SELECT 语句指定列的位置上使用 “ * ” 时,表示选择表的所有列,如果要显示 members 表中的所有列,不必将所有字段名一一列出,可使用以下命令:

SELECT * FROM members;

3.2多表查询

前面介绍了如何使用 SELECT 子句选择列,下面讨论 SELECT 的查询对象(即数据源)的构成形式。SELECT 的查询对象由 FROM 子句指定。
FROM 子句格式如下:

FROM 表名1[ [AS] 别名1 ] [, 表名2[ [AS] 别名2]]···       //查询表
		|JOIN 子句                                      //连接表

表名1 [ [AS] 别名1 ]:与列别名一样,可以使用 AS 子句为表指定别名。表别名主要用在相关子查询及连接查询中。如果 FROM 子句指定了表别名,则这条 SELECT 语句中的其他子句都必要使用表别名来代替原始的表名。当同一个表在 SELECT 语句中多次被提到的时候,就必须要使用表别名来加以区分。
JOIN 子句:JOIN 连接 使用 JOIN 关键字建立多表连接时,JOIN 子句中定义了如何使用 JOIN 关键字连接表。

例:从 members 表中检索出所有客户的信息,并使用表别名 Users。

SELECT * FROM members AS Users;

文章到此结束,欢迎大家留言补充!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值