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.编码表设置

posted @ 2017-06-06 14:42  火线速递  阅读(222)  评论(0编辑  收藏  举报