MySQL数据库学习笔记.docx

上传人:b****1 文档编号:14855057 上传时间:2023-06-27 格式:DOCX 页数:21 大小:28.99KB
下载 相关 举报
MySQL数据库学习笔记.docx_第1页
第1页 / 共21页
MySQL数据库学习笔记.docx_第2页
第2页 / 共21页
MySQL数据库学习笔记.docx_第3页
第3页 / 共21页
MySQL数据库学习笔记.docx_第4页
第4页 / 共21页
MySQL数据库学习笔记.docx_第5页
第5页 / 共21页
MySQL数据库学习笔记.docx_第6页
第6页 / 共21页
MySQL数据库学习笔记.docx_第7页
第7页 / 共21页
MySQL数据库学习笔记.docx_第8页
第8页 / 共21页
MySQL数据库学习笔记.docx_第9页
第9页 / 共21页
MySQL数据库学习笔记.docx_第10页
第10页 / 共21页
MySQL数据库学习笔记.docx_第11页
第11页 / 共21页
MySQL数据库学习笔记.docx_第12页
第12页 / 共21页
MySQL数据库学习笔记.docx_第13页
第13页 / 共21页
MySQL数据库学习笔记.docx_第14页
第14页 / 共21页
MySQL数据库学习笔记.docx_第15页
第15页 / 共21页
MySQL数据库学习笔记.docx_第16页
第16页 / 共21页
MySQL数据库学习笔记.docx_第17页
第17页 / 共21页
MySQL数据库学习笔记.docx_第18页
第18页 / 共21页
MySQL数据库学习笔记.docx_第19页
第19页 / 共21页
MySQL数据库学习笔记.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MySQL数据库学习笔记.docx

《MySQL数据库学习笔记.docx》由会员分享,可在线阅读,更多相关《MySQL数据库学习笔记.docx(21页珍藏版)》请在冰点文库上搜索。

MySQL数据库学习笔记.docx

MySQL数据库学习笔记

MySQL数据库学习笔记

   关系数据库的查询语言SQL(StructuredQueryLanguage),是一种非常口语化、既易学又易懂的语法。

此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。

SQL原来拼成SEQUEL,这语言的原型以“系统R“的名字在IBM圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R的技术基础发展出来IBM的产品。

而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBMSQL为基础的标准关连式资料语言定义。

第一章、了解概念,并理解它

一、资料定义DDL(DataDefinitionLanguage)

资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。

数据库

第二章 MySQL数据库数据类型

第一节、数据类型

MySQL数据库目前支持以下几种

下列代码字母用于描述中:

M 指出最大的显示尺寸。

最大的显示尺寸长度为255。

D 适用于浮点类型。

指出跟随在十进制小数点后的数字数量。

最大可能值为30,但不应大于M-2。

方括号("["and"]")指定可选的类型修饰部份。

1、数值型(包括整数与浮点数,浮点型支持科学表示法)

浮点类型:

numeric[nju:

merik]decimal(5,2),数字位:

5,小数位:

2

numeric等价于decimal并且是作为字符串存储的.而不是作为二进制浮点数.

说明:

salaryDECIMAL(3,2)

在这个例子中,3(精度(precision))代表重要的十进制数字的数目,2(数据范围(scale))代表在小数点后的数字位数。

在这种情况下,因此,salary列可以存储的值范围是从-99.99到99.99。

(实际上MySQL在这个列中可以存储的数值可以一直到999.99,因为它没有存储正数的符号)。

整型:

integer

类型  占用字节 从      到 

TINYINT  1   -128     127 

SMALLINT 2   -32768     32767 

MEDIUMINT 3   -8388608    8388607 

INT   4   -2147483648    2147483647 

BIGINT  8   -9223372036854775808 9223372036854775807 

2、字符串(字符)类型

3、日期和时间类型

4、Null类型不同于例如数字类型的0或字符串的

5、布尔类型TUREFALSE

标识符约定

标识符  最大长度允许的字符

---------------

数据库 64 一个目录名中允许的任何字符,除了/,\和.

表  64 一个目录名中允许的任何字符,除了/和.

列  64 所有的字符 

索引 64 所有的字符 

加名 255 所有的字符

定界符``,反引号ANSISQL中双引号为定界符

注意:

在MYSQL中,数据库和表对应操作系统下的目录与文件,因而,操作系统的敏感性决定数据库和表命名的大小敏感,所以在LINUX下数据库与表名的大小写敏感.

提示:

USE,HELP是Mysql中为少数几个不需要终结符的语句之一.

用户变量表示为:

@var_name;

set@x=99;等同于@x:

=99;

系统变量用两个@@表示,它分为2种,全局系统变量和会话系统变量.

下面详细说明各种类型

