PHP Day 6

设计 Web 数据库

列(Column), 又称域或属性.

行(row), 也称为记录.

表中的标志列称为键(key), 一个键可以由不止一列组成. 主键(primary key)和外键(foreign key). 考虑要建模的实际对象, 避免保存冗余数据(避免 3 种更新不规则: 修改, 插入, 删除). 使用原子列值, 每行的每个属性只储存一个数据. 确认所选择的键是唯一的, 要有意义, 事先考虑需要询问数据库的问题. 避免空属性的设计.

Web 数据库架构, 暂不讨论.

—————————————————————

创建 Web 数据库(仅学习 MySQL 数据库)

登录 MySQL Monitor: $mysql -h hostname -u username -p

-h 希望连接的主机, 默认为本机(localhost)
-u 登录时的用户名(可以不是 root)
-p 提示需要密码

创建 root:
$mysql -u root
mysql> SET PASSWORD FOR ”@’localhost’ = PASSWORD(’newpwd’);
mysql> SET PASSWORD FOR ”@’host_name’ = PASSWORD(’newpwd’);

删除匿名用户:
mysql> DELETE FROM mysql.user WHERE Host=’localhost’ AND User=”;

创建数据库: mysql> create database dbname;
(注意, 不能忘记分号!)

创建用户(最少权限原则):
GRANT privileges [columns]
ON item
TO user_name [IDENTIFIED BY 'password']
[REQUIRE ssl_options]
[WITH [GRANT OPTION | limit_options] ]

用户权限(PMWD3rd P164), 管理员权限(PMWD3rd P164), 特别权限(ALL, USAGE).

收回权限:
REVOKE privileges [columns]
ON item
FROM user_name

使用指定数据库:
mysql> use dbname;
或者
$mysql -D dbname -h hostname -u username -p

—————————————————————

创建数据库表, 略过. :mrgreen:

—————————————————————

插入数据(INSERT):
INSERT LOW_PRIORITY DELAYED IGNORE [INTO] table [(column1, ...)] VALUES (value1, …);

注意: 会按顺序插入数据.
向指定列插入数据:
insert into tablename (column1, column2, …) values (’value1′, ‘value2′, …);
或者
insert into tablename set column1=’value1′, column2=’value2′, …;

将脚本插入数据库:
$mysql -h host -u username -p < name_insert.sql

—————————————————————

获取数据(SELECT):
略过. :mrgreen:

—————————————————————

更新数据库记录:
UPDATE

创建后修改表:
ALTER TABLE

删除:
DELETE
DROP

–eof–


Save This Page

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*