zoukankan      html  css  js  c++  java
  • mysql数据库知识点

    安装mysql

    地址:http://jingyan.baidu.com/article/f79b7cb35c0f439144023e38.html

    一、操作:
    1.创建数据库 create Database database_name;
    2.查看数据库 show Databases;
    选择数据库 use database_name;
    3.删除数据库 drop Database database_name;
    4.查看存储引擎 show engines;
    查看支持的存储引擎 show variables like 'hava';
    5.查看表结构 Describe table_name;
    表详细定义 show create table table_name G
    6.删除表 drop table table_name;
    7.修改表

    二、日期和时间类型:
    Date 4 curdate():2016-11-10
    Datetime 8 now():2016-11-10 11:04:20
    Timestamp 4 now():2016-11-10 11:04:20
    Time 3 time(now()):11:04:20
    Year 1 year(now()):2016


    三、操作表的约束:
    NOT NULL 约束字段的值不能为空
    DEFAULT 设置字段的默认值
    UNIQUE KEY 约束字段的值是唯一
    PRIMARY KEY 表的主键,可作为唯一标识
    AUTO_INCREMENT 字段的值为自动增加
    FOREIGN KEY 表的外键


    四、索引:提高检索表的速度,索引创建在数据库表的对象上,由表的一个字段或多个字段生成的键组成,
    这些键存储在数据(B树或哈希表)结构中,通过MySQL可以快速查找与键值相关联的字段。
    利弊:索引创建可提高查询速度,但过多创建索引会占据许多磁盘空间。

    适合创建索引情况:
    1.经常被查询的字段,即在where子句中出现的字段
    2.在分组的字段,即在Group by子句中出现的字段。
    3.在依赖关系的子表和父表之间的联合查询,即主键或外键字段。
    4.设置唯一完整性约束的字段。
    不适合创建索引:
    1.在查询中很少被使用的字段
    2.拥有很多重复值的字段。

    创建索引:1.Create Index index_deptno On t_dept (deptno)
    2.Alter TABLE t_dept
    Add Index index_deptno(deptno);
    唯一索引:Unique
    全文索引:Fulltext 创建在数据类型为Char、Varchar、Text的字段上,以便能更加快速地查询数据量较大的字符串类型的字段。
    多列索引:Create Index index_deptno On t_dept (deptno,dname);

    删除索引:Drop Index index_deptno ON table_name;

    五、MySQL新特性————视图(VIEW)
    视图是一种虚拟表。
    1.视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
    2.视图是由基本表(实表)产生的表(虚表)
    3.视图的建立和删除不影响基本表。
    4.对视图内容的更新会影响基本表。
    5.当视图来自多个基本表时,不允许添加和删除数据

    1.创建基表:

    CREATE TABLE `brs_mdm_card` (
    `card_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '卡号(系统自动生成18位卡号)',
    `user_id` varchar(255) DEFAULT NULL COMMENT '卡主系统账号',
    `user_name` varchar(20) DEFAULT NULL COMMENT '用户姓名',
    `card_amt` decimal(5,2) DEFAULT NULL COMMENT '卡内余额',
    `cert_type` char(255) DEFAULT NULL COMMENT '证件类型(1:工牌;2:身份证号码)',
    `cert_no` varchar(18) DEFAULT NULL COMMENT '证件号码',
    `cart_status` char(1) DEFAULT '1' COMMENT '卡状态(1:正常;2:挂失;3:暂停;4:注销)',
    `valid_bg_time` date DEFAULT NULL COMMENT '有效期开始日期',
    `valid_ed_time` date DEFAULT NULL COMMENT '有效期结束日期',
    `create_time` datetime DEFAULT NULL COMMENT '记录插入时间(系统后台获取)',
    `update_time` datetime DEFAULT NULL COMMENT '记录修改时间(系统后台获取)',
    `operate_org_id` int(11) DEFAULT NULL COMMENT '记录操作人机构id(系统后台获取)',
    PRIMARY KEY (`card_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础资料/借书卡资料';

    2.视图创建
    SELECT
    `m`.`book_isbn` AS `book_isbn`,
    `m`.`book_type` AS `book_type`,
    `m`.`book_name` AS `book_name`,
    `m`.`book_publish` AS `book_publish`,
    `m`.`author` AS `author`,
    `m`.`price` AS `price`,
    `m`.`book_text` AS `book_text`,
    `m`.`operate_user` AS `operate_user`,
    `m`.`operate_time` AS `operate_time`,
    `book_type`.`code_name` AS `book_type_name`
    FROM
    (
    `brs_mdm_book` `m`
    LEFT JOIN `cip_admin_codes` `book_type` ON(
    (
    (
    `m`.`book_type` = `book_type`.`code_type`
    )
    AND(
    `book_type`.`domain_id` = 'book_type'
    )
    )
    )
    )

    CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `brs_mdm_card_v` AS
    SELECT
    `m`.`card_id` AS `card_id`,
    `m`.`user_id` AS `user_id`,
    `m`.`user_name` AS `user_name`,
    `m`.`card_amt` AS `card_amt`,
    `m`.`cert_type` AS `cert_type`,
    `m`.`cert_no` AS `cert_no`,
    `m`.`cart_status` AS `cart_status`,
    `m`.`valid_bg_time` AS `valid_bg_time`,
    `m`.`valid_ed_time` AS `valid_ed_time`,
    `m`.`create_time` AS `create_time`,
    `m`.`update_time` AS `update_time`,
    `m`.`operate_org_id` AS `operate_org_id`,
    `c1`.`code_name` AS `cert_type_name`,
    `c2`.`code_name` AS `cart_status_name`
    FROM
    (
    (
    `brs_mdm_card` `m`
    LEFT JOIN `cip_admin_codes` `c1` ON(
    (
    (
    `m`.`cert_type` = `c1`.`code_type`
    )
    AND(
    `c1`.`domain_id` = 'cert_type'
    )
    )
    )
    )
    LEFT JOIN `cip_admin_codes` `c2` ON(
    (
    (
    `m`.`cart_status` = `c2`.`code_type`
    )
    AND(
    `c2`.`domain_id` = 'cart_status'
    )
    )
    )
    )

    3.创建触发器
    select * from information_schema.`TRIGGERS`

    delimiter &&
    CREATE TRIGGER tg_generate_seq_brs_mdm_card BEFORE INSERT ON brs_mdm_card FOR EACH ROW
    BEGIN
    DECLARE n INT;
    SELECT IFNULL(MAX(RIGHT(card_id,4)),0)INTO n
    FROM brs_mdm_card
    WHERE MID(card_id,1,14)=DATE_FORMAT(NOW(),'%Y%m%d%H%i%S');
    SET NEW.card_id = CONCAT(DATE_FORMAT(NOW(),'%Y%m%d%H%i%S'),RIGHT(10001+n,4));
    END&&

    4.编码表设置

    火线速递:山川在我脚下,大地在我怀中;我就是这原野山川之主,我就是这天地万物之灵

  • 相关阅读:
    什么是多线程中的上下文切换?
    什么是基本表?什么是视图?
    什么是存储过程?用什么来调用?
    随意写文件命令?怎么向屏幕输出带空格的字符串,比如” hello world”?
    NULL 是什么意思 ?
    Mock 或 Stub 有什么区别?
    什么叫视图?游标是什么?
    什么是微服务中的反应性扩展?
    什么是线程组,为什么在 Java 中不推荐使用?
    Java 中用到的线程调度算法是什么?
  • 原文地址:https://www.cnblogs.com/huoxiansudi/p/6951518.html
Copyright © 2011-2022 走看看