【细说PHP学习】第十七章 MySQL数据库概述

17.1 数据库的应用

17.1.4 结构化查询语言 SQL

SQL语言包含四个部分:

数据定义语言(DDL):用于定义和管理数据对象,包括数据库、数据表等。
数据操作语言(DML):用于操作数据库对象中所包含的数据。
数据查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询、连接查询、嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客户机中显示。
数据控制语言(DCL):是用来管理数据库的语言,包含管理权限及数据更改。

17.2 MySQL数据库的常见操作

17.2.1 MySQL数据库的连接与关闭

当你链接一个MySQL服务器时,你的身份由你从那台连接的主机和你指定的用户名来决定。所以MySQL在认定身份中会考虑你的主机名和登陆的用户名称,只有客户机所在的主机被授予权限才能去连接MySQL服务器。启动操作系统命令行后,连接MySQL服务器可以使用如下命令:

mysql -h 服务器主机地址 -u 用户名 -p 用户密码

其中各参数的意义如下所示

-h:指定所连接的数据库服务器位置,可以是IP地址,也可以是服务器域名
-u:指定连接数据库服务器使用的用户名,例如root为管理员用户具有所有权限
-p:连接数据库服务器使用的密码,但-p和其后的参数之间不要有空格,最后是在该参数后直接回车,然后以密文的形式输入密码。

17.2.2 创建新用户并授权

为MySQL添加新用户的方法有两种:通过使用GRANT语句或通过直接操作MySQL授权表;比较好的方法是使用GRANT语句,更简明并且很少出错。GRANT语句的格式如下:

GRANT 权限 ON 数据库.数据表 TO 用户名@登陆主机 IDENTIFIED BY "密码"

例如添加一个新用户名为phpuser,密码为字符串“brophp”。让他可以在任何主机上登陆,并对所有数据库有查询、插入、修改、删除的权限。首先要以root用户登录,然后输入以下命令:

GRANT SELECT,INSERT,UPDATE,DELETE ON*,*TO phpuser@"%" IDENTIFIED BY "brophp"

17.2.3 创建数据库

顺利连接到MySQL服务器以后,就可以使用数据定义语言(DDL)定义和管理数据对象了。首先应该创建一个数据库,例如为网上书店创建一个名称为bookstore的数据库,需要在MySQL控制台中输入一个创建数据库的基本语法格式,如下所示:

mysql>CREATE DATABASE [IF NOT EXISTS] bookstore;    #创建一个名为bookstore的数据库

这里在操作的时候出现了一个错误——
这里写图片描述
原因:“[]”内容表示可选( ̄▽ ̄)”

这里写图片描述


如果需要删除一个指定的数据库,可以在MySQL控制台中使用下面的语法:

mysql>DROP DATABASE [IF EXISTS] bookstore;

这里写图片描述
这个操作将删除指定数据库中的所有内容,包括该数据库中的数据表、索引等各种信息,并且这是一个不可恢复的操作,因此使用此语句时要非常慎重。
查看数据库是否建立,可以使用

mysql>SHOW DATABASES;

这里写图片描述
如果查看到已创建的数据库,就可以使用USE命令打开这个数据库作为默认数据库使用,用于后续语句,知道语段的结尾,或者直到使用下一个USE语句选择其他数据库时。

mysql>USE bookstore;

这里写图片描述

17.2.4 创建数据表

假设在网上书店中,使用一张数据表用于保存图书信息,需要我们设计并创建出来。保存的信息包括:图书号(id)、图书名(bookname)、出版社(publisher)、作者(author)、单价(price)、图书简介(detail)、出版日期(publishdate)8个字段:

mysql> CREATE TABLE book (
-> id INT NOT NULL AUTO_INCREMENT,
-> bookname VARCHAR(50) NOT NULL DEFAULT ”,
-> publisher VARCHAR(80) NOT NULL DEFAULT ”,
-> author VARCHAR(30) NOT NULL DEFAULT ”,
-> price DOUBLE NOT NULL DEFAULT 0.00,
-> detail TEXT,
-> publishdate DATE,
-> PRIMARY KEY(id),
-> INDEX book_bookname(bookname),
-> INDEX book_price(price)
-> );
Query OK, 0 rows affected (0.09 sec)

这里写图片描述
上例使用CREATE TABLE命令创建了一个数据表,表名为book。共有8个字段,其中id为主键并设置为自动增长,bookname和price字段各创建了一个普通索引,其他字段都是一些常规的设置,包括字段名、字段类型和设置非空并给默认值的属性。使用SHOW TABLES命令查看当前数据库下共有多个数据表,也可以通过DESC命令查看数据表的详细结构。

mysql> SHOW TABLES;
mysql> DESC book;

这里写图片描述
数据表创建完成以后,如果对表结构有什么不满意的地方,或由于项目升级及项目改版等原因,需要更改表结构,可以使用ALTER命令完成,如果需要删除数据表,可以使用DROP命令:
这里写图片描述

17.2.5 数据表内容的简单管理

向MySQL数据表插入行记录(INSERT)

mysql> INSERT INTO BOOK VALUES(NULL,’细说PHP’,’电子工业出版社’,’李明’,59.00,’相当不错’,’131221212’);
mysql> INSERT INTO BOOK(bookname,publisher,author,price) VALUES(‘细说PHP’,’电子工业出版社’,’高洛峰’,89.00);

这里写图片描述
推荐使用第二种方法,在表名后面先给出要赋值的字段,然后再列出值,这样不仅可以只给需要赋值的字段插入数据,而且还可以按自定义字段顺序给值。

从MySQL数据表中查询数据记录(SELECT)

SELECT语句的使用是最复杂的了,因为SELECT语句能满足用户从数据库中获取各种要求的数据。这里只介绍简单的使用方式:

mysql> SELECT id, bookname, publisher, author, price FROM book;

这里写图片描述

更改MySQL数据表中存在的记录(UPDATE)

如果修改数据表中已经存在的记录,可以使用UPDATE语句,并结合SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新那些行,如果没有WHERE子句,则更新所有的行。

mysql> UPDATE book SET price=79 WHERE id=2;

这里写图片描述

删除MySQL数据表的记录(DELETE)

如果对数据表中不需要的数据记录进行删除,可以使用DELETE语句。DELETE语句用于删除记录行,并返回被删除的记录的数目。如果编写的DELETE语句中没有WHERE子句,则所有的行都被删除。当您不想知道被删除的行的数目,有一种更快的方法,即使用TRUNCATE TABLE。

mysql> DELETE FROM book WHERE id=’1’;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值