文档章节

mysql常用操作

leolan
 leolan
发布于 2016/10/24 23:04
字数 3027
阅读 5
收藏 0
MySQL


#查看SHOW DATABASES;
#查看表 USE blog;SHOW TABLES;
#查看表中的列SHOW COLUMNS FROM auth_user;
或:DESCRIBE auth_user;
describe 表名 是 show columns from 表名 的一种快捷方式。

创建数据库
mysql > CREATE DATABASE 库名;
mysql > USE 库名;mysql > CREATE TABLE 表名 (字段名 VARCHAR ( 20 ), 字段名 CHAR ( 1 ));
例:
#创建表
use demo;
create table pet(
name varchar(20), #名字
owner varchar(20), #主人
species varchar(20), #种类
sex char(1), #性别
birth date, #出生日期
death date #死亡日期
)

为了验证你的表是按你期望的方式创建,使用一个DESCRIBE语句:
删除数据库:
mysql > DROP DATABASE 库名;
删除数据表:
mysql > DROP TABLE 表名;
将表中记录清空:
mysql > DELETE FROM 表名;
创建表(复杂形式):
# 创建customer表: create table customers( id int not null auto_increment, name char ( 20 ) not null , address char ( 50 ) null , city char ( 50 ) null , age int not null , love char ( 50 ) not null default 'No habbit' , primary key (id))engine = InnoDB;
#SELECT last_insert_id();这个函数可以获得返回最后一个auto_increment值. #默认值 default 'No habbit', #引擎类型,多为engine = InnoDB,如果省略了engine=语句,则使用默认的引擎(MyISAM)
 更改表结构:
#增加一列 alter table pet add des char ( 100 ) null ;#删除 alter table pet drop column des;
重命名表:
#重命名表rename table pet to animals;
 添加id字段
则可操作如下:
#添加id字段 alter table pet add id int not null primary key auto_increment first;


新安装默认密码为空 mysql -u root 即可进入,不要mysql -u root -p 进不去的
大于5.7的版本默认有随机密码,执行 cat /var/log/mysqld.log | grep password | grep 'root@localhost ' | awk -F 'root@localhost : ' '{print $2}'
查看密码
1.用root 进入mysql后
mysql>set password =password('你的密码');
mysql>flush privileges;
2.使用GRANT语句
mysql>grant all on *.* to 'root'@'localhost' IDENTIFIED BY '你的密码'with grant option ;
mysql>flush privileges;

3.进入mysql库修改user表
mysql>use mysql;
mysql>update user set password=password('你的密码') where user='root';
mysql>flush privileges;
设置数据库密码
$ mysql -u root -p> # (输入密码)> create user '用户名'@'localhost' identified by '密码';> grant all privileges on 库名.* to '用户名'@'localhost';> flush privileges;> exit;

二、修改mysql数据库密码
方法一:
使用phpmyadmin,直接修改Mysql库的user 表。或者使用Navicat for Mysql 直接修改连接属性。
方法二:使用mysqladmin
cd到mysql的bin文件夹,然后执行如下D:\Mysql\bin > mysqladmin - u root - p password newPwd#Enter password:(在此输入原密码)#newPwd指的是新密码
然后打开mysql 直接输入新密码即可
格式:mysqladmin -u用户名 -p旧密码 password 新密码。
忘记密码:
1.用root或者运行mysqld的用户登录系统;
2.利用kill命令结束掉mysqld的进程;
3.使用--skip-grant-tables参数启动MySQL Server
shell>mysqld_safe --skip-grant-tables &
UPDATE user SET password=PASSWORD("new password") WHERE user='root';
4.为root@localhost设置新密码
shell>mysqladmin -u root flush-privileges password "newpassword"
5.重启MySQL Server

【据说可以用直接修改user表文件的方法:
关闭MySQL,Windows下打开Mysql\data\mysql,有三个文件user.frm,user.MYD,user.MYI找个知道密码的MySQL,替换相应的这三个文件,如果user表结构没改过,一般也没人去改,替换user.MYD就可以了。
也可以直接编辑user.MYD,找个十六进制编辑器,UltraEdit就有这个功能。关闭MySQL,打开user.MYD。将用户名root后面的八个字符改为565491d704013245,新密码就是123456。或者将它们对应的十六进制数字,(左边那里,一个字符对应两个数字),改为 00 02 02 02 02 02 02 02,这就是空密码,在编辑器右边看到的都是星号*,看起来很象小数点。重开MySQL,输入root和你的新密码。】





看提示,PHP执行时看错误,是用mysql还是mysqli

语法
mysql_connect(servername,username,password);
参数 描述
servername 可选。规定要连接的服务器。默认是 "localhost:3306"。
username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
password 可选。规定登录所用的密码。默认是 ""。

