《2022年MySQL数据库学习 .pdf》由会员分享,可在线阅读,更多相关《2022年MySQL数据库学习 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一关于 SQL 的一些基本语法和常用命令1.MYSQL :中小企业大部分都是SQL SERVER 和 MYSQL,SQL SERVER是由微软公司开发的,它和IIs,asp 结合起来的运行效果非常不错,但是sql server 是需要付费的,而mysql 是完全免费的,一方面可以节约企业的开支,另一方面对于企业网站通过php 语言开发的情况使用mysql 运行效果更好。2.命 令 行 连 接mysql 。 Mysql h hostname u username p 回 车 后 继 续 输 入 密 码password:xxxx 连接成功之后会出现如下所示的界面:如果开启mysql 的主机和当前用
2、户登录的是同一台主机的话,那么可以将mysql 命令中的参数 h host 省略掉3.当打开了mysql 后,当想将mysql 关闭的时候,可以键入命令mysqlquit ,然后会显示界面上会显示bye 字符,意思是mysql 已经关闭了4.mysqlselect version(), current_date; 查看当前mysql 的版本信息和当前的日期,如下图所示:5结构化查询语言sql 后面都跟着一个分号6.命令行不区分大小写,在命令行中的mysql 命令同样也不区分大小写7.可以利用mysql 当做一个简单的计算器, 在 mysql 命令中,pi()会计算出pi 的取值,在 mysql
3、命令中,可以向写简单的算式一样写出命令行,然后计算结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 8.输出现在的系统时间:select now(); 9.查看当前服务器的登录用户名是谁,mysqlselect user(); 10.当前已经输入了一条命令的一部分,如果突然间,不想执行这一条命令了,那么可以回车后键入 c 命令,这样就取消了当前未完全输入的命令行的执行11.当进入一个服务器后,在选择某个具体的数据库之前,需要
4、先知道当前的服务器上面有哪些数据库文件,命令行mysqlshow databases; 会将当前服务器上所有的数据库文件给列出来12.比如想选择test 数据库,可以使用命令:mysqluse test,没有分号结尾,比较特殊的是这一条命令必须中的词use和 test 必须出现在命令行中的同一行里面,否则会出现错误名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 13.如果一个普通用户向管理员请求,请求允许访问某一个特定的数据库
5、,必须数据库的名字是 hospital,那么管理员为了使该用户获取相应的权限,那么管理员可以执行以下命令:Mysqlgrant all on hospital.* to ?mysql_usernamehostname ; 14.如果当前用户还没有登录服务器,用户已经知道该服务器上已经存在一个为mouth 的数据库,如果用户想访问这个数据库的话,可以键入以下的命令:Mysql h hostname u username p 数据库的名字,回车后继续键入服务器的密码:password:xxxx 15.当打开一个数据库后, 比如使用use命令打开或 按照 14 条中所述的形式打开数据库后,如果想查看
6、数据库中所包含的表,可以使用命令: show tables;来查看数据库中的表名16利用 create table 表明 (字段 1 类型 (长度 ),字段 2 类型 (长度 ),); 这样将创建一个表,表中的字段,字段的类型,以及字段的长度都是在()中指定的17.查看一个表中的所有字段的名称、类型等信息,利用以下命令:describe 表名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 18. 19.其他的向数据库中写入数据
7、,读取数据的操作,这里就不再赘述了,这些只要知道就可以了,在实际的程序操作中,用到的时候,查阅相关操作的命令形式就可以了。需要了解一下搜索的基本格式:select what_to_select from table_name where search_contion; 11.创建数据库用以下命令:create database database_name; 12.在数据库中创建表, create table table_name(字段名类型(长度), 字段名类型 (长度), ). 13.选择数据库,use database_name 14.显示数据库中的所有表的名字,show database
8、_name; 15.显示一个表的所有字段的信息及类型,describe table_name; 16.当我们创建了数据库,并且选择了数据库,然后在数据库中创建了一个表table_name 后,如果我们想向该表中插入数据时,可以使用load data 命令从一个txt 文件中读取信息,然后写入对应的表中。比如说表的名字是table_name,表中有四个字段col_1,col_2,col_3,col_4. 现在我们先创建一个txt 文件,比如该txt 文件名是file_name.txt 。文件内容大体是:Zhangjie 18 address phone Zhanggangshuai 20 add
9、ress phone Zhangzhengwei 22 address phone Load data local infile ?该文件的路径/file_name.txt into table table_name 这一行命令还没有结束,需要加上一些辅助选项,比如: -fields terminated by ?-lines terminated by ?rn ; Fields 这行是为了分开各个字段,lines 这行是为了分开每一行记录17.向表中插入一行记录,可以使用命令insert,记录会被插入到表的末尾Insert into table_name Values(字段 1 的值,字段2
10、 的值,字段3 的值 ,.); 18.删除一个表中的所有记录,可以使用命令:delete form table_name; 删除数据之后, 可以重新使用load data 或者 insert 命令重新写入数据。我们也可以通过这种方式修改表的记录信息。19.如果想只更改某个特定记录中某个字段的值,可以通过update 命令进行修改:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - Update table_name set 字段名
11、 =取值where 条件 ;20.select *from table_name where 条件 ; * 代表选择所有字段,也可以用select搜索特定的字段的取值21.在搜索条件中,如果想搜索时间在某个日期之后的,比如搜索生日的字段birthday在2011-8-9 之后的,可以将搜索条件设置为birhday= 2011-8-9在搜索条件中,可以包含多个搜索条件,各个搜索条件用AND,OR 进行连接22.如果想从一个表中选择某一个字段对应的完整信息,就是一整列,可以比如搜索table_name 中的字段colomn_1 对应的列的所有信息,可以使用命令:Select column_1 fr
12、om table_name; 在搜索的时候可以同时搜索多个字段,这几个字段之间用逗号隔开,比如:select column_1,column_2 from table_name; 23.如果在搜索某个字段时该字段对应的一列中有多个重复的取值,如果通过select 进行搜索,不想看到重复的取值时,可以在要搜索的字段前加上一个关键字distinct ,这样就不会出现重复的取值。24.在搜索出的结果中,如果相对结果进行排序,可以在select语句的最后加上order by 字段取值,这样就会对搜索出的结果按照order by 后的字段进行排序显示比如搜索姓名以及对应地址,并且按照地址进行排序,可以使
13、用命令:Select name,address from table_name order by address; 25.在对搜索记录进行排序的时候,只是用order by 进行搜索的时候一般是默认按照递增顺序,如果想按照递减的顺序排序,可以用:order by 字段名desc。这个 desc 关键字就是按照递减的顺序排序。26.确定某个字段的取值是不是NULL ,不能用普通的比较运算符,应该用IS NULL,IS NOT NULL. 27.YY-MM-DD,年月日格式是照样的时候,可以通过YEAR(),MONTH(),DAY(),分别提取出其中的 YY ,MM ,DD 用于运算或者其他用途2
14、8.order by asc,递增排序Order by desc,递减排序29.在 sql 中,模式匹配,匹配单个任意字符要用符号_,匹配任意多个字符要用到%。在搜索条件中要用到like ,而不能用 =。比如:Select * from table_name where name like ?z% ; 好像关键字like ,以及模式匹配字符_,%只能在搜索条件中使用。30.这里的匹配可以使用_和%这两个字符, 也可以使用正则表达式REGEXP , NOT REGEXP ,这里就先不介绍正则表达式的匹配了。学java 的时候学过正则表达式,用的时候自己查一下就行了。31.如果想查看一个表中一共有
15、多少条记录,可以使用:select count(*) from table_name; 如果一个字段对应的列中含有重复的取值,那么如果想将这些重复的取值看做是一组,我们只想知道这样的取值出现过多少次的话,那么可以这样写:Select 字段名称 , count(*) from table_name group by 字段名;32.查看当前选择的数据库,可以使用select database();33.对于 mysql 要执行的命令,还可以将这些命令写入一个批处理文件,然后通过mysql 执行这个批处理文件。34.选择出最大值,用max(字段名 ),比如想选择出price 字段对应列中的最大值,可
16、以使用: select max(price) as 要显示的名字from table_name; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 下面需要看的是:1.如何实现程序与数据库的连接,判断连接成功与否,相关的异常处理等2.如何在程序代码中嵌入sql 语言进行相应的操作3.如何将数据库中的内容通过视图进行显示4.现在的 mouth 数据库中的各个字段的定义不够明晰,意义太含糊,表述不清,在程序的开发过程中,可能会因引发
17、很多错误,应力图修改到精简但含义丰富的程度5.mfc 中标签页的创建,树状控件的使用,等等mfc 方面的知识6.总的来说,感觉不是很难,希望自己多多努力,尽快完成任务PDF 已经看到了第182 页二关于 CONNECTOR/ODBC 1.ODBC(Open Database Connectivity) ,开放式数据库连接性2.Connector/ODBC是一个描述mysql odbc 驱动程序mysql ab 产品系列的名称。也成为myODBC 驱动程序。3.myODBC 可用于 mySQL 支持的所有主要平台,如windows 95,98,Me,NT,2000,xp,2003 以及所有的 U
18、nix 操作系统4.开放式数据库连接性ODBC 是广泛接受的用于数据库访问的应用程序编程接口(API ) ,它基于针对数据库api 的 CLI (调用层接口)规范,并采用了结构化查询语言(SQL)作为其数据库访问语言。5.如下图所示,MyODBC 体系结构,也就是connector/odbc,包含五个部分。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 应用程序Application :它通过标准的ODBC API 来访问 M
19、ySQL 服务器上的数据库,并且对数据库进行操作。它不关心系统的配置, 数据库的位置、 存储方式, 仅需要知道数据源DSN(database source name )的名字就可以了。一般通过 ODBC 访问数据库的过程是:* 选择 MySQL 服务器与之连接* 提交要执行的sql 语句* 检索结果* 处理错误* 提交或回滚包含sql 语句的事务断开与 mysql 服务器的连接驱动管理器drive manager :驱动管理器是一个负责应用程序Application 和驱动程序Connector/ODBC 间进行通信的库。它的主要任务是:* 解析数据源名(DSN ) - 应用程序提供数据源的名
20、字,drive manager 负责解析,然后应用程序知晓了数据源的位置、存储方式等信息,然后进而可以对其进行访问* 加载和卸载驱动程序- 应用程序连接数据库的时候加载驱动程序,与服务器断开连接的时候卸载驱动程序* 处理 ODBC 调用,或将其传递给驱动程序MyODBC驱动程序( Connector/ODBC ): MyODBC 驱动程序是用于实施ODBC API 所提供功能的库,它负责处理ODBC 函数调用,将 SQL 请求提交给MySQL 服务器,并将结果返回给应用程序。如有必要,驱动程序会更改应用程序的请求,以便该请求符合MySQL 支持的语法。ODBC.INI: ODBC.INI是 O
21、DBC 配置文件,其中保存了连接到服务器所需要的驱动信息和数据库信息。驱动管理器将使用它来确定加载哪一个驱动程序(通过使用数据源名字)。驱动程序将根据指定的 dsn 使用它来读取连接参数。MySQL 服务器:MySQL 服务器是数据源。它是:一种数据库管理系统(DBMS ) ,database management system 一种关联数据库管理系统(RDBMS),Relational database management system 开放源码软件7.用户 dsn 和系统 dsn的区别,前者只能由一个用户访问,后者是使用此台计算机的所有用户均可以进行访问。8.学会在控制面板中配置数据源。
22、9.注意在 navicat premium 中,我们可以创建多个连接name1,name2,name3等等吧, 这多个连接都指向本机上的可用的数据库,就是说,当我们展开这些连接时,可以看到本机上存在的相同的数据库。10. 在 navicat premium 中创建的连接, 已经 mysql 命令连接后, 就可以访问该连接中包含的所有的数据库。在控制面板中创建的数据源,由于在配置的过程中制定了具体的数据库,所以,我们只能连接一个特定的数据库。11. 了解几个名词:ADO :ActiveX Data Object ActiveX数据对象名师资料总结 - - -精品资料欢迎下载 - - - - -
23、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - DAO :Data Access Object 数据访问对象RDO:Remote Data Object 远程数据对象12. ODBC 连接方法(必须先注册数据源-DSN ) :* 连接 access数据库Set conn = Server.CreateObject(ADODB.Connection) conn.Open DSN= 注册名 * 连接 SQL Server 数据库set conn=Server.CreateObject(ADO
24、DB.Connection) conn.connectionstring=DSN= 注册名 ;UID=sa;PWD=sa; conn.open 三关于Navicat Premium 1在 navicat premium 中除了通过视图的方式,手动创建数据库和表之外,我们也可以通过sql 语句,来实现对数据库的创建,这个在前面已经提到过了。Sql 语句命令在navicat premium 中的工具命令这个菜单项选中时可以执行。2.创建完数据库以及表后,我们可以将数据库的内容进行转储,转储后,如果我们想新建一个数据库, 但是数据库的内容是通过转储后的文件创建的,就是说, 新创建的数据库的内容与转储
25、文件中的内容是一样的,那么,很简单。可以在 navicat premium 中打开工具 命令,然后选择工具栏上的“载入”按钮,选择相应的文件,然后敲回车键,那么相应的命令就会被执行了。相应的数据库也就被创建了。四 MFC 连接 MySQL 数据库的方法1.摘要:关于MFC 连接 MySql 数据库的深入研究。步骤 /方法1.一、首先安装mysql:我这里用的版本是mysql-essential-5.1.45-win32.msi 。安装时遇到一个小问题在这里说一下:首次安装到最后一步启动服务时卡住了,电脑死机,我强制退出,结果不能正常运行,然后卸载重装,由于第一次设置了密码,即使卸载了文件依然存
26、在,所以第二次安装遇到设置密码时它出现要输入前一次设置的密码,在这里什么都不要输入,不然在最后一步会出错(我重装了好几次,才在baidu 上查到是这个问题) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 2.二、 VC6.0 的设置(1)打开 VC6.0 工具栏 Tools 菜单下的 Options 选项,在Directories 的标签页中右边的 Show directories for:下拉列表中选中Includefi
27、les,然后在中间列表框中添加你本地安装MySQL 的 include 目录路径。(我的是 D:Program FilesMySQLMySQL Server 5.0include) 。(2)在上面说到的Show directories for:下拉列表中选中Library files,然后添加你本地安装MySQL 的 Lib 目录路径。 Lib 目录下还有debug 和 opt 两个目录,建议选 debug。 (我的是D:Program FilesMySQLMySQL Server 5.0libdebug) 。(3)在 Project settings -Link:Object/library
28、 modules里面添加 libmysql.lib。(4)在你要连接数据库的文件里加入#include winsock.h 和#include mysql.h两个文件,这里要注意这两个头文件的顺序不要颠倒,否则会报错(这个问题害我baidu 了一个上午 )。3.三、数据库、表的创建打开 开始 -所有程序 -MySQL-MySQL Server 5.0-MySQL Command Line Client.exe,如果没有设置密码就直接按回车,会提示服务器启动成功。mysql SHOW DA TABASES;/ 显示所有的数据库,注意一定要敲; 后再按回车mysql CREATE DATABASE
29、 mydb;/创建数据库mydb mysql USE mydb;/ 选择你所创建的数据库mydb mysql SHOW TABLES; / 显示数据库中的表mysql CREATE TABLE mytable (username V ARCHAR(50), password VARCHAR(200),);/ 创建一个表mytable: 用户名;密码mysql DESCRIBE mytable;/ 显示表的结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - -
30、 - - - - - - - 4.四、 VC 编程MYSQL mysql; / 数据库连接句柄mysql_init (&mysql); if(!mysql_real_connect(&mysql,localhost,root,dxd,mydb,3306,NULL,0) /mydb 为你所创建的数据库,3306 为端口号,可自行设定AfxMessageBox( 数据库连接失败); return FALSE; 5.五、通过上述设置、连接即可对数据库操作了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
31、- - - 第 10 页,共 11 页 - - - - - - - - - 2.在 mfc 中的 CXXXSet 类中有一个连接数据库的默认连接,有两种方法进行连接,其中一种在参数中没有添加主机、用户名、密码, 这样每次程序连接数据库的时候,需要输入相关信息。 另一种是在参数中添加了主机、用户名、密码,这样每次连接的时候就不需要输入相关信息了。3.mfc 操作 mysql 数据库的代码写完了,而且在编译、连接的过程中都没有报错,但是在运行的时候出错了,出现一个断言错误,截图如下所示:这个问题是这么引起的,CXXXSet 类的构造函数中的对应数据库中列数的成员变量数,与m_nFields 的值,二者不一致。可以这么解决,自己数一下成员变量的数量或者列的数量,然后将m_nFields 的值改过来就行了。4. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -