zoukankan      html  css  js  c++  java
  • 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的存储过程以后到底在哪用到,我都不知道,简单的过了一遍。

  • 相关阅读:
    Gym102028L
    CF985G
    三元环 & 四元环计数 学习笔记
    Hall 定理 学习笔记
    CF36E
    CF1110G
    P6071
    可持久化数据结构 学习笔记
    多项式全家桶
    c++ 编译zlib
  • 原文地址:https://www.cnblogs.com/Worssmagee1002/p/6861622.html
Copyright © 2011-2022 走看看