MySQL支持所有的ANSI/ISOSQL92数字类型.

1、数值型

 一个整数可以在浮点语境中使用;它被解释为等值的浮点数;同样,一个浮点数可以被转化为整数,但损失精度,如100.1->100,100.5->101;

2.Mysql支持16进制数值,在数字的语境中,它们表现类似于一个整数(64位精度);如select0xa+0;

 在字符串的语境中,它们表现类似于一个二进制的字符串,每一对16进制ASCII码被转为一个字符:

 select0x787868;=selectx'787868';

 selecthex('xxh');

 select0xa+5;

 selecttrue,true,flase,FALSE;

  其中浮点型用于域,表示方法解释一下,如:

  FLOAT[(M,D)][UNSIGNED][ZEROFILL]

  如果UNSIGNED被指定,负值是不允许的。

M是显示宽度,D是小数位数。

并且如果负号“-”也占一个宽度。

2、字符串类型

  字符串是多个字符组成的一个字符序列,由单引号,或双引号字符包围,但在ANSI模式中运行时只能用单引号,也就是说在SQLSERVER数据库,使用应该使用单引号,保证兼容性应该使用单引号.

   字符串类型有CHAR、VARCHAR、BLOB、TEXT、ENUM和SET ;

  ENUM是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。

  每个枚举值均有一个索引值:

  在列说明中列表值所允许的成员值被从1开始编号。

  空字符串错误值的索引值为0。

这就意味着,你可以使用下面所示的SELECT语句找出被赋于无效ENUM值的记录行。

mysql>SELECT*FROMtbl_nameWHEREenum_col=0;

NULL值的索引值为NULL。

总结:

ENUM用于互相排斥的值,而SET列可以从一个值的列表中选择多个值。

常用技巧:

1.在命令提示符下:

mysql-h-urootdb_name

  在串的环境中,可用十六进制常数来指定串值。

其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作ASCII代码并转换为字符,其结果用于串。

例如,0x616263作为串时为“abc”。

  在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号(“\”)开头,称为转义字符。

MySQL识别下列转义字符:

\0一个ASCII0(NUL)字符。

\'一个ASCII39单引号(“'”)字符。

\"一个ASCII34双引号(“"”)字符。

\b一个ASCII8退格符。

\n一个ASCII10换行符。

\r一个ASCII13回车符。

\t一个ASCII9制表符(TAB)。

\zASCII(26)(Control-Z)。

这个字符可以处理在Windows系统中ASCII(26)代表一个文件的结束的问题。

