首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL从安装到使用

MySQL从安装到使用

作者头像
慕白
发布2018-08-03 10:18:07
5900
发布2018-08-03 10:18:07
举报

常用单词提示

(R)DBMS (关系型)数据库管理系统;

Database schema 数据库架构;Tables 数据表;

Columns 列;Indexes 索引;Views 视图;Events 事件;Fields 字段;

Engine 存储引擎(数据表类型,如InnoDB);Collation 字符集(存储格式,如utf-8);

Duplicate entry 重复录入;Syntax 语法;

简单介绍:

MySql数据库是开放源代码的关系型数据库。它可以提供的功能有:支持sql语言、子查询、存储过程、触发器、视图、索引、事务、锁、外键约束和影像复制等。

MySQL 具有一套对字符、单词以及特殊符号的使用规定,MySQL 通过执行 SQL 脚本来完成对数据库的操作,该脚本由一条或多条 MySQL语句(SQL语句 + 扩展语句)组成,保存时脚本文件后缀名一般为.sql。在控制台下,MySQL 客户端也可以对语句进行单句执行而不用保存为.sql文件(mysql 命令提示窗口)。

  • MySQL语法对大小写不敏感,但是大写更容易看出,建议使用大写。
  • 但是所有的数据库名,表名,表字段都是区分大小写的。所以使用SQL命令时需要输入正确的名称。
  • 如果一条SQL语句太长,可以通过回车键创建一个新行,SQL语句的命令结束符为分号。

0.可以跳过:从命令行中连接mysql服务器的步骤:

(使用root用户登录,拥有最高权限)

1.打开命令行,进入安装路径C:\Program Files\MySQL\MySQL Server 5.7\bin。

2.输入mysql -u root -p,回车。输入密码,回车。

3.登录成功,出现 mysql> 命令提示窗口,可以在上面执行SQL语句。

(之后和在MySQL客户端输入SQL语句是类似的)

1.可以跳过:命令行中MySQL数据库命令

注意:在安装路径C:\Program Files\MySQL\MySQL Server 5.7\bin输入以下命令(需要输密码)。

mysqladmin -u root -p create RUNOOB

创建 MySQL 数据库 RUNOOB。

mysqladmin -u root -p drop RUNOOB

删除数据库RUNOOB,执行后会出现一个提示框,来确认是否真的删除数据库。

2.牢牢记住:管理MySQL的SQL语句

以下列出了使用Mysql数据库过程中常用的命令(SQL语句):

(作为示范,数据库名可以选择world,数据表名可以选择city)

CREATE SCHEMA 数据库名;

创建 MySQL 数据库 RUNOOB。

DROP SCHEMA 数据库名;

删除数据库RUNOOB。

——————————————分割线——————————————

注意:刷新之后才可以看到Navigator列表的相应变化。

——————————————分割线——————————————

USE 数据库名;

选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

SHOW DATABASES;

列出 MySQL 数据库管理系统的数据库列表。

SHOW TABLES;

显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

SHOW COLUMNS FROM 数据表名;

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

SHOW INDEX FROM 数据表名;

显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

SHOW TABLE STATUS FROM db_name \G;

该命令将输出Mysql数据库管理系统的性能及统计信息。

  • SHOW TABLE STATUS FROM 数据库名;

显示数据库中所有表的信息。

  • SHOW TABLE STATUS FROM 数据库名 LIKE 'c%';

显示表名以c开头的表的信息。

  • SHOW TABLE STATUS FROM 数据库名 LIKE 'c%'\G;

加上 \G,查询结果按列打印。

3.了解一下:MySQL 数据类型

MySQL 有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:

数字类型

整数:tinyint、smallint、mediumint、int、bigint

浮点数:float、double、real、decimal

日期和时间

date、time、datetime、timestamp、year

字符串类型

字符串:char、varchar

文本:tinytext、text、mediumtext、longtext

二进制(可用来存储图片、音乐等):tinyblob、blob、mediumblob、longblob

Learn more:

http://www.runoob.com/mysql/mysql-data-types.html

http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html

——————————————分割线——————————————

按照最开头的5min入门链接,应该就可以创建如上的Schema(student)和Table(student_table1)并查看。

实际上之前图形界面的操作都会有对应的SQL语句显示,所以按照那个学语法应该会比较简单。

Anyway,下面就用这个Table来做演示。

——————————————分割线——————————————

4.牢牢记住:SQL语句——数据处理

插入数据:

INSERT INTO 数据表名 ( field1, field2,...fieldN )

VALUES ( value1, value2,...valueN );

示例:

INSERT INTO student_table1 (name, id, age, class )

VALUES (1, 2, 3, 4);

查询数据:(SQL SELECT语句使用WHERE 子句)

SELECT column_name,column_name

FROM table_name

WHERE Clause

LIMIT N;

Learn more:

http://www.runoob.com/mysql/mysql-select-query.html

示例:

SELECT * from student_table1 WHERE name=1;

查询数据通用句式:

SELECT field1, field2,...fieldN FROM 数据表名1, 数据表名2...

