赞
踩
一、数据库简介
MySQL数据库,是开放源代码的数据库,免费。功能强大使用方便。
Structured Query Language 简称SQL,结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据。
SQL语言的组成部分:
1.DDL(Data Defination Language):数据定义语言,主要用于定义数据库、表、视图、索引和触发器等。像DROP、CREATE、ALTER等语句;
2.DML(Data Manipulation Language):主要包括对数据的增删改。INSERT插入数据、UPDATE更新数据、DELETE删除数据;
3.DQL(Data Query Language):数据检索语句,用来从表中获得数据,确定数据怎样在应用程序中给出。像SELECT查询数据;
4.DCL(Data Control Language):数据控制语言,主要用于控制用户的访问权限。像GRANT、REVOKE、COMMIT、ROLLBACK等语句。
二、MySQL语句的规范及常用命令
关键词与函数名称全部大写;数据库名称、表名称、字段名称等全部小写;SQL必须以分隔符结尾;支持折行操作,只要不把单词、标记或引号字符串分割为两部分,可以在下一行继续写;数据库名称、表名称、字段名称等尽量不使用MySQL的保留字,如果需要使用的时候需要使用反引号(``)将名称括起来
MySQL常用命令
SELECT VERSION():显示当前版本
SELECT NOW():显示当前日期
SELECT USER();显示当前用户
三、数据类型
1.整数类型
2.浮点类型
3.字符串类型
4.日期时间类型
5.二进制类型
6.如何选择合适的数据类型
1)整数类型和浮点数类型:如果要表示小数只能用浮点数类型,整数类型不能表示小数;浮点类型DOUBLE精度比FLOAT类型高,如果需要精确到10位以上,就应该选择DOUBLE类型。
2)浮点数类型和定点数类型:对于精度要求较高的时候需要使用定点数存,因为定点数内部是以字符串形式存储的。
3)CHAR类型和VARCHAR类型和TEXT类型:CHAR定长字符串,占用空间大,速度快;VARCHAR变长字符串,占用空间小,速度慢;TEXT类型是一种特殊的字符串类型。只能保存字符数据,而且不能有默认值;它们3个存储和检索数据的方式都不一样,数据检索的效率CHAR>VARCHAR>TEXT;CHAR在保存的时候,后面会用空格填充到指定的长度,在检索的时候后面的空格会去掉;VARCHAR在保存的时候,不进行填充。当值保存和检索时尾部的空格仍保留。
4)日期和时间类型:YEAR只保存年份,占用空间小;其它和日期时间有关的可以通过整型保存时间戳,方便计算。
四、MySQL存储引擎
1.存储引擎:存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎。
2.如何查看MySQL的存储引擎:查看MySQL支持的存储引擎:SHOW ENGINES;查看显示支持的存储引擎信息:SHOW VARIABLES LIKE 'have%';查看默认的存储引擎:SHOW VARIABLES LIKE 'storage_engine'。
3.MySQL常用存储引擎及特点:InnoDB存储引擎;MyISAM存储引擎;MEMORY存储引擎
4.选择合适的存储引擎
五、数据库操作(DDL,Data Defination Language)
常用命令
查看上一步操作产生的警告信息:SHOW WARNINGS;
得到当前打开的数据库名称:SELECT DATABASE()|SCHEMA();
1.创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET [=] charset_name]
注意:数据库名称在一个目录名允许的任何字符,除斜线或点等特殊字符,也不要起中文,最大长度64
2.查看当前服务器下的数据库列表
SHOW {DATABASES|SCHEMAS}
3.查看指定数据库的定义
SHOW CREATE {DATABASE|SCHEMA} db_name
4.修改指定数据库的编码方式
ALTER {DATABASE|SCHEMA} db_name [DEFAULT] CHARACTER SET [=] charset_name
5.打开指定数据库
USE db_name
6.删除指定数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name
六、数据表相关操作
1.什么是表
数据表是数据库最重要的组成部分之一,是其他对象的基础;
数据表是存储数据的数据结构;
数据表是包含了特定实体类型的数据;
数据表由行(row)和列(column)构成的二维网络;
数据表一定先有表结构,再有数据;
数据表至少有一列,可以没有行或多行;
数据表名称要求唯一,而且不要包含特殊字符。
2.如何创建数据表?
CREATE TABLE [IF NOT EXISTS] tbl_name(字段名称 字段类型 [完整性约束条件]
...)ENGINE=引擎名称 CHARSET='编码方式';
完整约束条件:PRIMARY KEY主键 ,AUTO_INCREMENT自增长 , FOREIGN KEY外键, NOT NULL非空,UNIQUE KEY唯一,DEFAULT默认值
3.如何查看数据库中的数据表及表结构?
查看数据库下的数据表 : SHOW TABLES ;
查看指定表的表结构 : DESC tbl_name ; DESCRIBE tbl_name ; SHOW COLUMNS FROM tbl_name;
4.如何修改表结构?
修改表名:ALTER TABLE tbl_name RENAME [TO|AS] new_name;RENAME TABLE tbl_name TO new_name
添加字段:ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
删除字段:ALTER TABLE tbl_name DROP 字段名称
修改字段:ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
修改字段名称:ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
添加默认值:ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值
删除默认值:ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT
添加主键:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (字段名称,...)
删除主键:ALTER TABLE tbl_name DROP PRIMARY KEY
添加唯一:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [索引名称](字段名称,...)
删除唯一:ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
修改表的存储引擎:ALTER TABLE tbl_name ENGINE=存储引擎名称
设置自增长的值:ALTER TABLE tbl_name AUTO_INCREMNET=值
七、数据的操作(DML)
1.插入数据
1)不指定具体的字段名:INSERT [INTO] tbl_name VALUES|VALUE(值...)
2)列出指定字段:INSERT [INTO] tbl_name(字段名称1,...) VALUES|VALUE(值1,...)
3)同时插入多条记录:INSERT [INTO] tbl_name[(字段名称...)] VALUES(值...),(值...)...;
4)通过SET形式插入记录:INSERT [INTO] tbl_name SET 字段名称=值,...
5)将查询结果插入到表中:INSERT [INTO] tbl_name[(字段名称,...)] SELECT 字段名称 FROM tbl_name [WHERE 条件]
2.更新数据:UPDATE tbl_name SET 字段名称=值,... [WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
3.删除数据
1)DELETE FROM tbl_name [WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
2)彻底清空数据表:TRUNCATE [TABLE] tbl_name
八、查询数据操作(DQL)
1.查询记录
SELECT select_expr [, select_expr ...]
[
FROM table_references
[WHERE 条件]
[GROUP BY {col_name | position} [ASC | DESC], ... 分组]
[HAVING 条件 对分组结果进行二次筛选]
[ORDER BY {col_name | position} [ASC | DESC], ...排序]
[LIMIT 限制显示条数]
]
2.查询表达式
每一个表达式表示想要的一列,必须至少有一列,多个列之间以逗号分隔;
*表示所有列,tbl_name.*可以表示命名表的所有列
查询表达式可以使用[AS]alias_name为其赋予别名
3.WHERE条件
4.GROUP BY查询结果分组
配合GROUP_CONCAT()得到分组详情
配合聚合函数:COUNT();MAX();MIN();AVG();SUM()
配合WITH ROLLUP记录上面所有记录的总和
5.HAVING语句
通过HAVING子句对分组结果进行二次筛选
6.ORDER BY排序
通过ORDER BY对查询结果排序
7.LIMIT限制查询结果显示条数
LIMIT 显示条数;LIMIT 偏移量,显示条数
九、MySQL连接查询
1.什么是连接查询:连接查询是将两个或两个以上的表按某个条件连接起来,从中选取需要的数据。连接查询是同时查询两个或两个以上的表时使用的。当不同的表中存在相同意义的字段时,可以通过该字段连接这几个表
2.内连接查询:JOIN|CROSS JOIN INNER JOIN;通过ON 连接条件;显示两个表中符合连接条件的记录;
3.外连接查询
左外连接 LEFT [OUTER] JOIN 显示左表的全部记录及右表符合连接条件的记录
右外连接 RIGHT [OUTER] JOIN 显示右表的全部记录以及左表符合条件的记录
4.联合查询
UNION
UNION ALL
UNION和UNION ALL 区别是UNION去掉相同记录,UNION ALL 是简单的合并到一起。
5.外键
外键是表的一个特殊字段。被参照的表是主表,外键所在字段的表为子表。设置外键的原则需要记住,就是依赖于数据库中已存在的表的主键。外键的作用是建立该表与其父表的关联关系。父表中对记录做操作时,子表中与之对应的信息也应有相应的改变。
外键的作用保持数据的一致性和完整性
可以实现一对一或一对多的关系
注意:父表和子表必须使用相同的存储引擎,而且禁止使用临时表;数据表的存储引擎只能为InnoDB;外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同;外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
外键约束的参照操作:1)CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。2)SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。3)RESTRICT:拒绝对父表的删除或更新操作。4)NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同。
十、MySQL中的子查询
1.什么是子查询:子查询是将一个查询语句嵌套在另一个查询语句中。内层查询语句的查询结果,可以作为外层查询语句提供条件。
2.引发子查询的情况:
1)使用[NOT]IN的子查询;
2)使用比较运算符的子查询 =、>、 <、>=、 <=、 <>、 !=、 <=> ;
3)使用[NOT]EXISTS的子查询;
4)使用ANY|SOME或者ALL的子查询
3.将查询结果写入到数据表
INSERT [INTO] tbl_name [(col_name,...)]
SELECT ...
4.创建数据表同时将查询结果写入到数据表
CREATE TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
select_statement
十一、MySQL中使用正则表达式查询
1.REGEXP '匹配方式'
2.常用匹配方式
十二、MySQL中的运算符
1.算数运算符
2.比较运算符
3.逻辑运算符
4.运算符的优先级
可以通过括号()改变优先级
十三、MySQL中的函数
1.数学函数
2.字符串函数
3.日期时间函数
4.条件判断函数
5.系统信息函数
6.加密函数
7.其它常用函数
十四、MySQL中的索引
1.什么是索引?
索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度
索引的优点是可以提高检索数据的速度
索引的缺点是创建和维护索引需要耗费时间
索引可以提高查询速度,会减慢写入速度
2.索引的分类?
普通索引;唯一索引;全文索引;单列索引;多列索引;空间索引;
3.如何创建索引?
1) 创建表的时候创建索引;
CREATE TABLE tbl_name(
字段名称 字段类型 [完整性约束条件],
…,
[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [索引名称](字段名称[(长度)] [ASC|DESC])
);
2)在已经存在的表上创建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称 ON 表名 {字段名称[(长度)] [ASC|DESC]}
ALTER TABLE tbl_name ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称(字段名称[(长度)] [ASC|DESC]);
4.如何删除索引?
DROP INDEX 索引名称 ON tbl_name
十五、图形化工具管理MySQL
1.PHPMyAdmin的安装及使用
phpMyAdmin 是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库
2.SQLyog的安装及使用
SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。
特点:基于C++和MySQLAPI编程;方便快捷的数据库同步与数据库结构同步工具;易用的数据库、数据表备份与还原功能;支持导入与导出XML、HTML、CSV等多种格式的数据;直接运行批量SQL脚本文件,速度极快;新版本更是增加了强大的数据迁。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。