MySQL是一种免费的小型关系型数据库,与Linux、Apache/Nginx、PHP一起组成了WEB开发的黄金搭档。
MySQL是C/S(客户端/服务端)体系结构的软件,而在开发中,PHP承担起了客户端的角色。当然,管理MySQL数据库还可以使用它自带的客户端管理系统来进行操作。
对数据库的管理,必须使用客户机程序成功连接后,再通过必要的操作指令对其进行操作,这种数据库操作指令即是SQL(Structured Query Language)语言。MySQL等很多数据库管理系统,大多都支持SQL作为自己的数据库语言。SQL语言包括四大部分:
一、DDL(即数据库定义语方)
DDL用于定义和管理数据对象,包括数据库和数据表等。它主要包括三种语句:
CREATE ----- 用于创建数据库和数据表
DROP ----- 用于删除数据库和数据表
ALTER ----- 用于修改数据库和数据表
二、DML(即数据操作语言)
DML用于操作数据库对象中所包含和数据。它主要有三种语句:
INSERT ---- 用入向数据表中插入数据
UPDATE ---- 用于更新数据表中的数据
DELETE ---- 用于删除数据表中的数据
三、DQL(即数据查询语言)
DQL用于查询数据库对象中所包含的数据,能够进行单表查询、连接查询、嵌套查询,以及集合查询等各种复杂程序不同的数据库查询,并将数据返回到客户机中显示。
DQL主要的语句是SELECT
四、DCL(数据控制语言)
DCL是用来管理数据库的言,包含权限数据更新,主要的语句有:GRANT、REVOKE、COMMIT、ROLLBACK等
MySQL数据库常见操作摘要:
1、创建数据库(CREATE DATABASE):
基本语法:CREATE DATABASE [IF NOT EXISTS] `数据库名`;
其中 IF NOT EXISTS可以省略,它是用于判断是否存在同名数据库,如果存在,则跳过创建。
例如:创建一个名称为'php2016'的数据库
1 create database `php2016`;
2、显示已存在的数据库(SHOW):
1 SHOW DATABASES;
执行这条命令后,会将mysql下所有的有访问权限的数据库列出来。
mysql>show databases;+--------------------+
| Database |
+--------------------+
| information_schema |
| books |
| bookstore |
| ecstore |
| guangliu |
| message |
| mysql |
| performance_schema |
| php2016 |
| test |
+--------------------+
10 rows in set (0.00 sec)
3、操作某个数据库(即将该数据库作为当前数据库来使用)
基本语法: USE 数据库名;
1 USE `php2016`;
4、删除一个数据库(DROP):
基本语法:DROP DATABASE [IF EXISTS] 数据库名;
例如要删除一个名称为'php2016'的数据库:
1 DROP DATABASE [IF EXISTS] `PHP2016`;
5、创建数据表(CREATE TABLE):
基本语法:CREATE TABLE 数据表名 (字段1 类型,字段2 类型,字段n 类型) 数据选项(缺省时使用mysql默认);
如:创建一个用户名:
CREATE TABLE `user` (
`id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL DEFAULT'',
PRIMARY KEY(id),
INDEX user_username(username)
);
在上述示例中,id被设置为一个非空的整型,并使用AUTO_INCREMENT自增对象,自动生成唯一(不重复的id),每次增加记录时,id值都会在上一条记录的基础上加1。
而PRIMARY KEY()是设置该数据表的主键。
INDEX是给数据表建立索引,以提高数据库的查询效率。
结果如下:
1 mysql> CREATE TABLE `user` (2 -> `id` INT NOT NULLAUTO_INCREMENT,3 -> `username` VARCHAR(50) NOT NULL DEFAULT'',4 -> PRIMARY KEY(id),5 -> INDEXuser_username(username)6 ->);7 Query OK, 0 rows affected (0.00 sec)
6、查看数据表:
基本语法:SHOW TABLES;
注意此处为复数。
1 mysql>show tables;2 +-------------------+
3 | Tables_in_php2016 |
4 +-------------------+
5 | user |
6 +-------------------+
7 1 row in set (0.00 sec)
7、显示数据表的详细结构(DESC):
基本语法:DESC 数据表名称;
如要显示刚才建立的user表的详细结构:
1 DESC `user`;
结果如下:
1 mysql> desc user;2 +----------+-------------+------+-----+---------+----------------+
3 | Field | Type | Null | Key | Default | Extra |
4 +----------+-------------+------+-----+---------+----------------+
5 | id | int(11) | NO | PRI | NULL | auto_increment |
6 | username | varchar(50) | NO | MUL | | |
7 +----------+-------------+------+-----+---------+----------------+
8 2 rows in set (0.00 sec)