[整理]MySQL数据库学习笔记.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL数据库学习笔记
关系数据库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以“系统R“的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。
第一章、了解概念,并理解它
一、资料定义DDL(Data Definition Language)
资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。
数据库
第二章MySQL数据库数据类型
第一节、数据类型
MySQL数据库目前支持以下几种
下列代码字母用于描述中:
M 指出最大的显示尺寸。最大的显示尺寸长度为255。
D 适用于浮点类型。指出跟随在十进制小数点后的数字数量。最大可能值为30,但不应大于M-2。
方括号("[" and "]") 指定可选的类型修饰部份。
1、数值型(包括整数与浮点数,浮点型支持科学表示法) 浮点类型:
numeric [nju:merik] decimal(5,2),数字位:5,小数位:2 numeric 等价于decimal 并且是作为字符串存储的.而不是作为二进制浮点数.
说明:
salary DECIMAL(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 922337203685 4775807
2、字符串(字符)类型
3、日期和时间类型
4、Null类型不同于例如数字类型的0或字符串的
5、布尔类型TURE FALSE
标识符约定
标识符最大长度允许的字符
---------------
数据库64 一个目录名中允许的任何字符,除了/,\和. 表 64 一个目录名中允许的任何字符,除了/和.
列 64 所有的字符
索引 64 所有的字符
加名 255 所有的字符
定界符``,反引号ANSI SQL中双引号为定界符
注意:在MYSQL中,数据库和表对应操作系统下的目录与文件,因而,操作系统的敏感性决定数据库和表命名的大小敏感,所以在LINUX下数据库与表名的大小写敏感. 提示:USE ,HELP 是Mysql中为少数几个不需要终结符的语句之一.
用户变量表示为: @var_name;
set @x=99; 等同于@x := 99;
系统变量用两个@@表示,它分为2种,全局系统变量和会话系统变量.
下面详细说明各种类型
MySQL支持所有的ANSI/ISO SQL92数字类型.
1、数值型
一个整数可以在浮点语境中使用;它被解释为等值的浮点数;同样,一个浮点数可以被转化为整数,但损失精度,如100.1->100,100.5->101;
2.Mysql支持16进制数值,在数字的语境中,它们表现类似于一个整数(64位精度);如select 0xa+0;
在字符串的语境中,它们表现类似于一个二进制的字
符串,每一对16进制ASCII码被转为一个字符:
select 0x787868 ; =select x'787868';
select hex('xxh');
select 0xa+5;
select true,true,flase,FALSE;
其中浮点型用于域,表示方法解释一下,如:
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
如果UNSIGNED 被指定,负值是不允许的。M 是显示宽度,D 是小数位数。并且如果负号“-”也占一个宽度。
2、字符串类型
字符串是多个字符组成的一个字符序列,由单引号,或双引号字符包围,但在ANSI模式中运行时只能用单引号,也就是说在SQL SERVER数据库,使用应该使用单引号,保证兼容性应该使用单引号.
字符串类型有CHAR、VARCHAR、BLOB、TEXT、ENUM 和SET;
ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。
每个枚举值均有一个索引值:
在列说明中列表值所允许的成员值被从 1 开始编号。
空字符串错误值的索引值为0。这就意味着,你可以使用下面所示的SELECT 语句找出被赋于无效ENUM 值的记录行。
mysql> SELECT * FROM tbl_name WHERE
enum_col=0;
NULL 值的索引值为NULL。
总结:ENUM用于互相排斥的值,而SET列可以从一个值的列表中选择多个值。
常用技巧:
1.在命令提示符下:mysql -h -u root db_name 在串的环境中,可用十六进制常数来指定串值。其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作ASCII 代码并转换为字符,其结果用于串。例如,0x616263作为串时为“a b c”。 在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号(“\”)开头,称为转义字符。MySQL 识别下列转义字符: \0 一个ASCII 0 (NUL) 字符。 \' 一个ASCII 39 单引号(“'”) 字符。 \" 一个ASCII 34 双引号(“"”) 字符。 \b 一个ASCII 8 退格符。 \n 一个ASCII 10 换行符。 \r 一个ASCII 13 回车符。