博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL学习笔记
阅读量:2386 次
发布时间:2019-05-10

本文共 5878 字,大约阅读时间需要 19 分钟。

1、Mysql是最流行的关系型数据库管理系统,RDBMS(Relational Database Management System:关系数据库管理系统

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

1.数据以表格的形式出现

2.每行为各种记录名称

3.每列为记录名称所对应的数据域

4.许多的行和列组成一张表单

5.若干的表单组成database

2、安装MySQL数据库,Navicat for MySQL,以及相关配置

连接MySQL数据库:

查看当前服务器上存在的数据库:

创建一个数据库:

选择一个数据库:

查看所选数据库中存在的表:

显示表结构:

删除数据库:

3、MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

mysql中char,varchar与text类型的区别和选用

4、MySQL 创建数据表

创建MySQL数据表需要以下信息:

表名/表字段名/定义每个表字段

语法

以下为创建MySQL数据表的SQL通用语法:

CREATE TABLE table_name (column_name column_type);

MySQL 删除数据表

MySQL中删除数据表是非常容易操作的, 但是进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。

语法

以下为删除MySQL数据表的通用语法:

DROP TABLE table_name ;

 

MySQL 插入数据

MySQL 表中使用 INSERT INTO SQL语句来插入数据。通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。

语法

以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:

INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );

如果数据是字符型,必须使用单引号或者双引号,如:"value"。

5、MySQL 查询数据

MySQL数据库使用SQL SELECT语句来查询数据。通过mysql>命令提示窗口中在数据库中查询数据。

语法

以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name

FROM table_name[WHERE Clause][OFFSET M ][LIMIT N]

 

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

SELECT 命令可以读取一条或者多条记录。

可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据

可以使用 WHERE 语句来包含任何条件。

可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

可以使用 LIMIT 属性来设定返回的记录数。

MySQL where 子句

需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。

语法

以下是SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...[WHERE condition1 [AND [OR]] condition2.....

 

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

可以在WHERE子句中指定任何条件。

可以使用AND或者OR指定一个或多个条件

WHERE子句也可以运用于SQL的 DELETE 或者 UPDATE 命令。

WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。

MySQL UPDATE 查询 

需要修改或更新MySQL中的数据,我们可以使用 SQL UPDATE 命令来操作。.

语法

以下是 UPDATE 命令修改 MySQL 数据表数据的通用SQL语法:

UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]

 

可以同时更新一个或多个字段。

可以在 WHERE 子句中指定任何条件。

可以在一个单独表中同时更新数据。

MySQL DELETE 语句

可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。

可以在mysql>命令提示符或PHP脚本中执行该命令。

语法

以下是SQL DELETE 语句从MySQL数据表中删除数据的通用语法:

DELETE FROM table_name [WHERE Clause]

如果没有指定 WHERE 子句,MySQL表中的所有记录将被删除。可以在 WHERE 子句中指定任何条件。可以在单个表中一次性删除记录。

MySQL LIKE 子句

语法

以下是SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN table_name1, table_name2...

WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

 

可以在WHERE子句中指定任何条件。可以在WHERE子句中使用LIKE子句。

可以使用LIKE子句代替等号(=)

LIKE 通常与 % 一同使用,类似于一个元字符的搜索。可以使用AND或者OR指定一个或多个条件。可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

6、MySQL 排序

语法

以下是 SQL SELECT 语句使用ORDER BY 子句将查询数据排序后再返回数据:

SELECT field1, field2,...fieldN table_name1, table_name2...

ORDER BY field1, [field2...] [ASC [DESC]]

使用任何字段来作为排序的条件,从而返回排序后的查询结果。可以设定多个字段来排序。可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。可以添加 WHERE...LIKE 子句来设置条件。

MySQL GROUP BY 语句

GROUP BY 语句根据一个或多个列对结果集进行分组。

在分组的列上我们可以使用 COUNT, SUM, AVG等函数