[WHERE condition1 [AND OR] condition2.....;

Learn more:

http://www.runoob.com/mysql/mysql-where-clause.html

示例:

SELECT * from student_table1 WHERE name=1;

修改数据:(SQL UPDATE语句使用WHERE 子句)

UPDATE 数据表名 SET field1=new-value1, field2=new-value2

WHERE Clause;

示例:

UPDATE student.student\_table1 SET class=NULL WHERE name='1' andid='2' andage='3' andclass='4';

删除数据:

DELETE FROM 数据库名.数据表名 WHERE Clause;

Learn more:

http://www.runoob.com/mysql/mysql-where-clause.html

示例:

DELETE FROM student.student\_table1 WHERE name='2' andid='3' andage='4' andclass='5';

不完全匹配查询数据:

SELECT field1, field2,...fieldN FROM 数据表名

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

SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。

如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。

示例:

SELECT * from student_table1 WHERE name LIKE '%1';

条件组合查询数据:

SELECT expression1, expression2, ... expression_n

FROM tables WHERE conditions

UNION ALL | DISTINCT

SELECT expression1, expression2, ... expression_n

FROM tables WHERE conditions;

UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

排序数据:(SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回)

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

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

读取表中指定数据并按指定字段字段的升序/降序排列。

Learn more:

http://www.runoob.com/mysql/mysql-order-by.html

示例:

SELECT * from student_table1 ORDER BY name ASC;

分组数据:

SELECT column_name, function(column_name) FROM table_name

WHERE column_name operator value GROUP BY column_name;

Learn more:

http://www.runoob.com/mysql/mysql-group-by-statement.html

示例:

请照着上面链接的实例做,依次运行语句即可。注意!第一段语句前加上:

CREATE SCHEMA RUNOOB;

USE RUNOOB;

多数据表查询数据:(在SELECT, UPDATE和DELETE语句中使用JOIN子句)

Learn more:

http://www.runoob.com/mysql/mysql-join.html

示例:

请照着上面链接的实例做,下载数据库并依次运行语句即可。

NULL 值处理:

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

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

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

查询条件字段为 NULL 时,命令可能无法正常工作。

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

NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。

正则表达式:

http://www.runoob.com/mysql/mysql-regexp.html

5.理解一下:MySQL的事务概念

  • 事务(transaction)是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位(保证成批的 SQL 语句要么全部执行,要么全部不执行)。
  • MySQL 事务主要用于处理操作量大,复杂度高的数据。
  • 事务的四个特性(ACID):原子性(A),一致性(C),隔离性(I),持久性(D)

事务控制语句:

BEGIN或START TRANSACTION;

显式地开启一个事务。

COMMIT;

也可以使用COMMIT WORK,不过二者是等价的。COMMIT会提交事务,并使已对数据库进行的所有修改称为永久性的。

ROLLBACK;

有可以使用ROLLBACK WORK,不过二者是等价的。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改。

SAVEPOINT identifier;

SAVEPOINT允许在事务中创建一个保存点,一个事务中可以有多个SAVEPOINT。

RELEASE SAVEPOINT identifier;

删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常。

ROLLBACK TO identifier;

把事务回滚到标记点。

SET TRANSACTION;

用来设置事务的隔离级别。InnoDB存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。

MYSQL 事务处理实现:

1、用 BEGIN, ROLLBACK, COMMIT来实现

BEGIN 开始一个事务

ROLLBACK 事务回滚

COMMIT 事务确认

2、直接用 SET 来改变 MySQL 的自动提交模式:

SET AUTOCOMMIT=0 禁止自动提交

SET AUTOCOMMIT=1 开启自动提交

Learn more:

http://www.runoob.com/mysql/mysql-transaction.html

6.牢牢记住:SQL语句——ALTER命令(数据表&字段)

删除、添加字段:

ALTER TABLE 数据表名 DROP i;

ALTER TABLE 数据表名 ADD 新字段名 字段类型 [FIRSTAFTER 已有字段名];

修改字段名称、类型

ALTER TABLE 数据表名 CHANGE 字段名 新字段名 新字段类型;

指定、修改、删除字段默认值:

ALTER TABLE 数据表名 MODIFY 字段名 字段类型 NOT NULL DEFAULT 默认值;

ALTER TABLE 数据表名 ALTER 字段名 SET DEFAULT 默认值;

ALTER TABLE 数据表名 ALTER 字段名 DROP DEFAULT;

示例:

ALTER TABLE student_table1 MODIFY id int NOT NULL DEFAULT 100;

INSERT INTO student.student\_table1 (age, class) VALUES ('1', '11');

INSERT INTO student.student\_table1 (age, class) VALUES ('1', '111');

INSERT INTO student.student\_table1 (age, class) VALUES ('1', '1111');

SELECT * FROM student.student_table1;

修改数据表类型:

ALTER TABLE 数据表名 ENGINE = 新数据表类型;

查看数据表类型可以使用 SHOW TABLE STATUS 语句。

修改数据表名:

ALTER TABLE 数据表名 RENAME TO 新数据表名;

除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://cloud.tencent.com/developer/article/1176030

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
  • 如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
  • UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
  • 读取表中指定数据并按指定字段字段的升序/降序排列。
  • 查询条件字段为 NULL 时,命令可能无法正常工作。
  • 关于 NULL 的条件比较运算比较特殊的。不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
  • NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。
  • 查看数据表类型可以使用 SHOW TABLE STATUS 语句。
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档