• 1. 第9章 数据库操作基础
  • 2. 本章学习目标了解关系数据库MySQL。 掌握MySQL的安装和配置步骤。 掌握MySQL中的一些常用操作。 熟悉MySQL中常用查询语句
  • 3. mysql概述 作为一款优秀的开源软件,MySQL的功能不比那些价格昂贵的数据库差,是一个真正的多用户、多线程SQL数据库服务器,是比较流行的关系数据库。相对其他数据库而言,可以用16个字来概括MySQL,“短小精悍、功能齐全、运行极快、完全免费”。在重要的安全问题上,从Linux系统上移植过来的MySQL 更具备了其他数据库所无法比拟的优势。使用上也越来越人性化,有多款图形界面的支持,操作越来越简单。在中小型企业网、门户网的应用中占据了相当大的优势,甚至在大型项目的开发中,MySQL也能应对自如。
  • 4. MySQL的特点 (1)MySQL是一个关系数据库管理系统,把数据存储在表格中,使用标准的结构化查询语言——SQL进行访问数据库。 (2)MySQL是完全免费的,在网上可以任意下载,并且可以查看到它的源文件,进行必要的修改。 (3)MySQL服务器的功能齐全,运行的速度极快,十分可靠,有很好安全性。 (4)MySQL服务器在客户、服务器或嵌入系统中使用,是一个客户机服务器系统,能够支持多线程,支持多个不同的客户程序和管理工具。 SQL和MySQL的关系 SQL(Structured Query Language,结构化查询语言),与其说是一门语言,倒不如说是一种标准,数据库系统的工业标准。大多数的RDBMS 开发商的SQL都基于这个标准,虽然在有些地方并不是完全一样的,但这并不妨碍对SQL的学习和使用。
  • 5. 9.1 关系数据库及SQL MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器管理系统。 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。
  • 6. 关于MySQL有如下几点总结:(1) MySQL是一个数据库管理系统 (2) MySQL是一个关系数据库管理系统 (3) MySQL是开源的 (4) MySQL服务器是一个快速、可靠的和易于使用的数据库服务器  (5) MySQL服务器工作在客户/服务器或嵌入系统中  (6) 有大量的MySQL软件可以使用
  • 7. 9.2 在Windows上安装MySQL 实际操作安装MySql,并详细说明如何配置。
  • 8. 9.3 MySQL的常用操作9.3.1 设置环境变量 用户可以将MySql安装根目录下的bin子目录的绝对路径加入到windows的path环境变量中,这样的话就不用每次都在启动和连接数据库之前在命令行中执行命令设置path环境。(或者在安装的时候将MySQL的bin目录加入到windows path如图9-17)
  • 9. 9.3.2 启动MySQL数据库在上面设置环境变量的基础上,在命令行中输入如下命令,如果没有报错则启动成功。 mysqld-nt
  • 10. 9.3.3 连接mysql可以在命令行中输入如下命令连接mysql数据库 mysql -h主机地址 -u用户名 –p
  • 11. 9.3.4 退出mysql如果要退出mysql可以输入命令: myslq>exit;
  • 12. 数据库中的原始文件
  • 13. 如何启动、关闭mysql服务器 启动、停止MySQL服务器 启动、停止MySQL服务器的方法有两种: 系统服务器和 命令提示符 (dos): 1.通过系统服务器启动、停止MySQL 从“控制面板”“管理工具”中找到“服务”选项,在“名称”列中找到“MySQL”服务,单击右键,选择启动 如下图所示
  • 14. 2.在命令提示符下启动MySQL 选择“开始”/“运行”选项,输入“cmd”,进入DOS窗口,在命令提示符下输入如下指令: net start MySQL(启动)、 net stop MySQL(停止)
  • 15. 如何连接MySQL服务器 第一种方法 直接启动mysql在启动后的窗口中输入密码即可
  • 16. 第二种方法:采用命令 首先设置环境变量:在命令提示符中设置或者在windows的path中设置
  • 17. 其次启动mysql(可省略) 采用这种方式就不需要每次都在启动和连接数据库之前在命令行窗口中执行命令设置path环境变量了
  • 18. 最后连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 连接远程机器: mysql -h10.4.3.188 -uptsdb -p 等价写法 mysql --host=10.4.3.188 --user=ptsdb --password 连接本地机器: mysql -uroot -p 等价写法 mysql --user=root -p (注:u与root可以不用加空格,其它也一样) 下面对以上参数进行解释说明。 -u:用户名。 -h:MySQL所在服务器地址。 -p:用户密码。 输入完命令语句后,按下〈Enter〉键就进入到了MySQL数据库中。
  • 19. 第三种打开命令提示符,切换到C:\Program Files\MySQL\MySQL Server 5.0\bin
  • 20. 注意 用户在连接数据库时,如果只输入mysql也可以进入,但是这样用的是一个匿名用户登陆,虽然无需用户名、密码,就可以直接登录,但是非常不安全。最好使用文中提到的连接格式,养成良好的书写习惯。 如果密码在“-p”后直接给出,那么密码就是明文显示出来的,例如: MySQL –u root –h127.0.0.1 –p 123456 为了安全,我们可以输入p后就按〈Enter〉键,然后在一下行中再输入密码,这样输入的就是密文密码。
  • 21. 修改连接mysql的密码1.通过修改MYSQL数据库中MYSQL库的USER表就用普通的UPDATE语句就可以 mysql> 状态下输入 use mysql update user set password=password('新密码') where user='root'; 回显 Query OK, 0 rows affected (0.00 sec) Rows matched: 2 Changed: 0 Warnings: 0 mysql> 状态下输入 FLUSH PRIVILEGES; 回显 Query OK, 0 rows affected (0.00 sec) mysql> 状态下输入 quit 或exit 退出 sql
  • 22. 注意每个命令后都要加上一个分号 ";" mysql 才开始执行该行命令 而FLUSH PRIVILEGES指令会让已载入记忆体的 mysql 系统资料库更新 重起 mysql . 在更新 root 密码后,日后要与 MySQL 连线的方法为: mysql -uroot -p新密码
  • 23. 2.在命令行中使用如下命令 (注意不是mysql>提示符下)  C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -u root -p password 123456 接下来会提示 Enter password: 如果你是第一次登陆还没修改过密码,直接回车就可以了(以前初始密码是root的话输入root)。 这是 root 密码就修改成了 123456 。 不要使用下面这种格式,否则密码就修改成了 '123456' 这个8位字符,而不是6位的了。 C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -u root -p password '123456'     
  • 24. 忘记MYSQL密码的解决方案 1、net stop mysql 停止mysql服务 2、执行mysqld-nt --skip-grant-tables 这样启动,不需要密码就可以进入MySQL了 3、此时打开一个新的命令窗口,执行mysql,进入MySQL 4、修改root密码 use mysql update user set password=password('NEW PASSWORD') where user='root'; flush privileges; 5、在任务管理器里kill掉mysqld-nt进程 6、net start mysql 重启MySQL即可
  • 25. 9.3.5 增加用户添加一个用户并对所有数据库有查询、插入、修改、删除的权限。 mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "123";
  • 26. 9.3.5 删除授权mysql>revoke select,insert,update,delete on *.* from test1 ;
  • 27. 可省略@”%”不可省略localhost
  • 28. 9.3.6 备份数据库要备份在mysql中创建的某个数据库,在命令行中输入: mysqldump -h(ip) -uroot –p databasename > database.sql
  • 29. 9.3.7 恢复数据库恢复数据库的命令行如下: mysql -h(ip) -uroot –p databasename < database.sql
  • 30. 9.3.8 备份表将MySQL中的某个数据库中的表备份成文件,命令行如下: mysqldump -h(ip) -uroot –p databasename tablename > tablename.sql
  • 31. 9.3.9 恢复表如果要将备份好的表放入到某个数据库中,操作前需要先将原来的表删除,命令行如下: mysql -h(ip) -uroot -p databasename < tablename.sql
  • 32. 9.3.10 查看、创建、删除和选择数据库命令 mysql>show databases; Create database <数据库名>; Drop database <数据库名>; Use <数据库名>;
  • 33. 9.3.11 source导入命令例如将一个现有数据库文件扩展名是sql或者txt文件导入到mysql中,命令如下: mysql>source d:/mysql.sql;
  • 34. 9.4 常用查询的例子9.4.1 查询时间 查询当前系统的时间,查询命令如下,mysql>select now();
  • 35. 9.4.2 查询当前用户 查询当前是那个用户正在操作数据库,查询命令如下 mysql>select user();
  • 36. 9.4.3 查询数据库版本查询当前操作的数据库版本号,查询命令如下 mysql >select version();
  • 37. 9.4.4 查询当前使用的数据库查询当前正在操作的数据库,查询命令如下 mysql>select database();
  • 38. 9.4.5 使用AUTO_INCREMENT可以通过AUTO_INCREMENT属性为新的行产生唯一的标识,并且缺省的时候自动的分配标识,例如创建表person,表中的id是主健,让主键的属性使用AUTO_INCREMENT
  • 39. 9.4.6 列的最大值例如:选择title最大的记录, SELECT MAX(title) AS title FROM shop;
  • 40. 9.4.7 列的最大值:按组例如:得到每项物品中的最高价格记录,命令如下: SELECT title, MAX(price) AS price FROM shop GROUP BY title;
  • 41. 9.4.8 拥有某个字段的组间最大值的行例如:对每项物品,找出最贵价格的物品的经销商。 SELECT title, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.title = s2.title);
  • 42. 9.4.9 使用用户变量例如,要找出价格最高或最低的物品的,其方法如下: mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price;
  • 43. 9.5 小结 本章重点讲解了MySQL的安装与配置,并且介绍了MySQL常用操作,举例说明了一些常用的查询语句。