PHP基础03(数据库,数据表)

1.虚拟主机的配置

将一台服务器划分为若干个“”小空间“”,每个空间放一个小网站,这个小网站具有所有的功能(www服务,ftp服务,email服务)
虚拟主机分类:
a.基于域名的虚拟主机.(一个ip上可以有n多个域名)【主要】
b.基于ip的虚拟主机(多个ip,也就是多个网卡)

NameVirtualHost命令,是配置基于域名的虚拟主机的命令之一
语法格式:NameVirtualHost[IP地址:]端口号

NameVirtualHost *:80 // 所有IP的80端口
Include conf/vhosts.conf // 虚拟主机的配置文件

vhost.conf的格式
//所有ip的80端口
ServerName www.baidu.com #服务器名称就是域名
DocumentRoot "E:\itcast" #网站根目录
DirectoryIndex index.html index.php index.htm #虚拟网站的首页文件名

*注意:重要,将#注释内容,单独放一行,不要写在Allow from all这样的后面

对目录配置权限:

Options Indexes
Order Allow,Deny
Allow From All

虚拟主机的配置高于主配置

2.一般的html中嵌入php,可以在文件的任何位置直接写php代码就好啊,但是这个文件你要保存为.php为后缀。

3.注意:
password()是MySQL的一个加密函数
md5()是PHP忠的一个加密函数

4.数据库操作

一、创建数据库
语法:Create Database [IF NOT EXISTS] db_name [CHARSET]
[CHARSET]设置数据库的字符集,如果不设置会用MySQL的默认字符集latin1;
eg: CREATE DATABASE IF NOT EXISTS db_user CHARSET utf8;
CREATE DATABASE db_user; // 默认使用字符集latin1;

如果设置CHARSET utf8
在sqladmin->操作->整理->可以看到utf8_general_ci

二、删除数据库
语法: DROP DATABASE [IF EXISTS] db_name;
[IF EXITST] 是可选项,如果存在,在进行删除,不会出现错的信息
eg:DROP DATABASE IF EXITST db_liaomaer; // 删除数据库db_liaomaer

三、更改数据库的字符集
eg:create database if not exists db_liao charset utf8; // 这个utf8就是字符集.默认是latin1,如果要修改默认的字符集
1.更改MySQL的默认字符集
位置:\phpStudy\MySQL\my.ini
客户端(Client Section):default-character-set=latin1;改为gbk或者utf8; // 最好是utf8
服务端(Server Section):default-character-set=latin1;改为gbk或者utf8; // 最好是utf8

*注意:如果通过这种方法修改默认,请重新启动MySQL

2.在MySQL客户端使用命令修改
ALTER DATABASE db_name DEFAULT CHARACTER SET gbk 或者utf8;

5.数据表的操作

数据库是文件夹,数据表是具体文件(像word表)

我们打开实质文件夹(数据库):看到有两个文件
db.opt(数据库的字符集设置)
news.frm()

一、显示数据库中的表
语法:USE db_name; // 首先选择数据库,对这个数据库操作
show tables; 或者 show tb_name FROM db_name; // 显示当前数据库中的表

二、创建数据表
语法结构:
CREATE TABLE tb_name(
列名1 猎德数据类型 猎德属性,
列名2 列的数据类型 列的属性,
列名3 列的数据类型 列的属性
);

eg: // *注意:这个text 数据类型可以存很长的长度的字符串 null 指的是可以为空 not null 指的是不能为空 addate 时间戳

CREATE TABLE tb_news(
id int not null auto_increment primary key,
title varchar(50) not null,
content text null,
addate int(16) not null
);

列的常用属性
(1)not null | null 指定列的只可以为空,还是不空,默认为nullm一般id字段不能为空
(2) DEFAULT default_value, 设置某个列的默认值,默认值可以是字符串或者数字。
eg: sex tinyint not null DEFAULT 1; // 默认是1

select Host from tb_user where User='root'; //

primary key : 主键索引。 主键索引必须给具有auto_increment属性的字段来添加。索引:相当于一本书的目录一样,通过目录查询要看的内容
id字段是每个数据表都必须有的字段,id字段必须具有着三个属性:not null ,auto_increment,private key

三、MySQL数据类型

整形、浮点型、字符型、文本型、日期型

mysql -uroot -proot;
show databases;
create databases if not exists db_gz charset utf8;
drop database if exists db_gz;
show tables;
create table tb_name(
id tinyint not null auto_increment private key,
title varchar(50),
addate int(16) default 0
); // *注意,命令行创建表的时候,需要有分行

show create table tb_01; // 显示创建这个tb_01的命令语句是什么.
describe tb_01; // 查看表的结构

a.修改数据表:
(表的结构)
语法:ALTER TABLE tb_name .....
提示:使用phpMyAdmin来修改

b.删除数据表
语法:DROP TABLE tb_name FROM db_name;

show命令:
显示MySQL主机的所有数据库:show databases;
显示某个数据库中的所有表格:show tables [FROM db_name]
显示某个数据库中表的创建语句:show create table tb_name;
显示某个数据库中表的结构:show table
describe tb_name; // 显示表的结构

整形、浮点型、字符型、文本型、日期型
一、整形:

tinyint: 最小整数,一个字节表示,-128~127
smallint
mediumint
int
bigint

二、浮点型:
单精度和双精度

Float: 可以精确到小数点后7位. m代表总长度,d代表小数数位; float(6, 2) 表示总长度为6位(不含小数点),小数位是2位.如1200.65
double:可以精确到小数点后15位

三、字符型:

char(M): 固定宽度 * 取值范围0-255个字符. 255个英文字符或者255个中文字符。如:新闻标题,帖子标题等.
char[10],假设我存了5个字符,其他的空间会用空格填充.
varchar(M): 自动伸缩型 * 取值范围 0-65535个字符.
varchar(10),假设我存了5个字节,它的长度应该是6,这里多出的1是字符的长度.

四、文本型:

tinytext:一个字节,0-255个字符
text:2个字节* 这个用的比较多

五、日期时间型:

Date:格式YYYY-MM-DD存储.如:2016-09-22
Time:格式YYYY-MM-DD HH:mm:ss存储
Timestamp:格式(总长度19个字符) YYYY-MM-DD HH:mm:ss

$addate = time(); //
Date("Y-m-d H:m:s");

*注意:>mysql -hlocalhost -uroot -proot 不要加;
*注意:windows 下的cmd.exe 默认字符集应该是gbk
因为MySQL的客户端默认字符集,应该是GBK,因此显示字符集应该改为gbk
我们在phpMyAdmin中可以看到 操作->整理:看到字符集
我们可以再命令行中输入:set names gbk;

只需要设置数据库中的字符集,数据表将继承数据库中的字符集

你可能感兴趣的:(PHP基础03(数据库,数据表))