为该属性设置暗许值

mysql 伍.壹综上可得教程,mysql伍.①

先是章Mysql简要介绍与安装

第一节 MySql简介

百度完善

其次节 MySql安装与布局

1、MySql5.一下载及安装

二、MySql数据库编码配置 UTF-八

三、MySql图形页面sqlyog下载与安装

 

第二章 Mysql数据类型简要介绍

第一节:整数类型、浮点数类型和一贯数类型

1、平头档案的次序

类型

字节数

无符号(unsigned)范围

有符号(signed)范围

TINYINT

1

0~255

-128~127

SMALLINT

2

0~65535

-32768~32767

MEDIUMINT

3

0~16777215

-8388608~8388607

INT

4

0~4294967295

-2147483648~2147483647

INTEGER

4

0~4294967295

-2147483648~2147483647

BIGINT

8

0~18446744073709551615

-9223372036854775808

~9223372036854775807

 

2、浮点数类型和永远数类型

类型

字节数

无符号(unsigned)范围

有符号(signed)范围

FLOAT

4

0,

1.175494351E-38

~-3.402523466E+38

-3.402523466E+38

~1.175494351E-38

0,

1.175494351E-38

~3.402523466E+38

DOUBLE

8

0,

2.2250738585072014E-308

~1.7976931348623157E-308

-1.7976931348623157E+308

~2.2250738585072014E-308

0,

2.2250738585072014E-308

~1.7976931348623157E+308

DECIMAL(M,D)

M+2

同DOUBLE

同DOUBLE

 

M表示:数据的总长度(不包括小数点);

D表示:小数位;

例如 decimal(5,2) 123.45

存入数据的时候,按四舍五入计算

 

第二节:日期与时间档期的顺序

类型

字节数

取值范围

零值

YEAR

1

1910~2155

0000

DATE

4

1000-01-01~9999-12-31

0000:00:00

TIME

3

-838:59:59~838:59:59

00:00:00

DATETIME

8

1000-01-01 00:00:00

~9999-12-31 23:59:59

0000:00:00 00:00:00

TIMESTAMP

4

19700101080001

~20380119111407

00000000000000

 

第三节:字符串类型

类型

说明

CHAR

固定长度字符串

VARCHAR

可变长度字符串

TEXT

大文本(TINYTEXT, TEXT, MEDIUMTEXT, LOGNTEXT)

ENUM

枚举类型(只能取一个元素)

SET

集合类型(能取多个元素)

 

第四节:2进制类型

类型

说明

BINARY(M)

字节数为M,允许长度为0~M的定长二进制字符串

VARBINARY(M)

允许长度为0~M的变长二进制字符串,字节数为值的长度加1

BIT(M)

M位二进制数据,最多255个字节

TINYBLOB

可变长二进制数据,最多255个字节

BLOB

可变长二进制数据,最多(216-1)个字节

MEDIUMBLOB

可变长二进制数据,最多(224-1)个字节

LONGBLOB

可变长二进制数据,最多(232-1)个字节

 

第三章 数据库基本操作

第一节:数据库简单介绍

数据库(database)是按照数据结构来组织、存储和管理数据的仓库;

 

第二节:彰显全部数据库

show databases;

 

第三节:创制数据库

create database 数据库名;

 

第四节:删除数据库

drop database 数据库名;

 

第伍章 数据库表基本操作

第一节:创建表

表是数据仓库储存款和储蓄数据的为主单位。3个表包涵若干个字段或记录;

语法:

create table 表名(

脾气名 数据类型 [完整性约束原则],

性格名 数据类型 [完整性约束原则]

);

 

自律原则

说明

PRIMARY KEY

标识该属性为该表的主键,能够唯壹的标识对应的记录

FOREIGN KEY

标志该属性为该表的外键,与某表的主键关联

NOT NULL

标志该属性不可能为空

UNIQUE

标志该属性的值是唯一的

AUTO_INCREMENT

标记该属性的值自动增添

DEFAULT

为该属性设置暗中同意值

 

USE db_book;

 

DROP TABLE IF EXISTS `t_book`;

DROP TABLE IF EXISTS `t_booktype`;

 

/*创建图书类别表:t_bookType*/

CREATE TABLE t_booktype (

  id INT PRIMARY KEY AUTO_INCREMENT,

  typeName VARCHAR (20)

) ;

 

/*创建图书表:t_book*/

CREATE TABLE t_book (

  id INT PRIMARY KEY AUTO_INCREMENT,

  bookName VARCHAR (50),

  author VARCHAR (50),

  price DECIMAL (6, 2),

  bookTypeId INT,

  CONSTRAINT `fk_t_book` FOREIGN KEY (`bookTypeId`) REFERENCES `t_booktype` (`id`)

) ;

 

第二节:查看表结构

USE db_book;

 

/*查看基本表结构*/

DESCRIBE t_book;

 

DESC t_booktype;

 

/*查看表详细结构*/

SHOW CREATE TABLE t_book;

 

SHOW CREATE TABLE t_booktype;

 

第三节:修改表

USE db_book;

 

/*修改表名*/

ALTER TABLE t_book2 RENAME t_book;

 

/*修改字段*/

ALTER TABLE t_book CHANGE bookName bookName2 VARCHAR(20);

 

/*在第一字段前插入一个新的字段*/

ALTER TABLE t_book ADD testField INT FIRST;

 

/*在指定字段后插入一个新的字段*/

ALTER TABLE t_book ADD testField INT AFTER author;

 

/*删除字段*/

ALTER TABLE t_book DROP testField;

 

第四节:删除表

/*删除表*/

DROP TABLE t_booktype;

 

第四章 查询数据

数量打算:

CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_book` /*!40100 DEFAULT CHARACTER SET utf8 */;

 

USE `db_book`;

 

/*Table structure for table `t_book` */

 

DROP TABLE IF EXISTS `t_book`;

 

CREATE TABLE `t_book` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `bookName` varchar(50) DEFAULT NULL,

  `author` varchar(50) DEFAULT NULL,

  `price` decimal(6,2) DEFAULT NULL,

  `bookTypeId` int(11) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `fk_t_book` (`bookTypeId`),

  CONSTRAINT `fk_t_book` FOREIGN KEY (`bookTypeId`) REFERENCES `t_booktype` (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;

 

/*Data for the table `t_book` */

 

LOCK TABLES `t_book` WRITE;

 

insert  into `t_book`(`id`,`bookName`,`author`,`price`,`bookTypeId`) values (1,’Java编程思想(第4版)’,’埃史尔、 陈昊鹏’,’84.24′,1),(2,’Spring实战(第4版) ‘,’Craig Walls’,’50.00′,1),(3,’Spring+MyBatis企业应用实战’,’疯狂软件’,’45.20′,1),(4,’Node.js实战’,’吴海星 (译者)’,’54.50′,1),(5,’React精髓’,’阿尔乔姆·费多耶夫 (Artemij Fedosejev)、 奇舞团’,’50.00′,1),(6,’Learning TypeScript中文版’,’Remo H.Jansen、 龙逸楠’,’70.30′,1),(7,’基因与细胞(全彩)’,’《科学新闻》杂志社 (Science News) ‘,’42.28′,2),(8,’物种起源 (译林人文精选)’,’达尔文 (Charles Robert Darwin)、 苗德岁’,’25.60′,2),(9,’生物心理学(第10版)’,’詹姆斯•卡拉特、 苏彦捷’,’152.04′,2),(10,’视觉之旅:神奇的化学元素(彩色典藏版)’,’西奥多•格雷 (Theodore Gray)、 尼克•曼 (Nick Mann)’,’47.40′,3),(11,’元素的盛宴(化学奇谈与日常生活) ‘,’山姆·基恩 (作者), 杨蓓 (译者), 阳曦 (译者)’,’34.10′,3),(12,’化学简史’,’J.R.柏廷顿(James Riddick Partington)、 胡作玄’,’29.90′,3),(13,’人体:人体结构、功能与疾病图解’,’帕克 (Steve Parker)、 左焕琛’,’44.53′,4),(14,’全科医学(第4版) ‘,’墨塔(John Murtagh) (作者), 梁万年 (译者)’,’210.00′,4),(15,’医学图文史:改变人类历史的7000年(彩色典藏版)’,’玛丽•道布森(Mary Dobson)’,’106.60′,4),(16,’仿生结构:结构的相似性’,’约瑟夫·利姆、 沈海晖’,’22.10′,5),(17,’仿生智能纳米材料’,’江雷等’,’110.50′,5),(18,’分子仿生’,’李峻柏、 白春礼’,’100.60′,5),(19,’物理学与生活(原书第8版)’,'(W. Thomas Griffith)、 (Juliet W.Brosing)’,’53.50′,6),(20,’物理学’,’亚里士多德、 张竹明’,’14.00′,6),(21,’\r\n物理学基础’,’David Halliday、Resnick’,’148.50′,6),(22,’数学之美(第二版) ‘,’吴军 (作者)’,’36.60′,7),(23,’迷人的数学’,’伊凡.莫斯科维奇、 佘卓桓’,’49.84′,7),(24,’牛津通识读本:数学’,’蒂莫西·高尔斯 (Gowers T.)、 刘熙’,’19.70′,7),(25,’分子系统发生学’,’黄原’,’118.50′,NULL);

 

UNLOCK TABLES;

 

/*Table structure for table `t_booktype` */

 

DROP TABLE IF EXISTS `t_booktype`;

 

CREATE TABLE `t_booktype` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `typeName` varchar(20) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

 

/*Data for the table `t_booktype` */

 

LOCK TABLES `t_booktype` WRITE;

 

insert  into `t_booktype`(`id`,`typeName`) values (1,’计算机’),(2,’生物学’),(3,’化学’),(4,’医学’),(5,’仿生学’),(6,’物理学’),(7,’数学’),(8,’哲学’);

 

UNLOCK TABLES;

 

/*Table structure for table `t_pricelevel` */

 

DROP TABLE IF EXISTS `t_pricelevel`;

 

CREATE TABLE `t_pricelevel` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `priceLevel` int(11) DEFAULT NULL,

  `price` float DEFAULT NULL,

  `desc` varchar(300) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

 

/*Data for the table `t_pricelevel` */

 

LOCK TABLES `t_pricelevel` WRITE;

 

insert  into `t_pricelevel`(`id`,`priceLevel`,`price`,`desc`) values (1,1,80,’价格较贵’),(2,2,60,’价格适中’),(3,3,40,’价格便宜’);

 

UNLOCK TABLES;

 

第一节:单表查询

一、查询全部字段

SELECT id, bookname, author, price, booktypeid FROM t_book;

SELECT * FROM t_book;

 

2、查询钦点字段

SELECT bookname, author, price FROM t_book;

 

3、where条件查询

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1;

SELECT * FROM t_book t WHERE t.`price` > 100;

 

四、带in关键字查询

SELECT * FROM t_book t WHERE t.`bookTypeId` IN (1, 3);

SELECT * FROM t_book t WHERE t.`bookTypeId` NOT IN (1, 3);

 

5、带between and的界定查询

SELECT * FROM t_book t WHERE t.`price` BETWEEN 50 AND 100;

SELECT * FROM t_book t WHERE t.`price` NOT BETWEEN 50 AND 100;

 

陆、带like的混淆查询

/*全字匹配,较少用*/

SELECT * FROM t_book t WHERE t.`bookName` LIKE ‘物理学’;

/*单个字模糊匹配*/

SELECT * FROM t_book t WHERE t.`bookName` LIKE ‘物理_’;

/*多个字模糊匹配*/

SELECT * FROM t_book t WHERE t.`bookName` LIKE ‘物理学%’;

SELECT * FROM t_book t WHERE t.`bookName` LIKE ‘%物理学%’;

 

7、空值查询

SELECT * FROM t_book t WHERE t.`author` IS NULL;

SELECT * FROM t_book t WHERE t.`author` IS NOT NULL;

 

8、带and的多规格查询

SELECT * FROM t_book t WHERE (t.`price` NOT BETWEEN 50 AND 100) AND t.`bookTypeId` = 1;

 

玖、带or的多规格查询

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1 OR t.`bookTypeId` = 7;

 

拾、distinct支重复查询

SELECT DISTINCT t.booktypeid FROM t_book t;

 

1一、对查询结果排序

SELECT * FROM t_book t ORDER BY t.`price`;

 

1贰、group by分组查询

/*与GROUP_CONCAT一起使用,会把结果拼接在一起*/

SELECT GROUP_CONCAT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

/*与COUNT一起使用,统计分组后每组成员的个数*/

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

/*与having一起使用,限制输出结果*/

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid HAVING COUNT(t.bookname) > 3;

/*WITH ROLLUP,在最后加入一个汇总行*/

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid WITH ROLLUP;

 

壹三、limit分页查询

/*查询1-5条记录*/

SELECT * FROM t_book t LIMIT 0,5;

/*查询6-10条记录*/

SELECT * FROM t_book t LIMIT 5,5;

/*查询11-15条记录*/

SELECT * FROM t_book t LIMIT 10,5;

 

第二节:使用聚合函数

1、count函数

SELECT COUNT(*) AS total FROM t_book ;

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

 

2、sun函数

SELECT SUM(t.price), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

 

3、avg函数

SELECT AVG(t.price), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

 

4、max函数

SELECT MAX(t.price), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

 

5、min函数

SELECT MIN(t.price), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

 

第三节:连接查询

连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据。

 

一、内三番五次查询

内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表。

SELECT * FROM t_book, t_booktype;

 

SELECT * FROM t_book b, t_booktype bt WHERE b.`bookTypeId` = bt.`id`;

 

SELECT b.`bookName`, b.`price`, bt.`bookTypeName` FROM t_book b, t_booktype bt WHERE b.`bookTypeId` = bt.`id`;

 

二、外接连查询

外连接可以查出某一张的所有信息

 

a) 左连接查询

可以查询出“表1”的所有记录,而“表2”中只能查询出匹配的记录

/*以左表作为全量表进行关联查询*/

SELECT b.`bookName`, b.`author`, bt.`bookTypeName` FROM t_book b LEFT JOIN t_booktype bt ON b.`bookTypeId` = bt.`id`;

 

b) 右连接查询

可以查询出“表2”的所有记录,而“表1”中只能查询出匹配的记录

/*以右表作为全量表进行关联查询*/

SELECT b.`bookName`, b.`author`, bt.`bookTypeName` FROM t_book b RIGHT JOIN t_booktype bt ON b.`bookTypeId` = bt.`id`;

 

三、多规格连接查询

SELECT b.`bookName`, b.`price`, bt.`bookTypeName` FROM t_book b, t_booktype bt WHERE b.`bookTypeId` = bt.`id` AND b.`price` > 50;

 

第四节:子查询

一、带in关键字的子查询

一个查询语句的条件可能落在另一个select语句的查询结果中

SELECT * FROM t_book t WHERE t.`bookTypeId` IN (SELECT id FROM t_booktype);

SELECT * FROM t_book t WHERE t.`bookTypeId` NOT IN (SELECT id FROM t_booktype);

 

2、带相比较运算符的子查询

子查询可以使用比较运算符

SELECT * FROM t_book t WHERE t.price >= (SELECT price FROM t_pricelevel WHERE pricelevel = 1);

 

3、带exists关键字的子查询

假如子查询查询到记录,则进行外层查询,否则,不执行外层查询

SELECT * FROM t_book t WHERE EXISTS (SELECT id FROM t_booktype);

SELECT * FROM t_book t WHERE NOT EXISTS (SELECT id FROM t_booktype);

 

四、带any关键字的子查询

Any关键字表示满足其中任一条件

SELECT * FROM t_book t WHERE t.price >= ANY(SELECT price FROM t_pricelevel);

 

伍、带all关键字的子查询

All关键字表示满足所有条件

SELECT * FROM t_book t WHERE t.price >= ALL(SELECT price FROM t_pricelevel);

 

第五节 联合查询结果

1、union

使用union关键字时,数据库系统会将所有的查询结果合并在一起,然后去除掉相同的记录。

SELECT * FROM t_book t WHERE t.`price` BETWEEN 50 AND 100

UNION

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1

 

2、union all

使用union all不会去除掉系统相同的记录,而是将所有结果合并到一起。

SELECT * FROM t_book t WHERE t.`price` BETWEEN 50 AND 100

UNION ALL

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1

 

第五章 为表和字段取别称

1、为表取别名

SELECT * FROM t_book t WHERE t.id = 1;

 

2、为字段取小名

SELECT

  t.id AS id,

  t.`bookName` AS bookName,

  t.`price` AS price

FROM

  t_book t

WHERE t.id = 1 ;

 

第六章 插入、更新和删除数据

第一节:插入数据

一、给表的兼具字段插入数据

INSERT INTO t_book

VALUES

  (

    NULL,

    ‘Effective Java中文版(第2版)’,

    ‘Joshua Bloch’,

    41.00,

    1

  ) ;

 

二、给表的内定字段插入数据

INSERT INTO t_book (bookname, author, price, booktypeid)

VALUES

  (

    ‘Java并发编程实战’,

    ‘Brian Goetz, Tim Peierls, Joshua Bloch’,

    52.42,

    1

  ) ;

 

三、同时插入多条记下

INSERT INTO t_book (bookname, author, price, booktypeid)

VALUES

  (

    ‘Java 8实战’,

    ‘厄马(Raoul-Gabriel Urma)、 弗斯科(Mario Fusco)’,

    61.62,

    1

  ),

  (

    ‘Java性能权威指南’,

    ‘奥克斯 (Scott Oaks)、 柳飞’,

    62.40,

    1

  ) ;

 

第二节:更新数据

UPDATE

  t_book t

SET

  t.`bookName` = ‘Java编程思想(第4版)’,

  t.`price` = 84.24

WHERE t.id = 1 ;

 

第三节:删除数据

DELETE

FROM

  t_book t

WHERE t.id = 1 ;

 

 

第七章 索引

第二节:索引的引进

索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;类似于图书的目录,方便快速定位,寻找指定的内容。

 

第二节:索引的得失

优点:提高查询数据的速度。

缺点:创建和维护索引的时间增加了。

 

第三节:索引实例

 

第四节:索引的归类

1、普通索引

这类索引可以创建在任何数据类型中。

 

2、唯一索引

使用unique参数可以设置,在创建唯一索引时,限制该索引的值必须是唯一的。

 

三、全文索引

使用fulltext参数可以设置,全文索引只能创建在char、varchar、text、类型的字段上。主要作用就是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引,Mysql默认引擎不支持。

 

四、单列索引

在表中可以给单个的字段创建索引,单列索引可以是普通索引,也可以是唯一索引,还可以是全文索引。

 

五、多列索引

多列索引是在表的多个字段上创建一个索引。

 

陆、空间引得

使用spatial参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率。

 

第五节:创建索引

1、创建表的时候成立索引

[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名](属性名1[(长度)][ASC|DESC])

 

/*单列索引*/

CREATE TABLE t_user (

  id INT,

  username VARCHAR (20),

  PASSWORD VARCHAR (20),

  INDEX idx_username(username)

) ;

 

/*唯一索引*/

CREATE TABLE t_user2 (

  id INT,

  username VARCHAR (20),

  PASSWORD VARCHAR (20),

  UNIQUE INDEX idx_username(username)

) ;

 

/*多列索引*/

CREATE TABLE t_user3 (

  id INT,

  username VARCHAR (20),

  PASSWORD VARCHAR (20),

  INDEX idx_username_password(username,PASSWORD)

) ;

 

二、在曾经存在的表上创立索引

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名

ON 表名 (属性名[(长度)][ASC|DESC])

 

CREATE TABLE t_user4 (

  id INT PRIMARY KEY NOT NULL,

  username VARCHAR (20),

  PASSWORD VARCHAR (20)

) ;

 

CREATE INDEX idx_username ON t_user4(username);

CREATE UNIQUE INDEX idx_username ON t_user4(username);

CREATE INDEX idx_username_password ON t_user4(username,PASSWORD);

 

三、用alter table语句来创设索引

ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX

索引名 (属性名[(长度)][ASC|DESC])

 

ALTER TABLE t_user4 ADD INDEX idx_username(username);

ALTER TABLE t_user4 ADD UNIQUE INDEX idx_username(username);

ALTER TABLE t_user4 ADD INDEX idx_username(username, PASSWORD);

 

第六节:删除索引

DROP INDEX 索引名 ON 表名;

DROP INDEX idx_username ON t_user4;

 

 

第八章 视图

第三节:视图的引进

1、视图是1种虚拟的表,是从数据库中二个要么多少个表中程导弹出来的表。

2、数据库中只存放了视图的概念,而并未有存放视图中的数据,那些多少存放在原来的表中。

3、使用视图查询数据时,数据库系统会从原先的表中抽取对应的多寡。

 

第二节:视图的职能

一、使操作简便化。

二、扩张数量的安全性。

3、进步表的逻辑独立性。

 

其三节:创制视图

CREATE [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW 视图名[(属性清单)]

AS SELECT 语句

[WITH [CASCADED|LOCAL] CHECK OPTION]]

 

ALGORITHM是可选参数,表示视图选择的算法。它包括3个选项UNDEFINED、MERGE和TEMPTABLE。其中,UNDEFINED选项表示mysql将自动选择所要使用的算法;MERGE选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;TEMPTABLE选项表示将视图的结果存入临时表,然后使用临时表执行语句;

 

“视图名”参数表示要创建的视图和名称

 

“属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与select语句中查询的属性相同;

 

SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;

 

WITH CHECK OPTION是可选参数,表示在更新视图时要保证在该视图的权限范围之内。CASCADED是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL表示更新视图时,要满足该视图本身的定义条件即可;

 

壹、在单表上成立视图

CREATE VIEW v_book AS SELECT bookname, price FROM t_book;

CREATE VIEW v_book(NAME, price) AS SELECT bookname, price FROM t_book;

 

2、在多表上创办视图

CREATE VIEW v_book (bookname, booktype) AS

SELECT

  b.bookname,

  bt.typename

FROM

  t_book b,

  t_booktype bt

WHERE b.booktypeid = bt.id;

 

第四节:查看视图

一、DESCHighlanderIBE语句查看视图基本音讯

DESCRIBE v_book;

DESC v_book;

 

二、SHOW TABLE STATUS语句查看视图基本消息

SHOW TABLE STATUS LIKE ‘v_book’;

 

三、SHOW CREATE VIEW语句查看视图详细新闻

SHOW CREATE VIEW v_book;

 

四、在views表中查阅视图详细音信

 

第五节:修改视图

壹、CREATE O大切诺基 REPLACE VIEW语句修改视图

CREATE OR REPLACE [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW 视图名[(属性清单)]

AS SELECT 语句

[WITH [CASCADED|LOCAL] CHECK OPTION]]

 

CREATE OR REPLACE VIEW v_book (bookname, price, booktype) AS

SELECT

  b.bookname,

  b.price,

  bt.typename

FROM

  t_book b,

  t_booktype bt

WHERE b.booktypeid = bt.id;

 

二、ALTE君越语句修改视图

ALTER [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW 视图名[(属性清单)]

AS SELECT 语句

[WITH [CASCADED|LOCAL] CHECK OPTION]]

 

ALTER VIEW v_book (bookname, booktype) AS

SELECT

  b.bookname,

  bt.typename

FROM

  t_book b,

  t_booktype bt

WHERE b.booktypeid = bt.id;

 

第6节:更新视图

履新视图是指通过视图来插入、更新和删除表中的多少。因为视图是贰个虚拟的表,当中未有数据。通过视图更新时,都是改造基本表来更新。更新视图时,只好更新权限限制内的数码。跨越了限制,就不可能更新。

1、插入(INSERT)

INSERT INTO v_book VALUES(NULL, ‘java’, ‘jack’, 50.00, 1);

 

2、更新(UPDATE)

UPDATE v_book SET bookname=’java good’ WHERE id=30;

 

3、删除(DELETE)

DELETE FROM v_book WHERE id=30;

 

第8节:删除视图

除去视图是指剔除数据库中已存在的视图。删除视图时,只好删除视图的概念,不会去除数据。

DROP VIEW [IF EXISTS] 视图名列表 [RESTRICT|CASCADE]

 

DROP VIEW IF EXISTS v_book;

 

第九章 触发器

率先节:触发器的引进

触发器(trigger)是由事件来触发某个操作。这些事件包括insert语句、update语句和delete语句。当数据库系统执行这此事件时,就会激活触发器执行相应的操作。

 

第二节:创造与运用触发器

一、创造唯有3个进行语句的触发器

CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件

ON 表名 FOR EACH ROW 执行语句

 

CREATE TRIGGER trig_book AFTER INSERT

ON t_book FOR EACH ROW

UPDATE

  t_bookType bt

SET

  bookNum = bookNum + 1

WHERE bt.id = new.bookTypeId ;

 

二、创建有三个实行语句的触发器

CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件

ON 表名 FOR EACH ROW

BEGIN

  执行语句列表

END

 

DELIMITER |

CREATE TRIGGER trig_book2 AFTER DELETE

ON t_book FOR EACH ROW

BEGIN

  UPDATE

    t_bookType bt

  SET

    bookNum = bookNum – 1

  WHERE bt.id = old.bookTypeId ;

  

  INSERT INTO t_log

  VALUES

    (

      NULL,

      NOW(),

      ‘在book表里删除了一条数据’

    ) ;

    

  DELETE

  FROM

    t_test

  WHERE old.bookTypeId = t_test.id ;

END |

DELIMITER ;

 

第三节:查看触发器

一、show triggers语句查看触发器音讯

SHOW TRIGGERS;

 

贰、在triggers表中查阅触发器音讯

 

第四节:删除触发器

DROP TRIGGER trig_book ;

 

第十章 mysql常用函数

第一节:日期和岁月函数

一、CUTucsonDATE():再次回到当明天子

2、CURTIME():再次来到当前光阴

三、MONTH(d):重回日期d中的月份值,范围是①~12

 

第二节:字符串函数

1、CHAR_LENGTH(s):总括字符串s的字符数

二、UPPE索罗德(s):把全数字母产生大写字母

叁、LOWEEvoque(s):把持有字母产生小写字母

 

第三节:数学函数

一、ABS(X):求相对值

贰、SQRT(X):求平方根

3、MOD(X,Y):求余

 

第四节:加密函数

一、PASSWO福睿斯D(str):一般用户的密码加密,不可逆

二、MD五(str):普通加密,不可逆

3、ENCODE(str,
pswd_str):加密函数,结果是2个二进制数,必须使用BLOB类型的字段来保存它

4、DECODE(crypt_str, pswd_str):解密函数

 

越来越多函数请到英特网下载手册

MySQL 5.壹参阅手册.柒z

 

第8一章 仓库储存进度与函数

第2节:存款和储蓄进度与函数的引进

存储过程和函数是在数据库中定义一些SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL 语句。存储过程和函数可以避免开发人员重复的编写相同的SQL 语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输;

 

第二节:创制存款和储蓄进程和函数

一、创立存款和储蓄进程

CREATE PROCEDURE sp_name([proc_parameter[,…]])

[characteristic…] routine_body

 

sp_name 参数是存储过程的名称;

proc_parameter 表示存储过程的参数列表;

characteristic 参数指定存储过程的特性;

routine_body 参数是SQL 代码的内容,可以用BEGIN…END 来标志SQL 代码的开始和结束。

proc_parameter 中的每个参数由3 部分组成。这3 部分分别是输入输出类型、参数名称和参数类型。

[ IN | OUT | INOUT ] param_name type

其中,IN 表示输入参数;OUT 表示输出参数;INOUT 表示既可以是输入,也可以是输出;param_name 参数是

存储过程的参数名称;type 参数指定存储过程的参数类型,该类型可以是MySQL 数据库的任意数据类型;

Characteristic 参数有多个取值。其取值说明如下:

LANGUAGE SQL:说明routine_body 部分是由SQL 语言的语句组成,这也是数据库系统默认的语言。

[ NOT ] DETERMINISTIC :指明存储过程的执行结果是否是确定的。DETERMINISTIC 表示结果是确定的。每

次执行存储过程时,相同的输入会得到相同的输出。NOT DETERMINISTIC 表示结果是非确定的,相同的输入

可能得到不同的输出。默认情况下,结果是非确定的。

{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } :指明子程序使用SQL 语句的限制;

CONTAINS SQL 表示子程序包含SQL 语句,但不包含读或写数据的语句;NO SQL 表示子程序中不包含SQL

语句;READS SQL DATA 表示子程序中包含读数据的语句;MODIFIES SQL DATA 表示子程序中包含写数据的

语句。默认情况下,系统会指定为CONTAINS SQL;

SQL SECURITY { DEFINER | INVOKER };指明谁有权限来执行。DEFINER 表示只有定义者自己才能够执行;

INVOKER 表示调用者可以执行。默认情况下,系统指定的权限是DEFINER。

COMMENT ‘string’ :注释信息;

示例:

DELIMITER &&

 

CREATE PROCEDURE proc_book (IN bt INT, OUT count_num INT) READS SQL DATA

BEGIN

  SELECT

    COUNT(*)

  FROM

    t_book

  WHERE booktypeid = bt ;

END &&

 

DELIMITER ;

调用:

proc_book(1, @total);

 

二、创制存款和储蓄函数

CREATE FUNCTION sp_name ( [func_parameter[,…]] )

RETURNS TYPE

[ characteristic… ] routine_body

 

sp_name 参数是存储函数的名称;

func_parameter 表示存储函数的参数列表;

RETURNS type 指定返回值的类型;

characteristic 参数指定存储过程的特性,该参数的取值与存储过程中的取值是一样的;routine_body 参数是SQL 代码的内容,可以用BEGIN…END 来标志SQL 代码的开始和结束;

func_parameter 可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下:

param_name type 其中,param_name 参数是存储函数的参数名称;type 参数指定存储函数的参数类型,

该类型可以是MySQL 数据库的任意数据类型;

示例:

DELIMITER &&

 

CREATE FUNCTION func_book (bookId INT) RETURNS VARCHAR (50)

BEGIN

  RETURN

  (SELECT

    bookname FROM t_book

  WHERE id = bookId) ;

END &&

 

DELIMITER ;

调用:

SELECT func_book(1);

 

叁、变量的施用

a) 定义变量

DECLARE var_name [,…] TYPE [ DEFAULT VALUE ]

 

b) 为变量赋值

SET var_name = expr [,var_name=expr] …

SELECT col_name[,…] INTO var_name[,…]

FROM table_name WHERE CONDITION

 

四、游标的施用

查询语句可能查询出多条记录,在存储过程和函数中使用游标来逐条读取查询结果集中的记录。游标的使用包括声明游标、打开游标、使用游标和关闭游标。游标必须声明在处理程序之前,并且声明在变量和条件之后。

 

a) 申明游标

DECLARE cursor_name CURSOR FOR select_statement ;

 

b) 展开游标

OPEN cursor_name;

 

c) 使用游标

FETCH cursor_name INTO var_name [,var_name … ];

 

d) 关闭游标

CLOSE cursor_name;

 

示例:

DELIMITER &&

 

CREATE PROCEDURE porc_user2 ()

BEGIN

  DECLARE uname,

  pwd VARCHAR (20) ;

  DECLARE cur_user CURSOR FOR

  SELECT

    username,

    PASSWORD

  FROM

    t_user2 ;

  OPEN cur_user ;

  FETCH cur_user INTO uname, pwd ;

  INSERT INTO t_user

  VALUES

    (NULL, uname, pwd) ;

  CLOSE cur_user ;

END &&

 

DELIMITER ;

调用:

CALL porc_user2();

 

五、流程序调整制的采取

存储过程和函数中可以使用流程控制来控制语句的执行。MySQL 中可以使用IF 语句、CASE 语句、LOOP语句、LEAVE 语句、ITERATE 语句、REPEAT 语句和WHILE 语句来进行流程控制。

 

a) IF语句

IF search_condition THEN statement_list

[ ELSEIF search_condition THEN statement_list ]…

[ ELSE statement_list ]

END IF

示例:

DELIMITER &&

 

CREATE PROCEDURE porc_user3 (IN bookId INT)

BEGIN

  SELECT

    COUNT(*) INTO @num

  FROM

    t_user

  WHERE id = bookId ;

  IF @num > 0

  THEN

  UPDATE

    t_user

  SET

    username = ‘java’

  WHERE id = bookId ;

  ELSE

  INSERT INTO t_user

  VALUES

    (NULL, ‘newuser’, ‘newpwd’) ;

  END IF ;

END &&

 

DELIMITER ;

 

b) CASE语句

CASE case_value

    WHEN when_value THEN statement_list

    [WHEN when_value THEN statement_list]…

    [ELSE statement_list ]

END CASE

 

c) LOOP, LEAVE语句

LOOP 语句可以使某些特定的语句重复执行,实现一个简单的循环。但是LOOP 语句本身没有停止循环

的语句,必须是遇到LEAVE 语句等才能停止循环。LOOP 语句的语法的基本形式如下:

[begin_label:]LOOP

    Statement_list

END LOOP [ end_label ]

LEAVE 语句主要用于跳出循环控制。语法形式如下:

LEAVE label

 

d) ITERATE语句

ITERATE 语句也是用来跳出循环的语句。但是,ITERATE 语句是跳出本次循环,然后直接进入下一次

循环。基本语法:

ITERATE label ;

 

e) REPEAT语句

REPEAT 语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。REPEAT 语句的基本

语法形式如下:

[ begin_label : ] REPEAT

    Statement_list

    UNTIL search_condition

END REPEAT [ end_label ]

 

f) WHILE语句

[ begin_label : ] WHILE search_condition DO

    Statement_list

END WHILE [ end_label ]

 

其三节:调用存款和储蓄进度和函数

1、调用存款和储蓄进程

CALL sp_name( [parameter[,…]] )

 

二、调用存款和储蓄函数

fun_name( [parameter[,…]] )

 

 

第四节:查看存款和储蓄过程和函数

一、SHOW STATUS语句查看存储过程和函数的图景

SHOW { PROCEDURE | FUNCTION } STATUS [ LIKE ‘pattern’ ] ;

 

二、SHOW CREATE语句查看存款和储蓄进程的函数的定义

SHOW CREATE { PROCEDURE | FUNCTION } sp_name ;

 

3、从information_schema.Routines表中查看存储进程和函数的音讯

 

第五节:修改存储进度和函数

ALTER { PROCEDURE | FUNCTION } sp_name [ characteristic … ]

characteristic :

{ CONTAINS SQL } NO SQL | READS SQL DATA | MODIFIES SQL DATA }

| SQL SECURITY { DEFINER | INVOKER }

| COMMENT  ‘string’

 

其中,sp_name 参数表示存储过程或函数的名称;

characteristic 参数指定函数的特性。

CONTAINS SQL 表示子程序包含SQL 语句,但不包含读或写数据的语句;

NO SQL 表示子程序中不包含SQL 语句;

READS SQL DATA表示子程序中包含数据的语句;

MODIFIES SQL DATA 表示子程序中包含写数据的语句。

SQL SECURITY{ DEFINER | INVODER } 指明谁有权限来执行。

DEFINER 表示只有定义者自己才能够执行;

INVODER 表示调用者可以执行。

COMMENT  ‘string’ 是注释信息。

 

第六节:删除存款和储蓄进度和函数

DROP {PROCEDURE | FUNCTION } sp_name ;

 

第8二章 数据备份与回复

先是节:数据备份

备份数据可以保证数据库的安全,数据库管理员需要定期的进行数据库备份。

1、使用mysqldump命令备份

mysqldump -u username -p dbname table1 table2 … > BackupName.sql

dbname参数表示数据库的名称。

table1和table2参数表示表的名称,没有该参数时将备份整个数据库。

BackupName.sql参数表示备份文件的名称,文件名前面可以加上一个绝对路径。通常以sql作为后缀。

 

示例:

mysqldump -u root -p db_book > D:\backup\db_book.sql

二、使用sqlyog图形工具有份

第3节:数据苏醒

一、使用mysql命令还原

mysql -u root -p [dbname] < backup.sql

dbname参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可以不指定。

指定数据库名时,表示还原该数据库下的表。

不指定数据库名时,表示还原特定的一个数据库。而备份文件中有创建数据库的语句。

 

2、使用sqlyog图形工具还原

 

5.壹无人不知教程,mysql五.一 第一章Mysql简要介绍与安装
第一节 MySql简单介绍 百度百科 第一节 MySql安装与布置 1、 MySql5.1下载及安装
贰、 MySql数据库编码…

SHOW TABLE STATUS LIKE ‘v_book’;

伍、流程调控的施用

2、外接连查询

一、创设表的时候成立索引

 

 

CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件

ON 表名 FOR EACH ROW

BEGIN

  执行语句列表

END

 

DELIMITER |

CREATE TRIGGER trig_book2 AFTER DELETE

ON t_book FOR EACH ROW

BEGIN

  UPDATE

    t_bookType bt

  SET

    bookNum = bookNum – 1

  WHERE bt.id = old.bookTypeId ;

  

  INSERT INTO t_log

  VALUES

    (

      NULL,

      NOW(),

      ‘在book表里删除了一条数据’

    ) ;

    

  DELETE

  FROM

    t_test

  WHERE old.bookTypeId = t_test.id ;

END |

DELIMITER ;

DELIMITER &&

 

CREATE PROCEDURE proc_book (IN bt INT, OUT count_num INT) READS SQL DATA

BEGIN

  SELECT

    COUNT(*)

  FROM

    t_book

  WHERE booktypeid = bt ;

END &&

 

DELIMITER ;

 

USE db_book;

 

DROP TABLE IF EXISTS `t_book`;

DROP TABLE IF EXISTS `t_booktype`;

 

/*创建图书类别表:t_bookType*/

CREATE TABLE t_booktype (

  id INT PRIMARY KEY AUTO_INCREMENT,

  typeName VARCHAR (20)

) ;

 

/*创建图书表:t_book*/

CREATE TABLE t_book (

  id INT PRIMARY KEY AUTO_INCREMENT,

  bookName VARCHAR (50),

  author VARCHAR (50),

  price DECIMAL (6, 2),

  bookTypeId INT,

  CONSTRAINT `fk_t_book` FOREIGN KEY (`bookTypeId`) REFERENCES `t_booktype` (`id`)

) ;

三、变量的行使

首先节:视图的引进

UNIQUE

3、删除(DELETE)

 

a) 定义变量

SELECT * FROM t_book t WHERE t.`bookTypeId` IN (1, 3);

SELECT * FROM t_book t WHERE t.`bookTypeId` NOT IN (1, 3);

 

多列索引是在表的多个字段上创建一个索引。

DELETE FROM v_book WHERE id=30;

2、CURTIME():重返当前时刻

mysqldump -u username -p dbname table1 table2 … > BackupName.sql

dbname参数表示数据库的名称。

table1和table2参数表示表的名称,没有该参数时将备份整个数据库。

BackupName.sql参数表示备份文件的名称,文件名前面可以加上一个绝对路径。通常以sql作为后缀。

 

示例:

mysqldump -u root -p db_book > D:\backup\db_book.sql

三、使用视图查询数据时,数据库系统会从原本的表中收取对应的数额。

类型

字节数

无符号(unsigned)范围

有符号(signed)范围

FLOAT

4

0,

1.175494351E-38

~-3.402523466E+38

-3.402523466E+38

~1.175494351E-38

0,

1.175494351E-38

~3.402523466E+38

DOUBLE

8

0,

2.2250738585072014E-308

~1.7976931348623157E-308

-1.7976931348623157E+308

~2.2250738585072014E-308

0,

2.2250738585072014E-308

~1.7976931348623157E+308

DECIMAL(M,D)

M+2

同DOUBLE

同DOUBLE

 

1、CREATE
OPRADO REPLACE VIEW语句修改视图

首先节:存款和储蓄进程与函数的引进

 

1、union

DROP VIEW [IF EXISTS] 视图名列表 [RESTRICT|CASCADE]

 

DROP VIEW IF EXISTS v_book;

SELECT id, bookname, author, price, booktypeid FROM t_book;

SELECT * FROM t_book;

第伍章
数据库表基本操作

二、SHOW
TABLE STATUS语句查看视图基本新闻

 

三、全文索引

二、创制存款和储蓄函数

拾、distinct支重复查询

类型

字节数

无符号(unsigned)范围

有符号(signed)范围

TINYINT

1

0~255

-128~127

SMALLINT

2

0~65535

-32768~32767

MEDIUMINT

3

0~16777215

-8388608~8388607

INT

4

0~4294967295

-2147483648~2147483647

INTEGER

4

0~4294967295

-2147483648~2147483647

BIGINT

8

0~18446744073709551615

-9223372036854775808

~9223372036854775807

第四节:子查询

先是节:数据备份

SELECT COUNT(*) AS total FROM t_book ;

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

第四节:删除表

 

ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX

索引名 (属性名[(长度)][ASC|DESC])

 

ALTER TABLE t_user4 ADD INDEX idx_username(username);

ALTER TABLE t_user4 ADD UNIQUE INDEX idx_username(username);

ALTER TABLE t_user4 ADD INDEX idx_username(username, PASSWORD);

3、带exists关键字的子查询

标志该属性的值自动扩张

 

REPEAT 语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。REPEAT 语句的基本

语法形式如下:

[ begin_label : ] REPEAT

    Statement_list

    UNTIL search_condition

END REPEAT [ end_label ]

第陆节:查看存款和储蓄进程和函数

 

备份数据可以保证数据库的安全,数据库管理员需要定期的进行数据库备份。

内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表。

SELECT * FROM t_book, t_booktype;

 

SELECT * FROM t_book b, t_booktype bt WHERE b.`bookTypeId` = bt.`id`;

 

SELECT b.`bookName`, b.`price`, bt.`bookTypeName` FROM t_book b, t_booktype bt WHERE b.`bookTypeId` = bt.`id`;

DECLARE var_name [,…] TYPE [ DEFAULT VALUE ]

3、从information_schema.Routines表中查看存款和储蓄进度和函数的音讯

3、ENCODE(str,
pswd_str):加密函数,结果是1个2进制数,必须运用BLOB类型的字段来保存它

第三节:数学函数

优点:提高查询数据的速度。

缺点:创建和维护索引的时间增加了。

叁、同时插入多条记下

标记该属性为该表的主键,能够唯一的标记对应的笔录

先是章Mysql简单介绍与安装

INSERT INTO t_book (bookname, author, price, booktypeid)

VALUES

  (

    ‘Java并发编程实战’,

    ‘Brian Goetz, Tim Peierls, Joshua Bloch’,

    52.42,

    1

  ) ;

第五节 集结查询结果

 

 

2、给表的钦点字段插入数据

第四节:2进制类型

c) LOOP,
LEAVE语句

 

 

调用:

5、带all关键字的子查询

SELECT * FROM t_book t WHERE t.`author` IS NULL;

SELECT * FROM t_book t WHERE t.`author` IS NOT NULL;

第五节:修改存款和储蓄进度和函数

第二节:日期与时间档案的次序

 

除去视图是指剔除数据库中已存在的视图。删除视图时,只可以删除视图的概念,不会删除数据。

6、带like的歪曲查询

第4节:更新视图

 

CREATE OR REPLACE [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW 视图名[(属性清单)]

AS SELECT 语句

[WITH [CASCADED|LOCAL] CHECK OPTION]]

 

CREATE OR REPLACE VIEW v_book (bookname, price, booktype) AS

SELECT

  b.bookname,

  b.price,

  bt.typename

FROM

  t_book b,

  t_booktype bt

WHERE b.booktypeid = bt.id;

第一节 MySql简介

说明

 

第三节:连接查询

 

 

a) 左连接查询

 

 

 

3、avg函数

All关键字表示满足所有条件

SELECT * FROM t_book t WHERE t.price >= ALL(SELECT price FROM t_pricelevel);

SELECT DISTINCT t.booktypeid FROM t_book t;

mysql -u root -p [dbname] < backup.sql

dbname参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可以不指定。

指定数据库名时,表示还原该数据库下的表。

不指定数据库名时,表示还原特定的一个数据库。而备份文件中有创建数据库的语句。

12、group
by分组查询

5、带between
and的限制查询

ITERATE 语句也是用来跳出循环的语句。但是,ITERATE 语句是跳出本次循环,然后直接进入下一次

循环。基本语法:

ITERATE label ;

CALL sp_name( [parameter[,…]] )

Any关键字表示满足其中任一条件

SELECT * FROM t_book t WHERE t.price >= ANY(SELECT price FROM t_pricelevel);

proc_book(1, @total);

1、给表的有所字段插入数据

3、SHOW
CREATE VIEW语句查看视图详细音讯

b) 展开游标

FETCH cursor_name INTO var_name [,var_name … ];

LOOP 语句可以使某些特定的语句重复执行,实现一个简单的循环。但是LOOP 语句本身没有停止循环

的语句,必须是遇到LEAVE 语句等才能停止循环。LOOP 语句的语法的基本形式如下:

[begin_label:]LOOP

    Statement_list

END LOOP [ end_label ]

LEAVE 语句主要用于跳出循环控制。语法形式如下:

LEAVE label

肆、带any关键字的子查询

其次节:数据恢复生机

SELECT func_book(1);

 

 

 

 

第一节:数据库简要介绍

 

11、对查询结果排序

语法:

INSERT INTO v_book VALUES(NULL, ‘java’, ‘jack’, 50.00, 1);

);

SHOW CREATE VIEW v_book;

SHOW { PROCEDURE | FUNCTION } STATUS [ LIKE ‘pattern’ ] ;

create
table 表名(

SET var_name = expr [,var_name=expr] …

SELECT col_name[,…] INTO var_name[,…]

FROM table_name WHERE CONDITION

第一节:插入数据

 

 

连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据。

 

第八章 视图

 

 

 

玖、带or的多规格查询

1、调用存款和储蓄进度

MySQL
5.1参照手册.柒z

第二节:创建与运用触发器

一、查询全体字段

第六节:删除存款和储蓄进程和函数

SELECT * FROM t_book t WHERE t.`price` BETWEEN 50 AND 100;

SELECT * FROM t_book t WHERE t.`price` NOT BETWEEN 50 AND 100;

使用spatial参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率。

/*删除表*/

DROP TABLE t_booktype;

M表示:数据的总长度(不包括小数点);

D表示:小数位;

例如 decimal(5,2) 123.45

存入数据的时候,按四舍五入计算

 

使用union all不会去除掉系统相同的记录,而是将所有结果合并到一起。

SELECT * FROM t_book t WHERE t.`price` BETWEEN 50 AND 100

UNION ALL

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1

fun_name( [parameter[,…]] )

 

 

 

2、更新(UPDATE)

2、MySql数据库编码配置
UTF-八

第三节:查看触发器

第七章 索引

示例:

第三节:修改表

SELECT

  t.id AS id,

  t.`bookName` AS bookName,

  t.`price` AS price

FROM

  t_book t

WHERE t.id = 1 ;

 

类型

说明

CHAR

固定长度字符串

VARCHAR

可变长度字符串

TEXT

大文本(TINYTEXT, TEXT, MEDIUMTEXT, LOGNTEXT)

ENUM

枚举类型(只能取一个元素)

SET

集合类型(能取多个元素)

 

存储过程和函数是在数据库中定义一些SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL 语句。存储过程和函数可以避免开发人员重复的编写相同的SQL 语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输;

SELECT * FROM t_book t WHERE (t.`price` NOT BETWEEN 50 AND 100) AND t.`bookTypeId` = 1;

 

1、ABS(X):求相对值

 

OPEN cursor_name;

 

一三、limit分页查询

SHOW TRIGGERS;

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名

ON 表名 (属性名[(长度)][ASC|DESC])

 

CREATE TABLE t_user4 (

  id INT PRIMARY KEY NOT NULL,

  username VARCHAR (20),

  PASSWORD VARCHAR (20)

) ;

 

CREATE INDEX idx_username ON t_user4(username);

CREATE UNIQUE INDEX idx_username ON t_user4(username);

CREATE INDEX idx_username_password ON t_user4(username,PASSWORD);

1、插入(INSERT)

第二节:呈现全体数据库

首先节:触发器的引进

 

 

八、带and的多规格查询

二、增添数量的安全性。

二、查询钦点字段

使用union关键字时,数据库系统会将所有的查询结果合并在一起,然后去除掉相同的记录。

SELECT * FROM t_book t WHERE t.`price` BETWEEN 50 AND 100

UNION

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1

 

DECLARE cursor_name CURSOR FOR select_statement ;

SELECT * FROM t_book t ORDER BY t.`price`;

一、PASSWORubiconD(str):一般用户的密码加密,不可逆

 

一、使操作简便化。

 

第九章
触发器

 

质量名
数据类型 [完整性约束规范]

SELECT * FROM t_book t WHERE t.`bookTypeId` = 1;

SELECT * FROM t_book t WHERE t.`price` > 100;

1、SHOW
STATUS语句查看存款和储蓄进程和函数的景况

三、用alter
table语句来创立索引

2、调用存款和储蓄函数

第四节:索引的分类

1、内连接查询

2、union
all

 

/*查询1-5条记录*/

SELECT * FROM t_book t LIMIT 0,5;

/*查询6-10条记录*/

SELECT * FROM t_book t LIMIT 5,5;

/*查询11-15条记录*/

SELECT * FROM t_book t LIMIT 10,5;

DELIMITER &&

 

CREATE PROCEDURE porc_user3 (IN bookId INT)

BEGIN

  SELECT

    COUNT(*) INTO @num

  FROM

    t_user

  WHERE id = bookId ;

  IF @num > 0

  THEN

  UPDATE

    t_user

  SET

    username = ‘java’

  WHERE id = bookId ;

  ELSE

  INSERT INTO t_user

  VALUES

    (NULL, ‘newuser’, ‘newpwd’) ;

  END IF ;

END &&

 

DELIMITER ;

6、空间引得

 

SELECT AVG(t.price), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

 

PRIMARY
KEY

 

调用:

贰、使用sqlyog图形工具还原

 

DROP TRIGGER trig_book ;

 

第四节:删除数据库

d) ITERATE语句

ALTER { PROCEDURE | FUNCTION } sp_name [ characteristic … ]

characteristic :

{ CONTAINS SQL } NO SQL | READS SQL DATA | MODIFIES SQL DATA }

| SQL SECURITY { DEFINER | INVOKER }

| COMMENT  ‘string’

 

其中,sp_name 参数表示存储过程或函数的名称;

characteristic 参数指定函数的特性。

CONTAINS SQL 表示子程序包含SQL 语句,但不包含读或写数据的语句;

NO SQL 表示子程序中不包含SQL 语句;

READS SQL DATA表示子程序中包含数据的语句;

MODIFIES SQL DATA 表示子程序中包含写数据的语句。

SQL SECURITY{ DEFINER | INVODER } 指明谁有权限来执行。

DEFINER 表示只有定义者自己才能够执行;

INVODER 表示调用者可以执行。

COMMENT  ‘string’ 是注释信息。

第玖2章
数据备份与回复

 

CREATE FUNCTION sp_name ( [func_parameter[,…]] )

RETURNS TYPE

[ characteristic… ] routine_body

 

sp_name 参数是存储函数的名称;

func_parameter 表示存储函数的参数列表;

RETURNS type 指定返回值的类型;

characteristic 参数指定存储过程的特性,该参数的取值与存储过程中的取值是一样的;routine_body 参数是SQL 代码的内容,可以用BEGIN…END 来标志SQL 代码的开始和结束;

func_parameter 可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下:

param_name type 其中,param_name 参数是存储函数的参数名称;type 参数指定存储函数的参数类型,

该类型可以是MySQL 数据库的任意数据类型;

二、创立有两个推行语句的触发器

第二节 MySql安装与布署

壹、在单表上创设视图

多少计划:

 

f) WHILE语句

三、提升表的逻辑独立性。

/*与GROUP_CONCAT一起使用,会把结果拼接在一起*/

SELECT GROUP_CONCAT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

/*与COUNT一起使用,统计分组后每组成员的个数*/

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;

/*与having一起使用,限制输出结果*/

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid HAVING COUNT(t.bookname) > 3;

/*WITH ROLLUP,在最后加入一个汇总行*/

SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid WITH ROLLUP;

一、使用mysqldump命令备份

ALTER [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW 视图名[(属性清单)]

AS SELECT 语句

[WITH [CASCADED|LOCAL] CHECK OPTION]]

 

ALTER VIEW v_book (bookname, booktype) AS

SELECT

  b.bookname,

  bt.typename

FROM

  t_book b,

  t_booktype bt

WHERE b.booktypeid = bt.id;