MySQL 简介:
官网: MySQL官网
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
在本教程中,会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。
MySQL 优点:
①. MySQL 是开源的,所以你不需要支付额外的费用。
②. MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
③. MySQL 使用标准的 SQL 数据语言形式。
④. MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
⑤. MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
⑥. MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
⑦. MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
MySQL 创建数据库:
使用 create database 语句可完成对数据库的创建, 语法格式如下:
create database 数据库名 [其他选项];
例如我们需要创建一个名为 db 的数据库:
create database db;
MySQL 删除数据库:
使用 drop database 语句可完成对数据库的删除, 语法的格式如下:
drop database <数据库名>;
例如删除名为 db 的数据库:
drop database db;
MySQL创建数据库表:
使用 create table 语句可完成对表的创建, create table 的语法的格式如下:
CREATE TABLE table_name (column_name column_type);
以创建 students 表为例, 表中将存放 学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel) 这些内容:
create table students (
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(4) not null,
age int unsigned not null,
tel char(13)
);
注:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
UNSIGNED声明无符号类型,unsigned 属性只针对整型
MySQL 删除数据表:
以下为删除MySQL数据表的通用语法:
DROP TABLE table_name ;
MySQL 插入数据:
以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:
INSERT INTO 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
例如, 要给 db 数据库中的 students 表插入一条记录, 执行语句:
insert into students values(NULL, "王刚", "男", 20, "13811371377");
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
MySQL 查询数据:
以下为在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT column_name,column_name
FROM table_name
[WHERE Clause][LIMIT N][ OFFSET M]
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以使用 LIMIT 属性来设定返回的记录数。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
MySQL WHERE 子句:
where 关键词用于指定查询条件,如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
select 列名称 from 表名称 where 条件;
1. 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
2. 你可以在 WHERE 子句中指定任何条件。
3. 你可以使用 AND 或者 OR 指定一个或多个条件。
4. WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
5. WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
例如查询年龄在21岁以上的所有人信息:
select * from students where age > 21;
MySQL更新表中的数据 UPDATE:
以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
update 表名称 set 列名称=新值 where 更新条件;
例如:将手机号为 13288097888 的姓名改为 "张伟鹏", 年龄改为 19:
update students set name="张伟鹏", age=19 where tel="13288097888";
MySQL DELETE 删除语句:
以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:
delete from 表名称 [where 删除条件];
1. 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
2. 你可以在 WHERE 子句中指定任何条件
3. 您可以在单个表中一次性删除记录。
例如 :删除id为2的行:
delete from students where id=2;
MySQL创建后表的修改:
alter table 语句用于创建后对表的修改, 基础用法如下:
1. 添加列基本形式:
alter table 表名 add 列名 列数据类型 [after 插入位置];
示例:在表的最后追加列 address:
alter table students add address char(60);
示例:在名为 age 的列后插入列 birthday:
alter table students add birthday date after age;
2. 修改列基本形式:
alter table 表名 change 列名称 列新名称 新数据类型;
示例:将表 tel 列改名为 telphone:
alter table students change tel telphone char(11)
3. 删除列基本形式:
alter table 表名 drop 列名称;
示例:删除 birthday 列:
alter table students drop birthday;
MySQL LIKE 子句:
用于模糊查询:
以下是 SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:
SELECT 列名 FROM 表名 WHERE 列名 LIKE '%值%'
%可在值前面也可以在后面.
SELECT * FROM db.students where name like '%四' //查询名字最后一个字为'四'的学生信息
SELECT * FROM db.students where name like '%四%' //查询名字中包含为'四'的学生信息
SELECT * FROM db.students where name like '四%' //查询名字中第一个字为'四'的学生信息
MySQL limit 分页查询:
格式如下:
select 字段1,字段2 from 表名 limit 初始位置,记录数
例如: 第一条开始,每页显示三条
SELECT * FROM students limit 0,3
Mysql 连接的使用:
你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
JOIN 按照功能大致分为如下三类:
1. INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
2. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
3. RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
MySQL 排序:
格式如下:
select 列名 from 表名 order by 列名:
SELECT * FROM db.students order by age
1. 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
2. 你可以设定多个字段来排序。
3. 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
4. 你可以添加 WHERE...LIKE 子句来设置条件。