MySQL入门
1. 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
2. 使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
3. RDBMS特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
4. RDBMS 术语
冗余:存储两倍数据,冗余可以使系统速度更快。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性
5. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL管理
6. 启动及关闭 MySQL服务器:
(1) 检查MySQL服务器是否启动:
ps -ef | grepmysqld
(2) 启动MySQL服务器:
root@host# cd/usr/bin
./safe_mysqld&
(3) 关闭目前运行的 MySQL 服务器:
root@host# cd/usr/bin
./mysqladmin-u root -p shutdown
Enterpassword: ******
7. MySQL 用户设置
在 MySQL 数据库中的 user 表添加新用户:
root@host# mysql -u root –p //选择数据库
Enter password:*******
mysql> use mysql;
Database changed
mysql> INSERT INTO user
(host, user, password,
select_priv, insert_priv,update_priv) //设置权限Y
VALUES ('localhost', 'guest',
PASSWORD('guest123'), 'Y', 'Y','Y');
Query OK, 1 row affected (0.20 sec)
mysql> FLUSH PRIVILEGES;
注意需要执行 FLUSH PRIVILEGES 语句。这个命令执行后会重新载入授权表。
另外一种添加用户的方法为通过SQL的 GRANT命令
mysql> GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON TUTORIALS.*
-> TO 'zara'@'localhost'
-> IDENTIFIED BY'zara123';
8. 管理MySQL的命令
USE 数据库名 :选择要操作的MySQL数据库:
mysql> use W3CSCHOOL;
Database changed
SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表:
mysql> SHOWDATABASES;
SHOW TABLES: 显示指定数据库所有表,用该命令前需用 use 命令选择操作的数据库。
mysql> useW3CSCHOOL;
Database changed
mysql> SHOW TABLES;
SHOW COLUMNS FROM 数据表:显示数据表的属性,属性类型,主键信息,是否NULL,默认值等其他信息。
mysql> SHOW COLUMNSFROM W3Cschool_tbl;
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
SHOW INDEX FROM 数据表:显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
SHOW TABLE STATUS LIKE 数据表\G: 该命令将输出MySQL数据库管理系统的性能及统计信息。
mysql> SHOW TABLESTATUS FROM W3CSCHOOL; # 显示数据库 W3CSCHOOL 中所有表的信息
mysql> SHOW TABLESTATUS from W3CSCHOOL LIKE 'W3Cschool%'; #表名以W3Cschool开头的表的信息
mysql> SHOW TABLESTATUS from W3CSCHOOL LIKE 'W3Cschool%'\G; #加上 \G,查询结果按列打印
9. PHP MySQL函数格式:mysql_function(value,value,...);
MySQL 连接
10.使用MySQL二进制方式连接
[root@host]# mysql -uroot -p
Enter password:******
登录成功后会出现mysql> 命令提示窗口,你可以在上面执行任何 SQL 语句。
退出 mysql> 命令提示窗口可以使用exit 命令:mysql> exit
11.使用 PHP脚本连接 MySQL
PHP 提供了 mysql_connect() 函数来连接数据库。
connectionmysql_connect(server,user,passwd,new_link,client_flag);5各参数均可选
使用PHP的mysql_close() 函数来断开与MySQL数据库的链接。
bool mysql_close (resource $link_identifier );
通常不要用mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。
mysql_close() 不会关闭由 mysql_pconnect() 建立的持久连接
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' .mysql_error());
}
echo 'Connected successfully';
mysql_close($conn);
MySQL 创建/删除数据库
12.使用 mysqladmin创建数据库
用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。
[root@host]#mysqladmin -u root -pcreate/drop W3CSCHOOL
Enter password:*****
13.使用 PHP脚本创建数据库
PHP使用 mysql_query 函数来创建或者删除 MySQL 数据库。
bool mysql_query( sql, connection);
$conn = mysql_connect($dbhost,$dbuser, $dbpass);
if(! $conn )
{
die('连接错误: ' . mysql_error());
}
echo '连接成功<br />';
$sql= 'CREATE/DROP DATABASE W3CSCHOOL';
$retval= mysql_query( $sql, $conn );
if(! $retval )
{
die('创建数据库失败: ' . mysql_error());
}
echo "数据库