您的位置:首页 > 数据库 > MySQL

一小时教程 MySQL从安装到使用 详细步骤 完整图文示例练习教程 学习笔记

2018-03-06 20:36 1401 查看
一、写在最前面学习步骤数据库概论课程要求只需要掌握在MySQL客户端输入SQL语句进行操作即可,不包括命令行部分。所以步骤1234已经涵盖课程基础要求。安装windows和mac没有大差别。mac可以直接进行步骤2。
1.下载安装教程:http://blog.csdn.net/wtfmonking/article/details/174673992.图形界面熟悉教程(5min):https://www.jianshu.com/p/dc58a4efdd84# 创建数据表的时候可能会对collation、engine等选项感到困惑,先直接使用默认选项。Learn more(可以跳过):https://www.jianshu.com/p/a627d33bad31http://www.cnblogs.com/lina1006/archive/2011/04/29/2032894.html3.阅读正文:正文23部分(正文01可以跳过)。4.继续阅读正文剩余部分456...的笔记。同时可参照下方链接每个页面的前面部分:http://www.runoob.com/mysql/mysql-create-tables.html# 如对网站上的实例训练有疑问,可看正文的01部分。5.阅读上方链接的后面部分。


常用单词提示(R)DBMS (关系型)数据库管理系统;Database schema 数据库架构;Tables 数据表;Columns 列;Indexes 索引;Views 视图;Events 事件;Fields 字段;Engine 存储引擎(数据表类型,如InnoDB);Collation 字符集(存储格式,如utf-8);Duplicate entry 重复录入;Syntax 语法;
# 属性(Attribute):表中的一列即一个属性,通常称为字段(Field);
二、正文部分简单介绍: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] [LIKE 'pattern'] [\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、longblobLearn more:http://www.runoob.com/mysql/mysql-data-types.htmlhttp://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语句使用WH
f202
ERE 子句)SELECT column_name,column_nameFROM table_name[WHERE Clause][LIMIT N][ OFFSET M];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' and`id`='2' and`age`='3' and`class`='4';
删除数据:DELETE FROM 数据库名.数据表名 [WHERE Clause];Learn more:http://www.runoob.com/mysql/mysql-where-clause.html示例:DELETE FROM `student`.`student_table1` WHERE `name`='2' and`id`='3' and`age`='4' and`class`='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_nFROM tables [WHERE conditions]UNION [ALL | DISTINCT]SELECT expression1, expression2, ... expression_nFROM 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_nameWHERE 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 新字段名 字段类型 [FIRST[AFTER 已有字段名]];


修改字段名称、类型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 新数据表名;
笔记至此暂时结束啦,有兴趣可以再找其他教程深入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: