夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> sql2016_sql2012_sql2015_sql2008
MYSQL教程:数据库具体操作
夜鹰教程网 来源:www.yyjcw.com 日期:2016-11-4 22:57:08
本文描述了连接数据库服务器、更新用户密码、MySQL读取配置文件的顺序、重设置MySQL管理员密码的方法、NULL值、使用SQL变量、改变默认提示符、非优化的全数据表DELETE操作、MySQL事务处理示例。

1. 连接数据库服务器
$ ./mysql -h host_name -u user_name -p

-h host_name(--host=host_name),连接的数据库主机名,如果在本地主机上则可省略。

-u user_name(--user=user_name),数据库用户名,在unix系统上,如果系统的登录名与数据用户名一样,则可省略。在windows系统中,可通过设置环境变量USER来给出数据库用户名,如set USER=username。

-p(--password),提供数据库用户密码,有该选项mysql就会提示你输入密码。输入的密码以星号显示,以确保安全。也可直接在-p后写上密码(-p和密码间不能有空格),但这不安全,不推荐。

连接成功后,mysql数据库服务器会显示一些欢迎信息。接着就可用mysql>use database_name命令打开指定的数据库。

本文由网页教学网(http://www.webjx.com)整理发布!转载请注明出处,谢谢!

   
$ ./mysql -h host_name -u user_name -p database_name命令可直接打开指定数据库。

2. 更新用户密码
mysql>update user set password=passowrd('your passowrd') where host='%';

刷新权限设置:mysql>flush privileges;

3. MySQL读取配置文件的顺序
my.cnf是MySQL数据库的配置文件,它存在多个地方,在/etc目录,数据目录和用户主目录都有。放在不同位置,里面的选项有不同的作用范围,下面是MySQL读取配置文件的顺序和作用。

mysql 读取配置文件的顺序:
/etc/my.cnf              Global options.
DATADIR/my.cnf           Server-specific options.
defaults-extra-file      The file specified with the --defaults-extra-file option.
~/.my.cnf                User-specific options.

4. 重设置MySQL管理员密码的方法
有时我们会因为设置原因或时间长了忘记了数据库管理员的密码,使得我们被关在MySQL服务器外。MySQL服务器提供了一种方法可使我们在服务器上重设密码。在windows和linux/unix平台上操作稍有不同,下面分别介绍:

Linux/Unix平台下:

用 % kill -TERM PID关闭服务器,用-TERM信息可使服务器在关闭前把内存中的数据写入磁盘。如果服务器没有响应,我们可用% kill -9 PID来强制删除进程,但不建议这样做。这时内存中的数据不会写入磁盘,造成数据不完整。如果你是用mysql_safe脚本启动MySQL服务器的,这个脚本会监控服务器的运行情况并在它被终止时重启服务器,所以如需关闭服务器,要先终止该进程,然后再真正终止mysqld进程。

使用--skip-grant-tables参数启动MySQL Server,这时MySQL服务器将不使用权限表对连接操作进行验证。你就可在不提供root密码的情况下连接上服务器,并获得root的权限。

% mysqld_safe --skip-grant-tables &

用以下命令登录服务器,并重设密码:

 % mysql -u root         #不用密码就可连接到服务器
mysql> use mysql
mysql> set password for 'root'@'localhost' = password('password');

   
修改MySQL服务器帐户密码有三种方式,你可参考本笔记中数据库日常管理一章中的相关内容。在这种环境下,使用mysaladmin修改密码好象不行,还是提示要输入密码。

关闭服务器,再用正常方式启动服务器。

windows平台下:

用管理员帐号登录服务器,关闭MySQL数据库服务器。

使用--skip-grant-tables参数启动服务器:

c:\mysql\bin>mysqld-nt --skip-grant-tables

重新打开一个console窗口,用mysql命令登录服务器设置root的新密码:

c:\mysql\bin>mysql
mysql> use mysql
mysql> set password for 'root'@'localhost' = password('password');

关闭服务器,再用正常方式启动服务器。

5. NULL值
NULL是空值,代表什么也没有。它不能与值进行比较操作和算术操作,也不能和NULL进行比较,因为两个空值比较是没有意义的。我们可用“is NULL” 或 “is not NULL”来判断是不空值。如:

mysql> select * from test where mytest is NULL;
mysql> select * from test where mytest is not NULL;

在MySQL3.23以后的版本有一个新的比较操作符“<=>”,它可对NULL值进行相等比较。如:

mysql> select * from test where mytest <=> UNLL;
mysql> select * from test where not (mytest <=>);

如果查询后排序中的数据中包含NULL,则从MySQL4.0.2开始,有NULL值的数据行总是出现在查询结果的开头,即使设置的desc参数。4.0.2以前版本,如果设置了asc,则出在查询结果的开头,如果设置了desc,则出现在查询结果的结尾。

本文由网页教学网(http://www.webjx.com)整理发布!转载请注明出处,谢谢!

6. 使用SQL变量
MySQL3.23.6以后的版本允许通过查询结果来设置变量,设置好的变量可在以后使用。变量用@name定义,赋值方式用@name:=value。下面是一个在查询语句中进行赋值和使用变量的例子:

mysql> select @name:=id from test where mytest="test";
mysql> select * from test where mytest=@name

7. 改变默认提示符
用mysql登录进数据库后,MySQL数据的默认提示符是“mysql”,我们可设置它根据用户打开的数据库名而变化,如:

mysql>prompt \d>\_
none>use test
test>use mysql
mysql>

prompt为设置命令,\d代表当前数据库,\_代表一个空格。

8. 非优化的全数据表DELETE操作
为了清空数据表,又需知道删除的行数和保持AUTO_INCREMENT序列的值,需用以下的删除语句:

# delete from table_name where 1;

9. MySQL事务处理示例
MYSQL高级特性 -- 事务处理下面以两个银行账户之间的转账为例子进行演示。要使用MySQL中的事务处理,首先需要创建使用事务表类型(如BDB = Berkeley DB或InnoDB)的表。

CREATE TABLE account (
account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
balance DOUBLE
) TYPE = InnoDB;


要在事务表上使用事务处理,必须要首先关闭自动提交:

SET AUTOCOMMIT = 0;

事务处理以BEGIN命令开始:

BEGIN;

现在mysql客户处在于服务器相关的事物上下文中。任何对事务表所做的改变在提交之前不会成为永久性的改变。

UPDATE ACCOUNT SET balance = 50.25 WHERE account_id = 1;
UPDATE ACCOUNT SET balance = 100.25 WHERE account_id = 2;

在做出所有的改变之后,使用COMMIT命令完成事务处理:

COMMIT;

当然,事务处理的真正优点是在执行第二条语句发生错误时体现出来的,若在提交前终止整个事务,可以进行回滚操作:

ROLLBACK;

下面是另一个例子,通过MYSQL直接进行数学运算:

SELECT @first := balance FROM account WHERE account_id = 1;
SELECT @second := balance FROM account WHERE account_id = 2;
UPDATE account SET balance = @first - 25.00 WHERE account_id = 1;
UPDATE account SET balance = @second + 25.00 WHERE account_id = 2;

除了COMMIT命令外,下列命令也会自动结束当前事务:

ALTER TABLE
BEGIN
CREATE INDEX
DROP DATABASE
DROP TABLE
LOCK TABLES
RENAME TABLE
TRUNCATE
UNLOCK TABLES

复制链接 网友评论 收藏本文 关闭此页
上一条: 关系数据库设计之基本规则--范式…  下一条: 在XP下安装SQL Server2000 清除安装暂挂…
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
牛人是怎样处理海量数据的
MYSQL与MSSQL UPDATE两表更新语法…
SQL SERVER常用日期函数的详解
随机查询ORDER BY NEWID()
批量插入数据 延时 SQL
用sql转换汉字为拼音
定时同步服务器上的数据
SQL Server 2008与SQL Server 200…
在XP下安装SQL Server2000 清除安…
SQL触发器实例
Mssql触发器学习例子之UPDATE触发…
两表连接的SQL语句
写一个HTML代码或C++代码分析器是…
分页存储过程!
普通行列转换 SQL(1)
  最近更新
SQL命令:增加字段、修改字段、修…
sql 中的 indexOf 与 lastIndexOf…
SQL中使用正则表达式提取或者过滤…
什么是BI?
Mongodb是一种比较常见的NOSQL数据…
SQL2008 提示评估期已过的解决方法…
存在属性(Directory, Compressed)…
属性不匹配directory,archive
sql2012安装图解教程
一条sql语句批量插入多条记录
sql2016下载
sql server2008 r2 密钥
sql2016安装密钥
sql2016安装图解教程
sql server 2012提示评估期已过的…

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3