MySQL学习笔记
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不能表示的值时使用"零"值。
字符串类型
mysql中char,varchar与text类型的区别和选用字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
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.****.net/u012410733/article/details/63683881
7、Mysql 连接的使用
JOIN 按照功能大致分为如下三类:
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
http://blog.****.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.htmlhttp://www.jikexueyuan.com/course/716.html
MySQL下载地址及过程
https://www.mysql.com/downloads/
MySQL安装及配置过程
http://jingyan.baidu.com/article/f79b7cb35c0f439144023e38.html
http://product.pconline.com.cn/itbk/software/rjwt/1511/7213184.html#ad=7461
连接MySQL数据库几种方式
http://jingyan.baidu.com/article/414eccf612e0c16b431f0a95.html
MySQL Workbench下载地址及过程
https://dev.mysql.com/downloads/workbench/
http://jingyan.baidu.com/article/e9fb46e1785f727521f766ad.html
MySQL Workbench怎么使用及其使用教程
http://jingyan.baidu.com/article/3f16e003c2da162591c103e4.html
使用MySQL Workbench建立数据库,建立新的表,向表中添加数据
workbench创建数据库表
退出MySQL数据库
http://blog.****.net/lyf08600231/article/details/20901079
http://jingyan.baidu.com/article/e4511cf37486c12b845eaf1c.html
Linux中安装MySQL
http://blog.****.net/u012410733/article/details/61616531