Mysql的学习研究
2017年5月16日11:26:17
从今天开始过一遍数据库的基础教程,加油!!!!!
看了之后对一些基础知识有了理解,加油。。。
笔记:
2017年5月16日11:35:46
mysql的基础教程
1.Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS
(Relational Database Management System:关系数据库管理系统)应用软件之一。
2.数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
3.USE 数据库名 :选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表。
SHOW TABLES: 显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
SHOW COLUMNS FROM 数据表: 显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
SHOW INDEX FROM 数据表: 显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
SHOW TABLE STATUS LIKE 数据表\G: 该命令将输出Mysql数据库管理系统的性能及统计信息。
4.MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
5.创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type);
6.创建表的例子:
create tabletutorials_tbl(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( tutorial_id )
);
7.删除MySQL数据表的通用语法:
DROP TABLE table_name ;
8.向MySQL数据表插入数据通用的 INSERT INTO SQL语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
9.在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE Clause] [OFFSET M ][LIMIT N]
10.SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....\
1.UPDATE 命令修改 MySQL 数据表数据的通用SQL语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
2.DELETE 语句从MySQL数据表中删除数据的通用语法:
DELETE FROM table_name [WHERE Clause]
3.SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
4.SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
5.MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
6.查找数据表中列是否为 NULL,必须使用IS NULL和IS NOT NULL
7.MySQL 事务主要用于处理操作量大,复杂度高的数据。
8.在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务.
9.事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
事务用来管理insert,update,delete语句
10.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、
Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1.1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性 : 有非法数据(外键约束之类),事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,
那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。
可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。
5.alter的作用
修改表名
增加列名 数据类型
设置列默认值
————————————————分割线——————————————加油!!!!!
继续学习,
2017年5月16日16:26:03
mysql基础教程已经看完,
笔记:
2017年5月16日16:26:13
1.MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
2.索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,
但这不是组合索引。组合索引,即一个索包含多个列。
3.创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
4.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。
因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。
5.MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,
当关闭连接时,Mysql会自动删除表并释放所有空间。
6.命令 描述
SELECT VERSION( ) 服务器版本信息
SELECT DATABASE( ) 当前数据库名 (或者返回空)
SELECT USER( ) 当前用户名
SHOW STATUS 服务器状态
SHOW VARIABLES 服务器配置变量
7.防止表中出现重复数据
你可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。
8.你可以设置双主键模式来设置数据的唯一性, 如果你设置了双主键,那么那个键的默认值不能为NULL。
9.所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,
最终达到欺骗服务器执行恶意的SQL命令。
明天任务:
笔记:
2017年5月31日15:16:50
1.关于MySQL的存储过程
存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0终于开始已经支持存储过程,
这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。
2.#选择数据库
USE mysql
3.#返回可用数据库列表
SHOW DATABASES
4.#返回当前数据库中可用表
SHOW TABLES
4.#返回表列
SHOW COLUMNS FROM db
5.#显示特定数据库的创建语句
SHOW CREATE DATABASE mysql
6.#显示广泛的服务器状态信息
SHOW STATUS
7.#显示授权用户的安全权限
SHOW GRANTS
8.检索不同的行用DISTINCT,只返回不同的值。
限制结果,LIMIT子句
LIMIT 5 返回不多于5行。
LIMIT 3,4 从行3开始的4行
LIMIT 4 OFFSET 3 (结果同上)【MySQL5以后支持】
ORDER BY 子句排序
DESC/ASC 指定排序方向
WHERE子句,ORDER BY位于WHERE之后。
9.时间函数:
DATE() 主要是日期
TIME() 主要是时间
NOW() 获得当前时间
数值处理函数:
ABS() 返回一个数的绝对值
COS() 返回一个角度的余弦值
EXP() 返回一个数的指数值
MOD() 返回除操作的余数
PI() 返回圆周率
RAND() 返回一个随机数
SIN() 返回一个角度的正弦
SQRT() 返回一个数的平方根
TAN() 返回一个角度的正切
聚集函数:
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和,忽略列值为NULL的行。
10.常用数据库引擎
InnoDB是一个可靠地事务处理引擎,它不支持全文本搜索。
MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快
MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。
1.#创建表
CREATE TABLE vendors
{
vend_id INT NOT NULL AUTO_INCREMENT, #自增属性
vend_name CHAR(50) NOT NULL, #不为空属性
vend_city CHAR(50) NULL, #允许为空属性
vend_age int NOT NULL DEFAULT 1, #默认值为1,不允许使用函数,只能用常亮
PRIMARY KEY (vend_id, vend_name) #联合主键,可以单个字段做主键
} ENGINE = INNODB #选择引擎,如果没有默认为MyISAM
2.更新表
ALTER TABLE tablename1
ADD filed1 CHAR(20)
ALTER TABLE tbalename2
DROP COLUMN filed1
复制
删除表
DROP TABLE tablename1
复制
重命名表
RENAME TBALE oldtablename TO newtablename
————————————————————————————————分割线————————————————
总结
mysql的存储过程以后到底在哪用到,我都不知道,简单的过了一遍。