MySQL必知必会

发布时间:   来源:文档文库   
字号:
MySQL必知必会

了解SQL数据库基础
数据库(Database:保存有组织的数据的容器(通常是一个文件或一组文件),是通过DBMS创建和操纵的容器。
表(table:某种特定类型数据的结构化清单。表名具有唯一性。模式(schema:关于数据库和表的布局及特性的信息。列(column:表中的一个字段。所有表都是由一个或多个列组成的。分解数据:正确地数据分解为多个列极为重要。这样才有可能利用特定的列对数据进行排序和过滤。
数据类型(datatype:所容许的数据的类型。每个表列都有相应的数据类型,它限制或容许该列存储的数据。
行(row:表中的一个记录。主键(primarykey:一列(或一组列),其值能够唯一区分表中的每个行。(应该总是定义主键,主键列不允许NULL值)
主键的好习惯:不更新主键列中的值;不重用主键列的值;不在主键列中使用可能会更改的值。
什么是SQL
SQLStructuredQueryLanguage:结构化查询语言。MySQL简介
2.1什么是MySQL
AMySQL是一种DBMS,即它是一种数据库软件。种类:一类基于共享文件系统的DBMS,另一类基于客户机-服务器的DBMS
B客户机-服务器软件:服务器部分是负责所有数据访问和处理的一个软件,它运行在称为数据库服务器的计算机上。客户机是与用户打交道的软件(所有请求或更改来自运行客户机软件的计算机)
C.服务器软件为MySQLDBMS,客户机可以是MySQL提供的工具,脚本语言,web开发语言,程序设计语言。
2.2MySQL工具(已经集成到MySQLWorkbenchAMySQL命令实用程序
BMySQLAdministrator:用于简化MySQL服务器的管理。CMySQLQueryBrowser:用来编写和执行MySQL命令。使用MySQL3.1连接
A.如何连接和登录到MySQL,为了连接到MySQL,需要一下信息:主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;端口(使用默认端口3306之外的端口);一个合法的用户名;用户口令(如果需要的话)
3.2选择数据库
A.在执行任何数据库操作前,需要选择一个数据。为此,可使用USE关键字。B.关键字(keyword:作为MySQL语言组成部分的一个保留字。CUSEcrashcource;)必须先使用USE打开数据库,才能读取其中的数据。3.3了解数据库和表

ASHOWDATABASES;)数据库、表、列、用户、权限等信息被存储在数据库和表中。
B.不过,内部的表一般不直接访问。(可用SHOW命令来显示这些信息,MySQL内部表中提取这些信息。SHOWTABLES;SHOWCOLUMNSFROMcustomers;
C.什么是自动变量?某些表列需要唯一值。在每个行添加到表中时,MySQL可以自动地为每个行分配下一个可用编号,不用在添加一行时手动分配唯一值。
DDESCRIBE语句:MySQL支持用DESCRIBE作为SHOWCOLUMNSFROM的一种快捷方式。
4.1SELECT语句
ASELECT语句的用途是从一个或多个表中检索信息。4.2检索单个列
ASELECTprod_nameFROMproducts;
B.未排序数据:如果没有明确排序查询结果,则返回的数据的顺序没有特殊意义。C.结束SQL语句:多条SQL语句必须以分号分隔。如果使用的是MySQL命令行,必须加上分号来结束SQL语句。
DSQL语句和大小写:SQL语句不区分大小写,但是一般对所有SQL关键字使用大写,而对所有列和表名使用小写。
E.使用空格:在处理SQL语句时,其中所有空格都被忽略。4.3检索多个列
A当心逗号:在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。SELECTprod_id,prod_name,prod_priceFROMproducts;
B.数据表示:SQL语句一般返回原始的,无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。因此,表示(对齐和显示上面的价格值,用货币符号和逗号表示其金额)一般在现实该数据的应用程序中规定。
4.4检索所有列
ASELECT*FROMproducts;
B.使用通配符:一般,除非你确定需要表中的每个列,否则最好不要使用*通配符。检索不需要的列通常会降低检索和应用程序的性能。
C.检索未知列:由于不明确指定列名,所以能检索出名字未知的列。4.5检索不同行
ASELECTvend_idFROMproducts;BSELECTDISTINCTvend_idFROMproducts;关键字DISTINCT指示MySQL只返回不同的值(唯一)
CDISTINCT关键字应用于所有列而不仅是前置它的列。4.6限制结果
ASELECTprod_nameFROMproductsLIMITx,y;xy为数字,第一个为开始位置,第二个数字为要检索的行数。
B.检索出来的第一行为行0而不是行1
C.在行数不够时,MySQL将只返回它能返回的那么多行。DMySQL5LIMIT语法4.7使用完全限定的表名
A.使用完全限定的名字来引用列(同时使用表名和列字)BSELECTproducts.prod_nameFROMproducts;
CSELECTproducts.prod_nameFROMcrashcource.products;

排序检索数据5.1排序数据
A.关系数据库设计理论认为:如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。
B.子句(clauseSQL语句由子句构成,一个子句通常由一个关键字和所提供的数据组成。
CSELECTprod_nameFROMproductsORDERBYprod_name;
D通常,ORDERBY子句使用的列将是为显示所选择的列。但是,用非检索的列排序数据是完全合法的。
5.2按多个列排序
ASELECTprod_id,prod_price,prod_nameFROMproducts
ORDERBYprod_price,prod_name;5.3指定排序方向
A.默认是升序排序,为了进行降序排序,必须指定DESC关键字。DESC关键字只应用到直接位于其后面的列名。如果想在多个列上进行降序排序,必须对每个列指定DESC
BSELECTprod_id,prod_price,prod_nameFROMproductsORDERBYprod_priceDESC;
C.区分大小写和排序顺序在字典排序顺序中,A被视为与a相同,这是MySQL的默认行为。不过有需要可以改变数据库的设置。
D.使用ORDERBYLIMIT的组合,能够找出一个列中最高或最低的值。SELECTprod_priceFROMproductsORDERBYprod_priceDESCLIMIT1;
过滤数据
6.1使用WHERE子句
A.只检索所需数据需要指定搜索条件(searchcriteria)或过滤条件(filterconditionBSELECTprod_name,prod_priceFROMproductsWHEREprod_price=2.5;
CSQL过滤与应用过滤数据也可以在应用层过滤。但是,这种实现并不令人满意。DWHERE子句排在ORDERBY之前。6.2WHERE子句操作符
ASELECTprod_name,prod_priceFROMproductsWHEREprod_name=fuses;MySQL在执行匹配时默认不区分大小写。
B.何时使用引号:单引号用来限定字符串的。如果将值与串类型的列进行比较,则需要限定引号,用来跟数值列进行比较的值不用引号。
C范围值检查:为了检查某个范围的值,可使用BETWEEN操作符。SELECTprod_name,prod_priceFROMproductsWHEREprod_priceBETWEEN5AND10;
DNULL无值(novalue)它与字段包含0,空字符串或仅仅包含空格不同。SELECTprod_nameFROMproductsWHEREprod_priceISNULL;
ENULL与不匹配,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有NULL的行。
数据过滤
7.1组合WHERE子句
A为了进行更强的过滤控制,MySQL允许给出多个WHERE子句,AND子句的方式或OR子句的方式使用。
B.操作符(operator)用来联结或改变WHERE子句中的子句的关键字,也称为逻辑

本文来源:https://www.2haoxitong.net/k/doc/dd830c986529647d2728529e.html

《MySQL必知必会.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式