语法
CREATE DATABASE database_name
为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令。
连接:
例子:
<?php
//在一个变量中 ($con) 存放了在脚本中供稍后使用的连接。如果连接失败,将执行 "die" 部分: $con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }

创建: // Create database
//创建了一个名为 "my_db" 的数据库: if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created"; }else { echo "Error creating database: " . mysql_error(); } // Create table in my_db database
//创建一个名为 "Persons" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":
//重要事项: 在创建表之前,必须首先选择数据库。通过 mysql_select_db() 函数选取数据库。
//注释: 当您创建 varchar 类型的数据库字段时,必须规定该字段的最大长度,例如:varchar(15)。 mysql_select_db("my_db", $con);$sql = "CREATE TABLE Persons (FirstName varchar(15),LastName varchar(15),Age int)";mysql_query($sql,$con);mysql_close($con); //提前关闭连接,请使用 mysql_close() 函数,不加此句则脚本结束后关闭。 ?>

MySQL 数据类型
下面的可使用的各种 MySQL 数据类型:
数值类型 描述
int(size)
smallint(size)
tinyint(size)
mediumint(size)
bigint(size)
仅支持整数。在 size 参数中规定数字的最大值。
decimal(size,d)
double(size,d)
float(size,d)
支持带有小数的数字。
在 size 参数中规定数字的最大值。在 d 参数中规定小数点右侧的数字的最大值。
文本数据类型 描述
char(size) 支持固定长度的字符串。(可包含字母、数字以及特殊符号)。
在 size 参数中规定固定长度。
varchar(size) 支持可变长度的字符串。(可包含字母、数字以及特殊符号)。
在 size 参数中规定最大长度。
tinytext 支持可变长度的字符串,最大长度是 255 个字符。
text
blob
支持可变长度的字符串,最大长度是 65535 个字符。
mediumtext
mediumblob
支持可变长度的字符串,最大长度是 16777215 个字符。
longtext
longblob
支持可变长度的字符串,最大长度是 4294967295 个字符。
日期数据类型 描述
date(yyyy-mm-dd)
datetime(yyyy-mm-dd hh:mm:ss)
timestamp(yyyymmddhhmmss)
time(hh:mm:ss)
支持日期或时间
杂项数据类型 描述
enum(value1,value2,ect) ENUM 是 ENUMERATED 列表的缩写。可以在括号中存放最多 65535 个值。
set SET 与 ENUM 相似。但是,SET 可拥有最多 64 个列表项目,并可存放不止一个 choice

主键和自动递增字段
每个表都应有一个主键字段。
主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。
主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。
下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新记录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。
例:
$sql = "CREATE TABLE Persons (personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID),FirstName varchar(15),LastName varchar(15),Age int)";mysql_query($sql,$con);

插入:
语法
INSERT INTO table_nameVALUES (value1, value2,....)
您还可以规定希望在其中插入数据的列:
INSERT INTO table_name (column1, column2,...)VALUES (value1, value2,....)
注释: SQL 语句对大小写不敏感。INSERT INTO 与 insert into 相同。
为了让 PHP 执行该语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 连接发送查询或命令。
例子
在前面的章节,我们创建了一个名为 "Persons" 的表,有三个列:"Firstname", "Lastname" 以及 "Age"。我们将在本例中使用同样的表。下面的例子向 "Persons" 表添加了两个新记录:
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("my_db", $con); mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')");mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', '33')"); mysql_close($con);?>

把来自表单的数据插入数据库
现在,我们创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。
这是这个 HTML 表单:
<html><body><form action="insert.php" method="post">Firstname: <input type="text" name="firstname" />Lastname: <input type="text" name="lastname" />Age: <input type="text" name="age" /><input type="submit" /></form></body></html>
当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。
下面是 "insert.php" 页面的代码:
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("my_db", $con);$sql="INSERT INTO Persons (FirstName, LastName, Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); }echo "1 record added";mysql_close($con)?>


修改:
UPDATE 语句用于中修改数据库表中的数据。
更新数据库中的数据
UPDATE 语句用于在数据库表中修改数据。
语法
UPDATE table_nameSET column_name = new_valueWHERE column_name = some_value
注释: SQL 对大小写不敏感。UPDATE 与 update 等效。
为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于向 SQL 连接发送查询和命令。
例子
稍早时,我们在本教程中创建了一个名为 "Persons" 的表。它看起来类似这样:
FirstName LastName Age
Peter Griffin 35
Glenn Quagmire 33
下面的例子更新 "Persons" 表的一些数据:
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("my_db", $con);mysql_query("UPDATE Persons SET Age = '36'WHERE FirstName = 'Peter' AND LastName = 'Griffin'");mysql_close($con);?>
在这次更新后,"Persons" 表格是这样的:
FirstName LastName Age
Peter Griffin 36
Glenn Quagmire 33

