必备 MySQL 数据库(关系型数据库管理系统)二

创建和删除用户

  1. 创建用户

使用create语句创建用户:

create user 'username'@'host' idendified by 'password';

username表示为创建的用户名,host指定该用户在哪个主机上可以登录。

create user 'test1'@'localhost' idendified by '1234';

create user 'test3'@'122.xxx' idendified by '1234';

用户删除

使用drop语句可以删除用户,语法格式:

drop user 'username'@'host';

示例如下:

drop user 'test1'@'localhost';

授予与回收用户权限

授予用户权限

grant语句可以对用户进行授权:

grant privileges on dbname.tablename TO 'username'@'host';

  1. privileges表示要授予用户的操作权限。

grant select, insert on mysql.test TO 'test1'@'%';

表示授权用户test1在所有登录主机均对mysql库的test表拥有selectinsert权限。

grant all on *.* TO 'test2'@'localhost';

表示授权用户test2在本地主机数据库的所有库的所有表拥有所有权限。

回收用户权限

使用revoke语句可以对权限进行回收。

revoke privileges on databasename.tablename from 'username'@'host';

示例:

revoke select on *.* from 'test2'@'localhost';

设置与更改用户密码

使用mysql所提供的密码设置与更改语句,语法格式:

set password for 'username'@'host' = password('newpassword');

  1. username表示要设置或更改密码的用户名;

  2. host指定该用户的登录主机;

  3. newpassword表示要设置或更改的密码。

示例:

set password for 'test1'@'localhost' = password('12345');

什么是数据库

数据库是按照数据结构来组织,存储和管理数据的仓库。每个数据库都有一个或多个不同的api用于创建,访问,管理,搜索,复制所保存的数据。

将数据存储在文件中,但是在文件中读写数据速度相对较慢。

术语

  1. 数据库是一些关联表的集合。

  2. 数据表是数据的矩阵。

  3. 列,一列包含了相同类型的数据。

  4. 行,一行是一组相关的数据。

  5. 冗余,存储两倍数据,冗余降低了性能,但提高了数据的安全性。

  6. 主键,是唯一的,一个数据表中只能包含一个主键。

  7. 外键,用于关联两个表。

  8. 复合键,将多个列作为一个索引键,一般用于复合索引。

  9. 索引,使用索引可以快速访问数据库中的特定信息。

  10. 参照完整性,参照的完整性要求关系中不允许引用不存在的实体。

一个关系型数据库由一个或数个表格组成:表头,行,列,键,值。

表头为每一列的名称,列为具有相同数据类型的数据的集合,行为每一行用来描述某条记录的具体信息,值为行的具体信息,每个值必须与该列的数据类型相同,键的值在当前列中具有唯一性。

MySQL 下载地址为: MySQL 下载

https://dev.mysql.com/downloads/mysql/

安装 MySQL

https://dev.mysql.com/downloads/repo/yum/

Mysql安装成功后,默认的root用户密码为空,可以使用以下命令来创建root用户的密码:

[root@host]# mysqladmin -u root password "new_password";

登录 Mysql

命令行:mysql -h 主机名 -u 用户名 -p

运行 mysql 服务:

mysql -h localhost -u root -p

MySQL PHP 语法

PHP Mysqli 函数格式如下:

mysqli_function(value,value,...);

mysqli_connect($connect);

mysqli_query($connect,"SQL 语句");

mysqlifetcharray()

mysqli_close()

使用 PHP 脚本连接 MySQL

mysqli_connect() 函数来连接数据库

语法:

mysqli_connect(host,username,password,dbname,port,socket);

参数说明:

  1. host为主机或ip地址;

  2. usernamemysql用户名;

  3. passwordmysql密码;

  4. dbname为默认使用的数据库;

  5. port尝试连接到mysql服务器的端口号;

语法:

bool mysqli_close ( mysqli $link )

连接mysql服务器:

<?php

$dbhost = 'localhost'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('Could not connect: ' . mysqli_error());

}

echo '数据库连接成功!';

mysqli_close($conn);

?>

mysql创建数据库

使用create命令创建数据库,语法:

create database 数据库名;

使用 php 脚本创建数据库

语法:mysqli_query(connection,query,resultmode);

  1. connection为要使用的mysql连接;

  2. query为查询字符串;

  3. resultmode一个常量,值MYSQLI_USE_RESULTMYSQLISTORERESULT

使用 PHP 来创建一个数据库

代码:

<?php

$dbhost = 'localhost'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('连接错误: ' . mysqli_error($conn));

}

echo '连接成功<br />';

$sql = 'create database web';

$retval = mysqli_query($conn,$sql );

if(! $retval )