(当使用mysqldatabase

\\一个ASCII92反斜线(“\”)字符。

\%一个ASCII37“%”字符。

它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。

查看章节6.3.2.1字符串比较函数。

\_一个ASCII95“_”字符。

它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。

查看章节6.3.2.1字符串比较函数.

3、日期和时间类型

4、Null类型

Null是ANSI中值的空。

查找NUll类型用ISNull和ISNotNull测试;并且不能对NULL类型进行算术运算。

其结果为NULL。

5.mysql的注释

为两种:

/**/和#(单行注释,类似UNIX的脚本注释;)

第07章MySQL函数

mysql运算符

A.比较运算符=,!

=(<>),>,>=,<,<=

Null安全等于比较<=>

isnull,isnotnullisnull(express)

如果expr大于或等于min,并且expr小于或等于max,between返回1,否则返回0.它等价于表达式

(min<=exprandexpr<=max)

exprin(v1,v2,....);如果expr是in列表中的一值,它将返回1,否则返回0.

B.逻辑运算符

 在mysql中,所有的逻辑运算符返回的值均为true,false,或null(未知),在mysql中,它们由1(true),0(false)和null实现.

 select!

1等同于selectnot1;

 C.流程控制函数

 ifnull(expr1,value)当expr1的值是null时,返回value,不是null时,返回expr1

 casevaluewhen[compare-value]thenresult[..]

 set@a=2;

 selectcase@a

 when1then'one'

 when2then'two'

 else'more'end;

 if(expr1,expre2,expr3)

 如果expr1为真,(expr1<>0以及expr1<>null),那么if()返回expr2,否则返回expr3

 nullif(expr1,expr2)如果expr1=expr2为真,返回null,否则返回expr1;

mysql>selectnullif(1,1);

 ->null

mysql>selectnullif(1,2)

 ->1

D.mysql字符串函数

返回字符串str最左边的那个字符的ASCII码值.

mysql>selectascii('2');

 ->50

返回N的字符串表示的2进制值形式.

mysql>selectbin(12);

 ->'1100'

返回N的字符串表示的八进制值形式

mysql>selectoct(12);

 ->14

如果x是一个数字,返回n的字符串表示的16进制值形式,这里n是一个长长的(bigint)数字.

如果x是一个字符串,x中的每个字符均被转换为2位16进制数字,并以16进制的字符串形式返回.

这是0xff形式的字符串反转操作.

mysql>selecthex(255);

 ->ff

mysql>selecthex('abc');//selectascii('a');->97selecthex(97);->61

 ->616263

mysql>0x616263;

 ->abc

char()以整数类型解释参数,返回这个整数所代表的Ascii码值给出的字符组成的字符串,null值将被忽略

mysql>selectchar(120,120,104);

 ->xxh

concat(str1,str2,...)

将参数连接成字符串返回,如果有任何一个参数为null,返回值也为null.

locate(子串substr,母串str)返回子串substr在字符吕中第一次出现的位置.如果子串substr在str中不存在,返回值为0:

ltrim(str)

返回移除了领头的空格字符后的str;

第08章MySQL数据操纵语言DML

·select语法

·

select列1,列2,列3,,,,,

from表1,表2,表3

[where条件]

[groupby...]

[having....]

[]

第二节 域/列类型属性

域/列的类型属性,有以下特性:

■其中可以存放什么类型的值。

■值要占据多少空间,以及该值是否是定长的(所有值占相同数量的空间)或(所占空间量依赖于所存储的值)。

■该类型的值怎样比较和存储。

■此类型是否允许NULL值。

■此类型是否可以索引。

·数字

·日期和时间

·字符串(字符)

列类型的属性

有以下四种:

·Default

·NotNull 或Null

·PrimaryKey即主键

·Auto_increment(只有1个只能被索引)

一、数据库的操作

|操作系统下的操作

mysql-h-u-p

mysql-hlocalhost-uroot

·创建数据库

·删除数据库

·显示数据库

·使用数据库

·数据库其他相关操作

1、创建数据库

CREATEDATABASEdb_Name;

说明:

2、删除数据库

DROPDATABASEdb_Name;

说明:

可以简写为:

dropdb_name;

3、显示数据库

SHOWdatabases;

说明:

显示当前有哪些数据库。

4、使用数据库

USEdatabase;

说明:

5、显示数据库中有哪些表

首先USEdatabase;

然后SHOWtables;

参见:

show的用法

 

二、表格、索引的操作

·创建表格

·更改表格

·建立索引

·删除表格、索引

·表格其他相关操作

以下操作都是以表格table_name或索引为操作单位。

DESCRIBE或DESC命令除外。

  文件          用途 

tbl_name.frm   表定义(form)文件 

tbl_name.MYD   数据文件 

tbl_name.MYI   索引文件

1、创建表格:

CREATETABLEtable_name

 column1DATATYPE[NOTNULL][NOTNULLPRIMARYKEY],

 column2DATATYPE[NOTNULL],

...)

说明:

 

DATATYPE--是资料的格式,也就是字段的数据类型

NotNull--不允许资料有空的

PRIMARYKEY--是本表的主键。

可以通过一个表的内容来拷贝一个表,如

CREATE [TEMPORARY]TABLE new_tbl_nameSELECT*FROMold_tbl_name;

CREATE [TEMPORARY]TABLE new_tbl_nameSELECT*FROMold_tbl_namewhere1=0; (只是拷贝空表)

2、更改表格 

ALTERTABLEtbl_nameADDCOLUMNcol_nameDATATYPE

说明:

增加一个栏位即(字段)(没有删除某个栏位的语法)。

 

ALTERTABLEtbl_nameRENAMEASnew_name;

说明:

对表重命名。

ALTERTABLEtable_namedropcolumn_name

说明:

删除指定的列名。

ALTERTABLEtbl_nameCHANGEold_column_namenew_column_nameDATATYPE

说明:

更改列名及列属性。

例:

ALTERTABLEtbl_nameCHANGEold_column_namenew_column_nameint

(2)notnullprimarykey;

ALTERTABLEtable_nameADDPRIMARYKEY(column_name)

说明:

更改表得的定义把某个栏位设为主键。

ALTERTABLEtable_nameDROPPRIMARYKEY(column_name)

说明:

把主键的定义删除。

ALTERTABLEmy_tblTYPE=ISAM或[MYISAM,HELP,InnoDB……等等]

说明:

更改表的类型

3、建立索引 

CREATEINDEXindex_nameONtable_name(column_name);

CREATEUNIQUEindex_nameONtable_name(column_name);

ALTERTABLEtbl_nameADDINDEXindex_name(column_list);

ALTERTABLEtbl_nameADDUNIQUEindex_name(column_list);

ALTERTABLEtbl_nameADDPRIMARYKEY(column_list);

说明:

对某个表格的栏位建立索引以增加查询时的速度。

4、删除表格、索引 

DROPtbl_name1,tbl_name2,tbl_name3....;

DROPINDEXindex_nameONtbl_name;

