MySQL数据库学习笔记.doc
《MySQL数据库学习笔记.doc》由会员分享,可在线阅读,更多相关《MySQL数据库学习笔记.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流MySQL数据库学习笔记.精品文档.MySQL数据库学习笔记 关系数据库的查询语言 SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以“系统 R“的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会(ANSI)及国际标
2、准化组织(ISO)在1987遵循一个几乎是以 IBM SQL 为基础的标准关连式资料语言定义。 第一章、了解概念,并理解它一、资料定义 DDL(Data Definition Language) 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 数据库第二章MySQL数据库数据类型 第一节、数据类型MySQL数据库目前支持以下几种下列代码字母用于描述中:M指出最大的显示尺寸。最大的显示尺寸长度为 255。 D适用于浮点类型。指出跟随在十进制小数
3、点后的数字数量。最大可能值为 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
4、.99。(实际上 MySQL 在这个列中可以存储的数值可以一直到 999.99,因为它没有存储正数的符号)。 整型:integer类型占用字节 从到 TINYINT1-128127 SMALLINT2-3276832767 MEDIUMINT3-83886088388607 INT4-21474836482147483647 BIGINT8-92233720368547758089223372036854775807 2、字符串(字符)类型3、日期和时间类型4、Null类型 不同于例如数字类型的0或字符串的5、布尔类型 TURE FALSE 标识符约定标识符 最大长度 允许的字符数据库 64
5、一个目录名中允许的任何字符,除了/,和.表64 一个目录名中允许的任何字符,除了/和.列64 所有的字符索引64 所有的字符加名255 所有的字符定界符,反引号ANSI SQL中双引号为定界符注意:在MYSQL中,数据库和表对应操作系统下的目录与文件,因而,操作系统的敏感性决定数据库和表命名的大小敏感,所以在LINUX下数据库与表名的大小写敏感.提示:USE ,HELP 是Mysql中为少数几个不需要终结符的语句之一.用户变量表示为: var_name;set x=99; 等同于x := 99;系统变量用两个表示,它分为2种,全局系统变量和会话系统变量.下面详细说明各种类型MySQL支持所有的
6、ANSI/ISO SQL92数字类型.1、数值型一个整数可以在浮点语境中使用;它被解释为等值的浮点数;同样,一个浮点数可以被转化为整数,但损失精度,如100.1-100,100.5-101;2.Mysql支持16进制数值,在数字的语境中,它们表现类似于一个整数(64位精度);如select 0xa+0; 在字符串的语境中,它们表现类似于一个二进制的字符串,每一对16进制ASCII码被转为一个字符: select 0x787868 ; =select x787868; select hex(xxh); select 0xa+5; select true,true,flase,FALSE;其中浮点
7、型用于域,表示方法解释一下,如:FLOAT(M,D) UNSIGNED ZEROFILL 如果 UNSIGNED 被指定,负值是不允许的。M 是显示宽度,D 是小数位数。并且如果负号“”也占一个宽度。2、字符串类型字符串是多个字符组成的一个字符序列,由单引号,或双引号字符包围,但在ANSI模式中运行时只能用单引号,也就是说在SQL SERVER数据库,使用应该使用单引号,保证兼容性应该使用单引号. 字符串类型有 CHAR、VARCHAR、BLOB、TEXT、ENUM 和 SET;ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。 每个枚举值均
8、有一个索引值: 在列说明中列表值所允许的成员值被从 1 开始编号。 空字符串错误值的索引值为 0。这就意味着,你可以使用下面所示的 SELECT 语句找出被赋于无效 ENUM 值的记录行。 mysql SELECT * FROM tbl_name WHERE enum_col=0;NULL 值的索引值为 NULL。 总结:ENUM用于互相排斥的值,而 SET列可以从一个值的列表中选择多个值。常用技巧:1.在命令提示符下:mysql -h -u root db_name x.sql在串的环境中,可用十六进制常数来指定串值。其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作 ASCII
9、代码并转换为字符,其结果用于串。例如, 0x616263作为串时为“a b c”。在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“”)开头,称为转义字符。 MySQL 识别下列转义字符: 0 一个 ASCII 0 (NUL) 字符。 一个 ASCII 39 单引号 (“”) 字符。 一个 ASCII 34 双引号 (“”) 字符。 b 一个 ASCII 8 退格符。 n 一个 ASCII 10 换行符。 r 一个 ASCII 13 回车符。 t 一个 ASCII 9 制表符(TAB)。 z ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系
10、统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database filename 时 ASCII(26) 可能会引起问题产生。) 一个 ASCII 92 反斜线 (“”) 字符。 % 一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。 _ 一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数. 3、日期和时间类型4、Null类型Null是ANSI中值的空。查找NUll类型用
11、IS Null 和IS Not Null测试;并且不能对NULL类型进行算术运算。其结果为NULL。5.mysql的注释为两种:/*/和#(单行注释,类似UNIX的脚本注释;)第07章 MySQL函数mysql 运算符A.比较运算符=,!=(),=,=Null安全等于比较is null ,is not null isnull(express)如果expr大于或等于min,并且expr小于或等于max,between返回1,否则返回0.它等价于表达式(min=expr and expr=max)expr in (v1,v2,.);如果expr 是in列表中的一值,它将返回1,否则返回0.B.逻辑
12、运算符在mysql中,所有的逻辑运算符返回的值均为true,false,或null(未知),在mysql中,它们由1(true),0(false)和null实现.select !1 等同于 select not 1;C.流程控制函数ifnull(expr1,value) 当expr1的值是null时,返回value,不是null时,返回expr1case value when compare-value then result .set a=2;select case a when 1 then onewhen 2 then twoelse more end;if (expr1,expre2,
13、expr3)如果expr1为真,(expr10以及expr1null),那么if()返回expr2,否则返回expr3nullif(expr1,expr2) 如果expr1=expr2为真,返回null,否则返回expr1;mysql select nullif(1,1);- nullmysql select nullif(1,2)- 1D.mysql字符串函数返回字符串str最左边的那个字符的ASCII码值.mysql select ascii(2);- 50返回N的字符串表示的2进制值形式.mysql select bin(12);- 1100返回N的字符串表示的八进制值形式mysql s
14、elect oct(12);- 14如果x是一个数字,返回n的字符串表示的16进制值形式,这里n是一个长长的(bigint)数字.如果x是一个字符串,x中的每个字符均被转换为2位16进制数字,并以16进制的字符串形式返回.这是0xff形式的字符串反转操作.mysql select hex(255);- ffmysql select hex(abc); /select ascii(a); - 97 select hex(97); - 61- 616263mysql 0x616263;- abcchar()以整数类型解释参数,返回这个整数所代表的Ascii码值给出的字符组成的字符串,null值将被
15、忽略mysql select char(120,120,104);- xxhconcat(str1,str2,.)将参数连接成字符串返回,如果有任何一个参数为null,返回值也为null.locate(子串substr,母串str)返回子串substr在字符吕中第一次出现的位置.如果子串substr在str中不存在,返回值为0:ltrim(str)返回移除了领头的空格字符后的str;第08章 MySQL数据操纵语言DMLselect 语法select 列1,列2,列3,from 表1,表2,表3where 条件group by .having .第二节域/列类型属性域/列的类型属性,有以下特性
16、: 其中可以存放什么类型的值。 值要占据多少空间,以及该值是否是定长的(所有值占相同数量的空间)或(所占空间量依赖于所存储的值)。 该类型的值怎样比较和存储。 此类型是否允许 NULL 值。 此类型是否可以索引。 数字日期和时间字符串(字符)列类型的属性有以下四种:DefaultNot Null 或 NullPrimary Key 即主键Auto_increment (只有1个只能被索引)一、数据库的操作操作系统下的操作mysql -h -u -pmysql -h localhost -uroot 创建数据库删除数据库显示数据库使用数据库数据库其他相关操作1、创建数据库CREATE DATAB
17、ASE db_Name;说明:2、删除数据库DROP DATABASE db_Name;说明:可以简写为:drop db_name;3、显示数据库SHOW databases;说明:显示当前有哪些数据库。4、使用数据库USE database;说明:5、显示数据库中有哪些表首先USE database;然后SHOW tables;参见:show的用法二、表格、索引的操作创建表格更改表格建立索引删除表格、索引表格其他相关操作以下操作都是以表格table_name或索引为操作单位。DESCRIBE或DESC命令除外。 文件 用途 tbl_name.frm 表定义 (form) 文件 tbl_nam
18、e.MYD 数据文件 tbl_name.MYI 索引文件 1、创建表格: CREATE TABLE table_name( column1 DATATYPE NOT NULL NOT NULL PRIMARY KEY, column2 DATATYPE NOT NULL, .)说明: DATATYPE -是资料的格式,也就是字段的数据类型Not Null -不允许资料有空的PRIMARY KEY -是本表的主键。 可以通过一个表的内容来拷贝一个表,如CREATETEMPORARY TABLEnew_tbl_name SELECT * FROM old_tbl_name;CREATETEMPOR
19、ARY TABLEnew_tbl_name SELECT * FROM old_tbl_name where 1=0;(只是拷贝空表)2、更改表格 ALTER TABLE tbl_name ADD COLUMN col_name DATATYPE 说明:增加一个栏位即(字段)(没有删除某个栏位的语法)。 ALTER TABLE tbl_name RENAME AS new_name;说明:对表重命名。ALTER TABLE table_name drop column_name说明:删除指定的列名。ALTER TABLE tbl_name CHANGE old_column_name new_
20、column_name DATATYPE 说明:更改列名及列属性。 例:ALTER TABLE tbl_name CHANGE old_column_name new_column_name int(2) not null primary key ; ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name) 说明:把主键的定义删除。 ALTER TABLE my_tbl TYPE=ISAM或MYIS
21、AM,HELP,InnoDB 等等 说明:更改表的类型3、建立索引 CREATE INDEX index_name ON table_name (column_name) ;CREATE UNIQUE index_name ON table_name (column_name) ;ALTER TABLE tbl_name ADD INDEX index_name(column_list);ALTER TABLE tbl_name ADD UNIQUE index_name(column_list);ALTER TABLE tbl_name ADD PRIMARY KEY (column_lis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 数据库 学习 笔记
限制150内