MYSQL必知必会 再捋[1-5](一)

-------------------------------------------------------------踏实 认真---------------------------------------------------------

(一)了解数据库

数据库(database 保存有组织的数据的容器 

表(table) 某种特定类型数据的结构化清单 

表名:相同数据库中不能两次使用相同的表名,但在不同的数据库中却可以使用相同的表名。

模式:关于数据库和表的布局和特性的信息

表:由列组成  

列: 表中的一个字段,所有表都是由一个或多个列组成

数据类型: 所容许的数据的类型,每个表列都有相应的数据类型,它限制该列中存储的数据(正确排序的依据,优化磁盘)

行: 表中的一个记录(数据库记录)
主键: 一列(或一组列),其值能够唯一区分表中的每个行(便于数据的操纵和管理)

主键条件:任意两行都不具有相同的主键值  每个行都必须具有一个主键值(主键列不允许Null值)

主键好习惯(三不):不更新主键列中的值 不重用主键列的值 不在主键列中使用可能会更改的值

 

(二)什么是SQL  Structured Query Language 结构化查询语言

SQL是一种专门用来与数据库通信的语言 

优点:简单 通用(不完全) 实用

 

附录中的样列表:自行查看操作

登录数据库

Create database 数据库名 charset =‘utf8’

User 数据库名

Source create.sql

Source populate.sql

 

(三)什么是MYSQL

DBMS: 操作数据的所有存储 检索 管理 处理

MYSQL:是一种DBMS,即它是一种数据库软件 (基于客户机-服务器)

服务器部分:是负责所有数据的访问和处理的一个软件(运行在数据库服务器的计算机上)

与数据文件打交道的只有服务器软件。

客户机是与用户打交道的软件。

登录mysql:

为了指定用户登录名ben,应该使
mysql -u ben。为了给出用户名、主机名、端口和口令,
应该使用mysql -u ben -p -h myserver -P 9999 

 

 

 

注意事项:

q 命令输入在mysql>之后;
q 命令用;或\g结束,换句话说,仅按Enter不执行命令;
q 输入help或\h获得帮助,也可以输入更多的文本获得特定命令
   帮助(如,输入help select获得使用SELECT语句的帮助);
q 输入quit或exit退出命令行实用程序。

 

(三)使用MySQL

1 不要使用保留字命名一个表或列

我的数据库:learn_mysql

输入:user learn_mysql;

查看:show databases;

查看数据库内的表:

SHOW TABLES;返回当前选择的数据库内可用表的列表。 

输入:show tables;

显示表列:

Show columns from cutormers

对每个字段返回一行,行中包含字段名 数据类型 是否允许为空 键信息 默认值以及其他信息

自动增量:某些表列需要唯一值。Mysql可以自动地为每个行分配下一个可用的编号,不用再添加一行时手动分配唯一值(这样做必须记住最后一次使用的值)。这个功能就是所谓的自动增量。

describe customers 作为 show columns from customers

的一种快捷方式

 

 

Show status 显示广泛的服务器的信息

Show create database 显示创建特定数据库

Show create table 显示创建的表的mysql语句

Show grans 显示授予用户

Show errors 显示服务器错误

Show warnings 显示警告信息

Help show 显示show操作的相关帮助信息

Mysql5新增: information_schema 用它来获得和过滤模式信息

 

(四)检索数据

1 检索单个列

Select prod_name from products

Select 列名 from 表名

结束sql语句: 使用 (;)

SQL关键字使用大写,而对所有列和表名使用小写 ,便于阅读调试

SQL语句分成多行更容易阅读和调试。

 

2 检索多个列

SELECT关键字后给出多个列名,列名之间必须以逗号分隔。 

(列名之间不用加上逗号,但是最后一个列名后不加)

SELECT pord_id, prod_name, prod_price FROM products;

数据表示:SQL语句一般返回原始的 无格式的数据

数据的格式化是一个表示问题,而不是一个检索问题。

 

3 检索所有列

SELECT * FROM products;

* 表示通配符,则返回表中的所有列(一般,除非你确实需要表中的每个列,否则最好别使用*通配符,会降低检索和应用程序的性能)

优点: 使用通配符有一个大优点,由于不明确指定列名(因为星号检索每个列),所以能检索出名字未知的列。

 

4 检索不同的行

使用关键字: DISTINCT (明显地,独特的)

语法: select distinct vend_id from products;

注意事项: 不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出select distinct vend_id, prod_price from products;除非指定的两个列都不同,否则所用行都将被检索出来。

 

5 限制结果

SELECT语句返回所有匹配的行,他们可能指定表中的每个行,为了返回第一行或前几行,使用LIMIT子句。

SELECT prod_name FROM products LIMIT 5;

检索单个列,返回不多于5行

得出下一个5行,可指定要检索的开始行和行数

SELECT prod_name FROM products LIMIT 5, 5;

开始位置,检索的行数

(第一行为行0)

超出最大行,返回能返回的行数

SELECT prod_name FROM products LIMIT 3, 4;

从第3行开始返回4行(自己领悟,行0开始)

Mysql 5 替代语法:

SELECT prod_name FROM products LIMIT 4 OFFSET 3;

 

6 使用完全限定的表名

使用完全限定的名字来引用列

SELECT products.prod_name FROM products;

SELECT products.prod_name FROM learn_mysql.products;

 

(五) 排序检索数据

1 排序数据

原始数据输出:

SELECT prod_name FROM products;

字句: SQL语句由子句构成,有些子句是必需的,而有的是可选的。

一个子句通常由一个关键字和所提供的数据组成。(SELECT语句的FROM子句)

明确的排序用SELECT语句检索出的数据,可使用ORDER BY子句排序

ORDER BY子句取一个或多个列的名字,据此输出进行排序

以字母顺序排序顺序:

SELECT prod_name FROM products ORDER BY prod_name

 

2 按多个列排序

检索3个列,并按其中两个列对结果进行排序(首先价格,再名称)

SELECT prod_name, prod_price, prod_id FROM products ORDER BY prod_price, prod_name;

分析: 仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序,如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

 

5.3 指定排序方向

数据排序: 默认(升序A-Z)

ORDER BY子句进行降序(Z-A) 指定DESC关键字

SELECT prod_price, prod_name FROM products ORDER BY

prod_price DESC;

 

多个列排序(以降序排 最贵的在最前面 然后再对产品名排序)

SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price DESC, prod_name;

分析: DESC关键字只应用到直接位于其前面的列名。在上例中,只对prod_price列指定 DESC,对 prod_name列不指定。因此,
prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序

 

多个列上降序排序:如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。(相反关键字ASC ,没太大用处)

 

找出一个列中最高或最低的值

Select prod_price From porducts ORDER BY prod_price DESC LIMIT 1;

 

ORDER BY子句的位置:  在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,LIMIT位于ORDER BY之后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值