GROUP BY 语法

SELECT column_name, function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

使用 WITH ROLLUP

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)

 

可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:

select coalesce(a,b,c);

参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

SQL语句执行顺序:http://blog.csdn.net/u012410733/article/details/63683881

7、Mysql 连接的使用

JOIN 按照功能大致分为如下三类:

INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。

LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

http://blog.csdn.net/u012410733/article/details/63684663

MySQL NULL 值处理

MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

为了处理这种情况,MySQL提供了三大运算符:

IS NULL: 当列的值是NULL,此运算符返回true。

IS NOT NULL: 当列的值不为NULL, 运算符返回true。

<=>: 比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。

 

关于NULL的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL值。

在MySQL中,NULL值与任何其它值的比较(即使是NULL)永远返回false,即NULL = NULL 返回false。MySQL中处理NULL使用IS NULL和IS NOT NULL运算符。

在Mysql控制台使用事务来操作

1.开始一个事务

start transaction

2.做保存点

save point 保存点名称

3.操作

4.可以回滚,可以提交,没有问题,就提交,有问题就回滚。

8、MySQL ALTER命令

删除,添加或修改表字段

如下命令使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段:

mysql> ALTER TABLE testalter_tbl  DROP i;

 

如果数据表中只剩余一个字段则无法使用DROP来删除字段。

MySQL 中使用 ADD 子句来想数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型:

mysql> ALTER TABLE testalter_tbl ADD i INT;

修改字段类型及名称

如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。

例如,把字段 c 的类型从 CHAR(1) 改为 CHAR(10),可以执行以下命令:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

修改表名

如果需要修改数据表的名称,可以在 ALTER TABLE 语句中使用 RENAME 子句来实现。

尝试以下实例将数据表 testalter_tbl 重命名为 alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

9、MySQL 导出数据

MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。

使用 SELECT ... INTO OUTFILE 语句导出数据

以下实例中我们将数据表 runoob_tbl 数据导出到 /tmp/tutorials.txt 文件中:

mysql> SELECT * FROM runoob_tbl

    -> INTO OUTFILE '/tmp/tutorials.txt';

 

可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'

    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'

    -> LINES TERMINATED BY '\r\n';

MySQL 导入数据

使用 LOAD DATA 导入数据

MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

http://www.jikexueyuan.com/course/625.html

http://www.jikexueyuan.com/course/716.html

MySQL下载地址及过程

https://www.mysql.com/downloads/

MySQL安装及配置过程

连接MySQL数据库几种方式

MySQL Workbench下载地址及过程

MySQL Workbench怎么使用及其使用教程

使用MySQL Workbench建立数据库,建立新的表,向表中添加数据

workbench创建数据库表

退出MySQL数据库

http://blog.csdn.net/lyf08600231/article/details/20901079

http://jingyan.baidu.com/article/e4511cf37486c12b845eaf1c.html

Linux中安装MySQL

http://blog.csdn.net/u012410733/article/details/61616531

你可能感兴趣的文章
Linux Kernel Samba Share Local Privilege Elevation Vulnerability
查看>>
Killing the Monkey in the Middle
查看>>
Solaris 10学习笔记
查看>>
Solaris cluster和系统管理学习资料
查看>>
linux install 命令
查看>>
Deploying an Application to Weblogic using WLST
查看>>
ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
查看>>
点评Ubuntu下的文件安全删除工具
查看>>
数据可视化
查看>>
Security Ressources Sites
查看>>
mysql的比较运算
查看>>
Data Breach Report
查看>>
再探偏移注射
查看>>
DNS Security Tips
查看>>
2017 linkedin中国人才报告
查看>>
技术相关记录
查看>>
RSA 2017 USA 笔记
查看>>
信息系统审计书籍
查看>>
Invision Power Board Multiple SQL Injection Vulnerabilities
查看>>
符号执行
查看>>