{

die('创建数据库失败: ' . mysqli_error($conn));

}

echo "数据库 web 创建成功\n";

mysqli_close($conn);

?>

drop 命令删除数据库

drop命令格式:

drop database <数据库名>;

使用 php 脚本删除数据库

语法

mysqli_query(connection,query,resultmode);

使用PHP mysqli_query函数来删除数据库:

删除数据库:

<?php

$dbhost = 'localhost:3306'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('连接失败: ' . mysqli_error($conn));

}

echo '连接成功<br />';

$sql = 'DROP DATABASE web';

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die('删除数据库失败: ' . mysqli_error($conn));

}

echo "数据库 web 删除成功\n";

mysqli_close($conn);

?>

使用 PHP 脚本选择 MySQL 数据库

使用函数mysqli_select_db来获取一个数据库

语法:

mysqli_select_db(connection,dbname);

示例:

mysqli_select_db函数来选取一个数据库:

选择数据库

<?php

$dbhost = 'localhost:3306'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('连接失败: ' . mysqli_error($conn));

}

echo '连接成功';

mysqliselectdb($conn, 'web' );

mysqli_close($conn);

?>

MySQL 数据类型

mysql支持多种类型,分三类:

  1. 数值;

  2. 日期/时间;

  3. 字符串类型。

MySQL 5.0 以上的版本

1、一个汉字占多少长度与编码有关:

UTF-8:一个汉字=3个字节

GBK:一个汉字=2个字节

2、varchar(n) 表示 n 个字符,无论汉字和英文,Mysql 都能存入 n 个字符,仅是实际字节长度有所区别

3、MySQL 检查长度,可用 SQL 语言来查看

MySQL 创建数据表

  1. 表名

  2. 表字段名

  3. 定义每个表字段

语法:

创建mysql数据表的sql语法。

CREATE TABLE table_name (column_name column_type);

在数据库中创建数据表:

create table if not exists table_tb (

table_id int unsigned auto_increment,

table_title varchar(100) not null,

table_author varchar(40) not null,

table_date date,

primary key (table_id)

)engine=InnoDB default charset = utf8;

注意:在auto_increment定义列为自增的属性,一般用于主键,数值会自动加 1,。engine 设置存储引擎,charset 设置编码。

创建数据表

代码:

<?php

$dbhost = 'localhost:3306'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('连接失败: ' . mysqli_error($conn));

}

echo '连接成功<br />';

$sql = "create table table_tbl( ".

"tableid int not null autoincrement, ".

"table_title varchar(100) not null, ".

"table_author varchar(40) not null, ".

"submission_date DATE, ".

"primary key ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; ";

mysqliselectdb( $conn, 'RUNOOB' );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die('数据表创建失败: ' . mysqli_error($conn));

}

echo "数据表创建成功\n";

mysqli_close($conn);

?>

MySQL 字段属性应该尽量设置为 NOT NULL

首先,考虑空值“”和 null 的概念:

  1. 空值是不占用空间的

  2. mysqlnull其实是占用空间的

MySQL 删除数据表

语法,删除mysql数据表的语法:

drop table table_name;

使用 PHP 脚本删除数据表

语法:

mysqli_query(connection,query,resultmode);

使用了 PHP 脚本删除数据表:

<?php

$dbhost = 'localhost:3306'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('连接失败: ' . mysqli_error($conn));

}

echo '连接成功<br />';

$sql = "drop table table_tb1";

mysqliselectdb( $conn, 'web' );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die('数据表删除失败: ' . mysqli_error($conn));

}

echo "数据表删除成功\n";

mysqli_close($conn);

?>

MySQL 插入数据

mysql数据表插入数据通用insert into语法:

insert into table_name(field1,field2,...fieldN)

values

(value1,value2,...valueN);

添加数据

代码:

<?php

$dbhost = 'localhost:3306'; // mysql 服务器主机地址

$dbuser = 'root'; // mysql 用户名

$dbpass = '123456'; // mysql 用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die('连接失败: ' . mysqli_error($conn));

}

echo '连接成功<br />';

// 设置编码,防止中文乱码

mysqli_query($conn , "set names utf8");

$table_title = '学习';

$table_author = 'web';

$submission_date = '2018-03-06';

$sql = "insert into table_tbl ".

"(tabletitle,tableauthor, submission_date) ".

"values ".

"('$tabletitle','$tableauthor','$submission_date')";

mysqliselectdb( $conn, 'web' );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die('无法插入数据: ' . mysqli_error($conn));

}

echo "数据插入成功\n";

mysqli_close($conn);

?>

INSERT 插入多条数据

INSERT INTO table_name (field1, field2,...fieldN) VALUES (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值