MySql学习笔记_第1页
MySql学习笔记_第2页
MySql学习笔记_第3页
MySql学习笔记_第4页
MySql学习笔记_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MySql学习笔记MySql概述:MySql是一个种关联数据库管理系统,所谓关联数据库就是将数据保存在不同的表中,而不是将所有数据放在一个大的仓库中。这样就增加了速度与提高了灵活性。并且MySql软件是一个开放源码软件。 注意,MySql所支持的TimeStamp的最大范围的问题,在32位机器上,支持的取值范围是年份最好不要超过2030年,然后如果在64位的机器上,年份可以达到2106年,而对于date、与datetime这两种类型,则没有关系,都可以表示到9999-12-31,所以这一点得注意下;还有,在安装MySql的时候,我们一般都选择Typical(典型安装)就可以了,当然,如果还有其

2、它用途的话,那最好选择Complete(完全安装);在安装过程中,一般的还会让你进行服务器类型的选择,分别有三种服务器类型的选择,(Developer(开发机)、Server Machine(服务器)、Dedicated MySql Server Machine(专用MYSQL服务器),选择哪种类型的服务器,只会对配置向导对内存等有影响,不然其它方面是没有什么影响的;所以,我们如果是开发者,选择开发机就可以啦;然后接下来,还会有数据库使用情况对话框的选择,我们只要按照默认就可以啦; 连接与断开服务器: 连接:在windows命令提示符下输入类似如下命令集:mysql h host u user

3、 p 例如,我在用的时候输入的是:mysql h localhost u root p 然后会提示要你输入用户密码,这个时候,如果你有密码的话,就输入密码敲回车,如果没有密码,直接敲回车,就可以进入到数据库客户端;连接远程主机上的mysql,可以用下面的命令:mysql h 159.0.45.1 u root p 123 断开服务器:在进入客户端后,你可以直接输入quit然后回车就可以了; 下面就数据库相关命令进行相关说明 你可以输入以下命令对数据库表格或者数据库进行相关操作,在这里就省略了,然后直接进行文字说明了; Select version(),current_date;/从服务器得到当

4、前mysql的版本号与当前日期 Select user(); /得到当前数据库的所有用户 Use databasename; 进入到指定的数据库当中,然后就可以操作这个数据库当中的表格了 Show databases; /查询目前数据库中所有的数据库,并且显示出来; Create batabase databasename;创建数据库,例如:create database manager; Show tables; /查看当前数据库中的所有表格; Create table tablename(colums);创建表,并且给表指定相关列,例如:create table pet(name varc

5、har(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date); Describe tablename;将表当中的所有信息详细显示出来,例如:describe pet; 可以用命令一次插入多条记录,例如: Insert into pet values(Puffball?,?Diane?,?hamster?,?f?,?1993-12-3?,null),( Puffball?,?Diane?,?hamster?,?f?,?1993-12-3?,now(); Select * from pet; 从pe

6、t表当中查询出所有的记录,显示出来; Delete from pet where id=1;删除ID为1的那一条记录; Update pet set birth=?2001-1-3? where name=?Bowser?;更新name为Bowser的记录当中的birth字段的值; Select distinct owner from pet;从pet表中选择出owner字段的值唯一的行,如果有多行记录这个字段的值相同,则只显示最后一次出现这一值的一行记录; 有关日期计算: Select name,birth,curdate(),(year(curdate()-year(birth) as a

7、ge from pet; 此处,year()函数用于提取对应字段的年份,当然类似的还有month(),day()等; 在mysql当中,sql语句可以使用like查询,可以用”_”配任何单个字符,用”%”配任意数目字符,并且SQL模式默认是忽略大小写,例如:select * from pet where name like %fy?; 当然也可以用正则表达式模式进行配。 同时在sql当中,也要注意分组函数、排序函数、统计函数等相关用法,在这里只列举一二; Select species,count(*) from pet group by speceis; Select * from pet o

8、rder by birth desc; 查询最大值的相关操作: Select max(age) from pet; 取前多少项记录,这个主要用于分页查询操作当中, Select * from pet order by birth desc limit 3;取前三条记录, Select * from pet order by birth desc limit 0,3;这个可以用于分页查询,limit后面的第一个参数,是起始位置,第二个参数是取记录条数; 有关创建表格自增长字段的写法: Create table person(id int(4) not null auto_increment,na

9、me char(20) not null,primary key (id); 修改表操作: 向表中增加字段:注意,在这个地方,如果是增加多个字段的时候,就要用括号括起来,不然会有问题,如果是单个字段的话,不用括号也没事; Alter table test add(address varchar(50) not null default xm?,email varchar(20) not null); 将表中某个字段的名字修改或者修改其对应的相关属性的时候,要用change对其进行操作; Alter table test change email email varchar(20) not nu

10、ll default zz?;/不修改字段名 Alter table test change email Email varchar(30) not null;/修改字段名称 删除表中字段: Alter table test drop email;/删除单个字段 Alter table test drop address,drop email;/删除多列 可以用Drop来取消主键与外键等,例如: Alter table test drop foreign key fk_symbol; 删除索引: Drop index index_name on table_name; 例如:drop inde

11、x t on test; 向表中插入记录:注意,当插入表中的记录并不是所有的字段的时候,应该要在前面列出字段名称才行,不然会报错; Insert into test(name) values(ltx?); Insert into test values(1,?ltx?); 也可以向表中同时插入多列值,如: Insert into test(name) values(ltx?),(hhy?),(xf?); 删除表中记录: Delete from test;/删除表中所有记录; Delete from test where id=1;/删除表中特定条件下的记录; 当要从一个表或者多个表当中查询出一

12、些字段然后把这些字段又要插入到另一个表当中的时候,可以用insert .select语法; Insert into testt(name) (select name from test where id=4); 从文件中读取行插入数据表中,可以用Load data infile语句; Load data infile test.txt? into table test; 可以用Describe语法进行获取有关列的信息; Describe test;/可以查看test表的所有信息,包括对应列字段的数据类型等; MySql事务处理相关语法; 开始一项新的事务:start transaction或者

13、begin transaction 提交事务:commit 事务回滚:rollback set autocommit true|false 语句可以禁用或启用默认的autocommit模式,只可用于当前连接; 例子: Start transaction; Update person set name=?LJB? where id=1; Commit | rollback; 数据库管理语句 修改用户密码:以root用户为例,则可以写成下面的;mysql u root p 旧密码 password 新密码 Mysql u root password 123;/将root用户的密码修改成123,由于

14、root用户开始的时候,是没有密码的,所以-p旧密码就省略了; 例如修改一个有密码的用户密码:mysql u ltx p 123 password 456; 增加一个用户test1,密码为abc,让他可以在任何时候主机上登陆,并对所有数据库有查询、插入、修改、删除的权限。 Grant select,insert,update,delete on *.* to test1”%” identified by abc?; 增加一个test2用户,密码为abc,让他只可以在localhost上登陆,并且可以对数据库进行查询、插入、修改、删除操作; Grant select,insert,update,

15、delete on mydb.* to test2localhost identified by abc?; 如果不想让用户test2有密码,可以再输入以下命令消掉密码: Grant select,insert,update,delete on mydb.* to test2localhost identified by “”; 备份数据库常用命令:mysqldump h host u username p dbname>保存路径与文件名 然后回车后,会让你输入用户密码,输入密码后,再回车就OK啦; Mysqldump hlocalhost uroot p test >E:dbte

16、st.sql 这一命令具体解释下: 这个命令就是备份test数据库,并且将备份的内容存储为test.sql文件,并且保存在E:db下面; 命令当中-p 前面的test是数据库名,然后在数据库名后面要跟上一个”>”,然后接下来,就是写要保存的位置与保存文件的文件名; 将备份好的数据库导入到数据库当中去:也就是运行.sql文件将数据库导入数据库当中去-> 首先你得创建数据库,然后运行如下命令:mysql hlocalhost uroot p linux<E:dbtest.sql然后回车,再输入密码就可以啦; 解释下上面的命令:linux是就要导入的数据库名字,然后后面要紧跟着“&

17、lt;”符号,然后后面就是要导入的数据库文件; 将数据库导出保存成XML文件、从XML文件导入数据到数据库: 导出表中数据:mysql X h hostName u userName p Pwd e “use DatabaseName;sql;” >xml文件名 或者用另外一种方式也行:mysqldump xml h hostName u userName p pwd dbName tableName /这一种只用于显示在当前的mysql客户端,不保存到文件当中; 相关说明:-X代表的是文件的格式是XML,然后-e一写不能掉,还有就是要用双引号将要操作的语句括起来;单引号不行; 例如:m

18、ysql X hlocalhost uroot p e “use test;select * from pet;”>E:dbout.xml 从XML文件导入数据到数据库: Insert into tableName values(1,load_file(filepath?); 例如:insert into pet values(1,load_file(“E:dbout.xml”); 查看数据库状态与查询进程: Show status;/查看状态 Show processlist;/查看进程 更改用户名,用以下命令: Update set user=”新名字” where user=”旧用

19、户名”; 给数据库用户设置管理员权限: Mysqladmin h host u username p pwd; 以root用户为例; Mysqladmin h localhost u root p 123; 存储过程与函数 存储程序和函数分别是用create procedure和create function语句,一个程序要么是一个程序要么是一个函数,使用call语句来调用程序,并且程序只能用输出变量传回值; 要想在MySql5.1中创建子程序,必须具有create routine权限,并且alter routine和execute权限被自动授予它的创建者; 创建存储过程: 首先声明分隔符,所

20、谓分隔符是指你通知mysql客户端你已经输入一个sql语句的字符或字符串符号,在这里我们就以“/”为分隔符; Delimiter 分隔符 如:delimiter / 再创建存储过程: Create procedure 存储过程名 ( ) 声明存储过程开始: begin 然后开始写存储过程体: Select * from pet; 结束存储过程: End;/ 刚刚的例子全部写出来,完整的代码就是: Delimiter / Create procedure spt () /注意,这个地方,存储过程名与括号之间要有个空格 Begin Select * from pet; End;/到这里,整个存储过

21、程就算写完啦 执行存储过程: Call 存储过程名 ();/ 如,我们执行刚刚创建的存储过程,就是: Call spt ();/ 需要说明的是存储过程名后面一定要加个空格,而后面那个括号,则是用于传送参数的参数列表;另外,我们创建存储过程完成后,也只是创建了,但是只有调用call 存储过程名 ();/后才算执行完毕,才能看到存储过程的结果; 有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。 一、连接MYSQL。 格式: mysql -h主机地址 -u用户名 ,p用户密码 1、例1:连接到本机上的MY

22、SQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样) 3、退出MYSQL命令: exit (回车) 二、修改密码。

23、 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令 mysqladmin -uroot -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、例2:再将root的密码改为djg345。 mysqladmin -uroot -pab12 password djg345 三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符) 格式:grant select on 数据库.* t

24、o 用户名登录主机 identified by "密码" 例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令: grant select,insert,update,delete on *.* to test1"%" Identified by "abc" 但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解

25、决办法见例2。 例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。 grant select,insert,update,delete on mydb.* to test2localhost identified by "abc" 如果你不想test2有密码,可以再打一个命令将密码消掉。 grant s

26、elect,insert,update,delete on mydb.* to test2localhost identified by "" (下篇) 在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。 一、操作技巧 1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。 2、你可以使用光标上下键调出以前的命令。但以前我用过

27、的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。 二、显示命令 1、显示数据库列表。 show databases; 刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。 2、显示库中的数据表: use mysql; ,打开库,学过FOXBASE的一定不会陌生吧 show tables; 3、显示数据表的结构: describe 表名; 4、建库: create database 库名; 5、建表: use 库名; create table 表名 (字段设定列表);

28、 6、删库和删表: drop database 库名; drop table 表名; 7、将表中记录清空: delete from 表名; 8、显示表中的记录: select * from 表名; 三、一个建库和建表以及插入数据的实例 drop database if exists school; /如果存在SCHOOL则删除 create database school; /建立库SCHOOL use school; /打开库SCHOOL create table teacher /建立表TEACHER ( id int(3) auto_increment not null primary key, name char(10) not null, address varchar(50) default '深圳', year date ); /建表结束 /以下为插入字段 insert into teacher values('','glchengang','深圳一中','1976-10-10'); insert into teacher values(''

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论