ALTERTABLEtbl_name DROPINDEXindex_name;

ALTERTABLEtbl_name DROPPrimaryKey;

5、显示表格中列的信息

语法:

{DESCRIBE|DESC}tbl_name[col_name|wild]

DESCRIBEtbl_name;

说明:

DESCRIBE是SHOWCOLUMNSFROM的缩写。

用于显示表格中列的信息。

DESCRIBEtbl_name;等于SHOWCOLUMNSFROMtbl_name;

也可以简写为:

desctal_name;

describevt.描写,记述,形容,形容

三、记录的操作

·记录的添加

·记录的更改

·记录的删除

·

·

首先来大概了解一下INSERT的语法,有以下几种方式:

INSERT [INTO]tbl_name[(col_name,...)]  VALUES((expression|DEFAULT),...),(...),...

       [ONDUPLICATEKEYUPDATEcol_name=expression,...]

或者 INSERT[INTO]tbl_name[(col_name,...)]    SELECT...

或者 INSERT[INTO]tbl_name SETcol_name=(expression|DEFAULT),...

       [ONDUPLICATEKEYUPDATEcol_name=expression,...]

说明:

我们只关心记录添加的方式啦。

注意啦,现在我们开始啦。

1、记录的添加

最简单的一种:

直接添加一行记录就是:

INSERT [INTO]tbl_name[(col_name,...)]  VALUES((expression|DEFAULT),...),(...),...);

例:

INSERTINTOtbl_name(col1,col2)VALUES(15,col1*2);inserttbl_name(col1,col2)values('007','xxh5fd')

第二种:

 

2、记录的更改

还是先来看一看UPDATE的语法

UPDATEtbl_name[,tbl_name...]  SETcol_name1=expr1[,col_name2=expr2...]

[WHEREwhere_definition]

说明:

UPDATE以新的值更新现存表中行的列。

SET子句指出要修改哪个列和他们应该给定的值。

WHERE子句如果被给出,指定哪个记录行应该被更新。

否则,所有的记录行被更新。

如果ORDERBY子句被指定,记录行将被以指定的次序更新。

例子:

UPDATEybcsetid=8whereid=0;

3.记录的删除

简单的语法:

DELETEFROMtable_nameWHEREconditions

说明:

删除符合条件的资料。

 

 

数据语法:

SHOW语句可用来获取数据库和表的几个方面的信息,它有如下用法:

SHOWDATABASES列出服务器上的数据库

SHOWTABLES列出当前数据库中的表

SHOWTABLESFROMdb_name列出指定数据库中的表

SHOW[FULL]COLUMNSFROMtbl_name显示指定表中列的信息,等同于desctbl_name;

SHOWINDEXFROMtbl_name显示指定表中索引的信息

SHOWTABLESTATUS显示缺省数据库中表的说明信息

SHOWTABLESTATUSFROMdb_name显示指定数据库中表的说明信息

DESCRIBEtbl_name和EXPLAINtbl_name语句与SHOWCOLUMNSFROMtbl_name功能相同。

SELECT的使用及语法详解

作用说明:

SELECT用于检索从一个或多个表中选取出的行。

select_expression表示你希望检索的列。

SELECT也可以被用于检索没有引用任何表的计算列。

要讲的内容是:

·第一个查询

·选择特定的列,对列进行排序

·查找不重复的数据

·创建虚拟列,及列的别名的使用

·按条件检索

·

·

好,现在开始我们的第一个查询啦!

SELECT*Fromtbl_name;

 

 

 

组合查询

组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的

表格才能够得到结果的。

SELECT*

FROMtable1,table2

WHEREtable1.colum1=table2.column1

说明:

1.查询两个表格中其中column1值相同的资料。

2.当然两个表格相互比较的栏位,其资料形态必须相同。

3.一个复杂的查询其动用到的表格可能会很多个。

整合性的查询:

SELECTCOUNT(*)

FROMtable_name

WHEREcolumn_name=xxx

说明:

查询符合条件的资料共有几笔。

SELECTSUM(column1)

FROMtable_name

说明:

1.计算出总和,所选的栏位必须是可数的数字形态。

2.除此以外还有AVG()是计算平均、MAX()、MIN()计算最大最小值的整合性查询。

SELECTcolumn1,AVG(column2)

FROMtable_name

GROUPBYcolumn1

HAVINGAVG(column2)>xxx

说明:

1.GROUPBY:

以column1为一组计算column2的平均值必须和AVG、SUM等整合性查询的关键字

一起使用。

2.HAVING:

必须和GROUPBY一起使用作为整合性的限制。

复合性的查询

SELECT*

FROMtable_name1

WHEREEXISTS(

SELECT*

FROMtable_name2

WHEREconditions)

说明:

1.WHERE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2