什么是数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
热门数据库
- Oracle
- SQLServer
- MySQL > 关系型数据库(用来关联的键称之为> 外键)
- MongoDB
- SQLite(不怎么用)
- access(不怎么用)
- DB2(不怎么用)
MySql的特点
MySql是目前最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司
- MySQL是开源的,免费。
- MySQL支持标准的SQL数据语句
- MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、NodeJS、Ruby和Tcl等。
- MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。
- MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
一、mysql的概念
1、 数据库-表-字段(表的标题行的每个标题)
2、 记录(每一行数据)
二、mysql的使用
(一).连接数据库 (集成软件中链接方法)
(1)wampserver->mysql->mysql.console->mysql>
(二).数据库的操作
表操作(了解)
- 连接数据库
格式:mysql -h主机地址 -u用户名 -p用户密码
- 显示所有数据库
格式:show databases;
- 创建数据库
格式:create database <数据库名>;
- 使用数据库
格式:use <数据库名>;
- 显示当前数据库所有表
格式:show tables;
- 创建数据表
格式:create table <表名> (<字段名1> <类型1> [,..<字段名n> <类型n>]);
(四)数据类型
1、INT(整型),
2、FLOAT(浮点),
3、CHAR(固定长度字符串),
4、VARCHAR(可变长度字符串),
5、BLOB(二进制),
6、TEXT(字符串)
7、TIMESTAMP(时间戳)
(五)列的其他属性
1、NOT NULL ==> 不为空
每一行都必须含有值(不能为空),null 值是不允许的。
2、DEFAULT value ==> 设置默认值
3、UNSIGNED ==> 使用无符号数值类型,0 及正数
4、AUTO_INCREMENT ==> 自动增长+1
设置 MySQL 字段的值在新增记录时每次自动增长 1
5、PRIMARY KEY ==> 主键
设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。
三、Navicat(软件)操作数据库
(一)数据操作(增删改查)
1、增加、插入数据 insert into 表名 (字段名) values (值)
格式:insert into <表名> [(<字段名1>[,..<字段名n > ])] values ( 值1 )[, (值n )];
2、删除 delete from 表名 where 条件
//删除MyGuests表中id为1的数据
DELETE FROM MyGuests where id=1;
//删除所有数据
DELETE FROM MyGuests
3、更改 UPDATE 表名 set 字段=“属性值” where 条件
update MyGuests set name='Mary' where id=1;
4、 查询 select 字段1,字段2,… from 表名 where 条件
1、* 号代表全部字段
2、 where 条件
(2.1)select 字段1,字段2 from 表名 where 条件
3、ORDER BY 字段
(2.2)SELECT * FROM 表名 ORDER BY 字段
(2.2.1)升序排列(默认)
(2.2.2)desc 降序排列 (要在字段后面加)
例如:$res = $conn -> query('SELECT * FROM 表名 ORDER BY desc') ==> 降序
4、LIMIT idx,qty:数量控制
SELECT * FROM 表名 LIMIT idx(第几个开始),qty(到那个)
备注:select一般配合where使用,以查询更精确更复杂的数据。
(二)WHERE 条件控制语句
1、相关条件控制符
1、=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b
2、AND、OR、NOT
3、LIKE用法中
(3.1)% 匹配任意、
(3.2)_ 匹配一个字符(可以是汉字)
4、LIMIT idx,qty:数量控制
例:SELECT * FROM goods LIMIT 2,5
5、IS NULL 空值检测
6、排序ORDER BY
(6.1)asc 升序(默认)
(6.2)desc 降序
三、导入向导(Navi…软件中使用)
1、在数据库先设计好表,再将excel表导入(低版本的excel)
2、数据库的字段跟excel表要对应。
四、PHP操作数据库
MySQLi extension (“i” 意为 improved) 安装:Linux 和 Windows: 在 php5 mysql 包安装时 MySQLi 扩展多数情况下是自动安装
备注:在php中调用数据空,直接粘贴复制一下代码到PHP页面中:
<?php
$servername = "localhost"; ==> 服务器名称
$username = "root"; ==> 账户名称
$password = "password"; ==> 账户密码(一般为空)
$dbname = 'user'; ==> 数据库名称
// 1、创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 2、检测连接是否连接成功
if ($conn->connect_error) {
var_dump($conn->connect_error);
}
//3、查询前设置编码,防止输出乱码
$conn->set_charset('utf8');
// var_dump("成功"); ==> 用于测试
?>
4、书写语句,执行语句
(4.1) 执行语句的代码: $res = $conn->query(‘对数据库操作的方法’)
例如:查询
$res = $conn -> query('select * from student where team>4');
(4.2) 若执行的是增删改语句,$res的值为布尔值。
例如:
//增加
$res = $conn -> query('insert into student (stuname,team,gender) values ("老田",8,"男")');
//删除
$res = $conn -> query('delete from student where stuname="laotian"');
(4.3) 若执行的是查询语句,得到查询结果集(对象)
例如:查询team中小于4的数据
$res = $conn -> query('select * from student where team>4');
* num_rows :结果集中的数量,用于判断是否查询到结果
if($res->num_rows > 0){
//执行查询全部数据
$content = $res->fetch_all(MYSQLI_ASSOC);
}else{
echo "没有满足条件的数据";
}
//备注:不为在对数据控增删改
* fetch_all(MYSQLI_ASSOC) 得到所有结果
* fetch_assoc() 得到第一个结果
* fetch_row() 得到第一个结果,只能拿到值
(4.5)若是查询语句,记得释放查询结果集,避免资源浪费
$res->close();
(4.6)关闭数据库
$conn->close();
===============================
在电脑中,如需配置环境,打开别的.exe文件方法
.exe //不是内部或外部命令:
1.若想在任意目录下打开一个exe文件,必须配置环境变量path。每个路径是用;隔开
* 电脑-属性-高级系统设置-环境变量-path
* 用户变量
* 系统变量
2.将该exe所在文件路径拷贝,插入path中,用;号隔开
如:C:\wamp64\bin\mysql\mysql5.7.14\bin