1.1数据库基础
概念:
1、表table:某种特定类型数据的结构化清单
2、模式schema:关于数据库和表的布局及特性的信息。(表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式)
3、列colunm:表中的一个字段。所有表都是由一个或多个列组成的。
4、数据类型datatype:所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。[限制可存储在列中的数据种类,还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用]
5、行row:如果将表想像为网格,网格中垂直的列为表列,水平行为表行。
6、主键primary key:一列(或一组列),其值能够唯一区分表中每个行。[虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理,必须满足的条件i、任意两行都不具有相同的主键值。ii、每个行都必须具有一个主键值(主键列不允许NULL值)]
1.2MySQL的语句
1、为了指定用户登录名bean
mysql -u ben
2、给出用户名、主机名、端口和口令
Mysql -u ben -p -h myserver -P 9999
完整的命令行选项和参数列表可用mysql - -help获得。
3、命令行中用;和\g结束,换句话说,仅按Enter不执行命令。输入quit或exit退出命令行实用程序
4、关键字key word:作为MySQL语言组成部分的一个保留字。
5、数据库、表、列、用户、权限等的信息被存储在数据库和表中。不过,内部的表一般不直接访问。可用MySQL的SHOW命令来显示这些信息。i、获得一个数据库内的表的列表,使用SHOW TABLES;ii、SHOW STATUS用于显示广泛的服务器状态信息.iii、SHOW CREATE DATABASE和SHOW CREATE TABLE,分别用来显示创建特定数据库或表的MySQL语句。iv、SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;v、SHOW ERRORS和SHOW WARNINGS,用来显示服务器错误或警告信息。
6、DESCRIBE customers;是SHOW COLUMNS FROM customers;的一种快捷方式。
7、SQL语句不区分大小写。[对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试]
8、如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的顺序。
9、语句:
i、查找的过程中,数值检索出不同值使用关键字DISTINCT SELECT DISTINCT () FROM ();
ii、限制返回第一行或前几行使用关键字LIMIT进行:SELECT () FROM () LIMIT ();行0:检索出来的第一行为行0而不是行1.因此,LIMIT 1,将检索出第二行而不是第一行
iii、为得出下一个5行,可指定要检索的开始行和行数。SELECT () FROME () LIMIT 5,5 指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。
1.3排序检索语句
1、为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个叫或多个列的名字,据此对输出进行排序。
列子:SELECT prod_name FROM products ORDER BY prod_name;
2、有多个列进行排序,列子:SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;[对于上例中的输出,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值是唯一的,则不会按prod_name排序]
3、指定排序方向:降序用DESC关键字。列子:SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC;
4、有多个列进行排序时,DESC关键字只应用到直接位于其前面的列名。在列子中只对prod_price列指定DESC,对prod_name不指定。因此prod_price以降序排列,prod_name仍然按照标准的升序来进行排列:SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name;【与DESC相反的时ASC】
5、使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。
6、过滤数据:WHERE子句操作符【<> 不等于、!= 不等于】
7、空值检查:SELECT prod_name FROM products WHERE prod_price IS NULL;
8、AND 和OR两个操作符中,AND在计算次序中优先级更高。