删除:
删除数据库中的数据
DELETE FROM 语句用于从数据库表中删除记录。
语法
DELETE FROM table_nameWHERE column_name = some_value
注释: SQL 对大小写不敏感。DELETE FROM 与 delete from 等效。
为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数。该函数用于向 SQL 连接发送查询和命令。
例子
稍早时,我们在本教程中创建了一个名为 "Persons" 的表。它看起来类似这样:
FirstName LastName Age
Peter Griffin 35
Glenn Quagmire 33
下面的例子删除 "Persons" 表中所有 LastName='Griffin' 的记录:
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("my_db", $con);mysql_query("DELETE FROM Persons WHERE LastName='Griffin'");mysql_close($con);?>
在这次删除之后,表是这样的:
FirstName LastName Age
Glenn Quagmire 33

查询:
SELECT 语句用于从数据库中选取数据。
从数据库表中选取数据
SELECT 语句用于从数据库中选取数据。
语法
SELECT column_name(s) FROM table_name
注释: SQL 语句对大小写不敏感。SELECT 与 select 等效。
为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 发送查询或命令。
例子
下面的例子选取存储在 "Persons" 表中的所有数据(* 字符选取表中所有数据):
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("my_db", $con);$result = mysql_query("SELECT * FROM Persons");while($row = mysql_fetch_array($result)) { echo $row['FirstName'] . " " . $row['LastName']; echo "<br />"; }mysql_close($con);?>
上面这个例子在 $result 变量中存放由 mysql_query() 函数返回的数据。接下来,我们使用 mysql_fetch_array() 函数以数组的形式从记录集返回第一行。每个随后对 mysql_fetch_array() 函数的调用都会返回记录集中的下一行。 while loop 语句会循环记录集中的所有记录。为了输出每行的值,我们使用了 PHP 的 $row 变量 ($row['FirstName'] 和 $row['LastName'])。
以上代码的输出:
Peter GriffinGlenn Quagmire
在 HTML 表格中显示结果
下面的例子选取的数据与上面的例子相同,但是将把数据显示在一个 HTML 表格中:
<?php$con = mysql_connect("localhost","peter","abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("my_db", $con);$result = mysql_query("SELECT * FROM Persons");echo "<table border='1'><tr><th>Firstname</th><th>Lastname</th></tr>";while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['FirstName'] . "</td>"; echo "<td>" . $row['LastName'] . "</td>"; echo "</tr>"; }echo "</table>";mysql_close($con);?>
以上代码的输出:
Firstname Lastname
Glenn Quagmire
Peter Griffin



个人学习笔记,不当之处还请指正。
----------不定期更新------------






































本文转载自:http://blog.csdn.net/lan842632/article/details/52843474

共有 人打赏支持
leolan
粉丝 1
博文 43
码字总数 74
作品 0
梅州
数据库MySql在python中的使用

  随着需要存储数据的结构不断复杂化,使用数据库来存储数据是一个必须面临的问题。那么应该如何在python中使用数据库?下面就在本篇博客中介绍一下在python中使用mysql。   首先,本博客...

码农47
02/05
0
0
《数据库 系列 》 - 目录

MySql 系列 《MySql 系列》- 数据库操作 《MySql 系列》- 常用函数 《MySql 系列》- 常用Sql SqlServer 系列 《SqlServer 系列》 - 函数 《SqlServer 系列》 - 事务已满处理 《SqlServer 系列...

Kimisme
01/03
3
0
MySQL命令操作(Linux平台)

Linux shell 批量创建数据库/表 Shell 脚本如下: # create database and tableHOST='localhost'PORT='3306'USER='root'PWD=''DBNAME='top123'TABLENAME='gametop800' mysql_login=''mysqlcr......

长平狐
2013/01/06
38
0
MySQL命令操作(Linux平台)

Linux shell 批量创建数据库/表 Shell 脚本如下: # create database and tableHOST='localhost'PORT='3306'USER='root'PWD=''DBNAME='top123'TABLENAME='gametop800' mysql_login=''mysqlcr......

晨曦之光
2012/03/02
211
0
开发环境迁移到Docker笔记

最近因为被苹果爸爸的新系统卡顿的恶心到吐,决定把开发系统迁移到win10,然后又把所有的开发环境docker化,docker大法好 这里记录下常用本地开发的常用的docker操作 一些常用操作 创建新的网络...

anoty
03/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
0
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
0
0
学习设计模式——中介者模式

1. 认识中介者模式 1. 定义:用一个中介对象来封装一系列的对象交互行为,中介者使得各对象不需要显式的互相引用,从而使其松散耦合,独立的改变他们之间的交互。 2. 结构: Mediator:中介者...

江左煤郎
昨天
0
0
深入理解Plasma(1):Plasma 框架

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章作为开篇,主要目的是理解 Plasma 框架。 Plasma 作为以太坊的二层扩容...

HiBlock
昨天
0
0
Java 8 日期 示例

Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。Java也意识到需...

阿刚ABC
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部