数据库
-
概念:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
-
热门数据库 Oracle、SQLServer、MySQL、MongoDB、SQLite、access、DB2
-
结构化的数据:我们把一段复杂的信息,进行了结构化处理,瞬间显得清爽多了。计算机处理 起来也相当方便。 因此,这样的数据,我们就称之为结构化数据
-
关系型数据库:我们把用户账号的信息,和消费记录信息分离开来,通过用户编号进行了关联 既 把不同的数据进行了分离,使得查询数据更加方便。同时又保证了它们关系的正确性。
这就是传统的关系型数据库。 其中 <用户编号> 我们称之为外键 -
表(table)
(1)一个数据库通常包含一个或多个表,一个数据表有一个唯一名称,并有行和列组成。
(2)表是数据库中一个重要的组成部分, 数据库只是一个框架,数据表才是其实质内容。
MySQL数据库
-
特点:
(1) MySql是目前最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle公司
(2) MySQL是开源的,免费。
(3) MySQL支持标准的SQL数据语句
(4) MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、NodeJS、Ruby和Tcl等。
(5) MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。
(6) MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB, 64位系统支持最大的表文件为8TB -
命令窗口数据库操作
(1) 连接数据库
格式:mysql -h主机地址 -u用户名 -p用户密码
(2) 显示所有数据库
格式:show databases;
(3) 创建数据库
格式:create database <数据库名>;
(4) 使用数据库
格式:use <数据库名>;
(5) 显示当前数据库所有表
格式:show tables;
(6) 创建数据表
a) 格式:create table <表名> (<字段名1> <类型1> [,…<字段名n> <类型n>]);
create table MyGuests (
id int(6) unsigned auto_increment primary key,
firstname varchar(30) not null,
lastname varchar(30) not null,
email varchar(50),
reg_date timestamp
)
b) 以上创建一个名为 “MyGuests”的表,包含5个列:“id”,“firstname”,“lastname”, “email”和“reg_date”,参数如下:
int (整形)
float (浮点型)
char (固定长度字符串)
varchar (可变长度字符串)
blob (二进制)
text (字符串)
timestamp (时间戳)
c) 列的其他属性
not null (每一行都含有值,不能为空,null值是不允许的)
default value (设置默认值)
unsigned (使用无符号数值类型,0及正数)
auto_increment (设置 MySQL 字段的值在新增记录时每次自动增长 1)
primary key (设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置 为ID数值,与auto_increment一起使用)
(7) 删除表
- 格式:drop table <表名>;
drop table MyGuests;
drop table if exists MyGuests
(8) 查询表结构:
desc MyGuests
(9) 修改表名
rename table MyClass to YouClass;
(10) 增加字段
alter table MyGuests add sku_id bigint(20) unsigned DEFAULT NULL COMMENT ‘商品 销售码’;
(11) 复制表结构
create table table1 like table;
3.Navicat操作数据库
- 数据库创建
- 表创建
- 增删查改(crud)
- 数据导入
json
excel
(1) 数据操作
① 插入数据
//格式:
insert into <表名> (<字段名1>[,..<字段名n > ]) values (值1 [,(值n)]);
//例如:
insert into results (username,gender,team) values ("谢文东","男",5)
//备注:字段与要一一对应
② 删除表数据
//格式:
delete from 表名 where 表达式
//例如:
delete from results where id=5 //删除results表中id为5的数据
delete from results //删除results表中所有数据
③ 查询表中的数据
//格式:
select <字段1, 字段2, …> from < 表名 > where < 表达式 >
//例如:
select * from results //查看表results中的所有数据
select * from results order by id limit 0,4;//查看表results前4行数据
//备注:select一般配合where使用,以查询更精确更复杂的数据
④ 修改表中的数据。
//格式:
update 表名 set 字段=新值,… where 条件;
//例如:
update results set username='黄晓明' where id=2;
(2) 条件控制语句
① where语句
select * from results where id=1;
② 相关条件控制符
= 例:select * from results where username = '范冰冰'
> 例:select * from results where team > 4
< 例:select * from results where team < 4
<>(不等于) 例:select * from results where team <> 5
in(1,2,3...) 例:select * from results where id(字段) in(1,2)
between a and b 例:select * from results where team between 3 and 8
and 例:select * from results where team=5 and username='谢文东'
or 例:select * from results where team=5 or username='岳云鹏'
not 例:select * from results where not username='范冰冰'
like %匹配任意字符; _匹配一个字符(可以是汉字)
例:select * from results where username like '张%'
limit id,qty:数量控制
例:select * from results limit 1,4
is null (空值检测)
例:select * from results where team is null
order by
* asc 升序(默认)
* desc 降序
例:select * from results order by team asc
PHP操作数据库
(1) 连接数据库
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = 'user';
$conn = new mysqli($servername, $username, $password, $dbname); // 创建连接
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$conn->set_charset('utf8'); //查询前设置编码,防止输出乱码
echo "连接成功";
(2) 书写语句,执行语句
① 执行语句的代码:$res = $conn->query()
② 若执行的是增删改语句,$res的值为布尔值(insert, update, delete)
③ 若执行的是查询语句,得到查询结果集(对象)(select)
//例:
$res = $conn->query('select * from results') //查看表account中的所有数据
num_rows //结果集中的数量,用于判断是否查询到结果
fetch_all(MYSQLI_ASSOC) //得到所有结果
fetch_assoc() //得到第一个结果
fetch_row() //得到第一个结果,只能拿到值
④ 若是查询语句,记得释放查询结果集,避免资源浪费
$res->close();
⑤ 关闭数据库
$conn->close();
(3) 导入数据
①先在数据库建立好表,表的数据类型及编码都先定义好。再从其他文件导入进来
(4) 转储及运行数据库
①先创建同名的数据库,右键运行数据库,重新进入界面才会看到