mysql 快速入门.docx
- 文档编号:25395471
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:40
- 大小:36.83KB
mysql 快速入门.docx
《mysql 快速入门.docx》由会员分享,可在线阅读,更多相关《mysql 快速入门.docx(40页珍藏版)》请在冰豆网上搜索。
mysql快速入门
一.入门基础
1.连接MYSQL:
格式:
mysql-h主机地址-u用户名-p用户密码
1.1、例1:
连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:
mysql>
1.2、例2:
连接到远程主机上的MYSQL。
假设远程主机的IP为:
110.110.110.110,用户名为root,密码为abcd123。
则键入以下命令:
mysql-h110.110.110.110-uroot-pabcd123
(注:
u与root可以不用加空格,其它也一样)
1.3、退出MYSQL命令:
exit(回车)
2.修改密码
格式:
mysqladmin-u用户名-p旧密码password新密码
2.1、例1:
给root加个密码ab12。
首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin-uroot-passwordab12
注:
因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2.2、例2:
再将root的密码改为djg345。
mysqladmin-uroot-pab12passworddjg345
3.增加新用户
格式:
grantselecton数据库.*to用户名@登录主机identifiedby"密码"
3.1例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先用以root用户连入MYSQL,然后键入以下命令:
grantselect,insert,update,deleteon*.*totest1@"%"Identifiedby"abc";
3.2 例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法:
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby"abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby"";
4.查阅版本
1mysql>selectversion(),current_date();
2+----------------+-----------------+
3|version()|current_date()|
4+----------------+-----------------+
5|3.23.25a-debug|2001-05-17|
6+----------------+-----------------+
71rowinset(0.01sec)
8mysql>
此命令要求mysql服务器告诉你它的版本号和当前日期。
尝试用不同大小写操作上述命令,看结果如何。
结果说明mysql命令的大小写结果是一致的。
练习如下操作:
1mysql>Select(20+5)*4;
2mysql>Select(20+5)*4,sin(pi()/3);
3mysql>Select(20+5)*4ASResult,sin(pi()/3);(AS:
指定假名为Result)
5.一条命令可以分成多行输入,直到出现分号“;”为止:
1mysql>select
2->USER()
3->,
4->now()
5->;
6+--------------------+---------------------+
7|USER()|now()|
8+--------------------+---------------------+
9|ODBC@localhost|2001-05-172215|
10+--------------------+---------------------+
111rowinset(0.06sec)
12mysql>
13注意中间的逗号和最后的分号的使用方法。
6.一行多条命令
1输入如下命令:
2mysql>SelectUSER();SelectNOW();
3+------------------+
4|USER()|
5+------------------+
6|ODBC@localhost|
7+------------------+
81rowinset(0.00sec)
9
10+---------------------+
11|NOW()|
12+---------------------+
13|2001-05-1723:
06:
15|
14+---------------------+
151rowinset(0.00sec)
16mysql>
17注意中间的分号,命令之间用分号隔开。
7.显示当前存在的数据库
使用SHOW语句找出在服务器上当前存在什么数据库:
1mysql>showdatabases;
2+----------+
3|Database|
4+----------+
5|mysql|
6|test|
7+----------+
82rowinset(0.06sec)
9mysql>
7.选择数据库并显示当前选择的数据库
1mysql>USEmysql
2Databasechanged
3mysql>
4(USE和QUIT命令不需要分号结束。
)
5mysql>selectdatabase();
6+---------------+
7|database()|
8+---------------+
9|mysql|
10+---------------+
111rowinset(0.00sec)
8.显示当前数据库中存在的表
1mysql>SHOWTABLES;
9.显示表(db)的内容
1mysql>select*fromdb;
10.命令的取消
当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用c来取消该条命令
1mysql>select
2->user()
3->c
4mysql>
11.创建一个数据库abccs
1mysql>CreateDATABASEabccs;
2注意不同操作系统对大小写的敏感。
12.显示表的结构:
1mysql>DESCRIBEmytable;
2+-------------+-------------+------+-----+---------+-------+
3|Field|Type|Null|Key|Default|Extra|
4+-------------+-------------+------+-----+---------+-------+
5|name|varchar(20)|YES||NULL||
6|sex|char
(1)|YES||NULL||
7|birth|date|YES||NULL||
8|deathaddr|varchar(20)|YES||NULL||
9+-------------+-------------+------+-----+---------+-------+
104rowsinset(0.00sec)
二.基本操作
1.创建,删除和最基本查询:
1显示数据库mysql->showdatabases;
2创建数据库mysql->createdatabasedb;
3删除数据库 mysql->dropdatabasedb;
4选择数据库mysql->usedb;此时你已经进入你刚才所建立的数据库db
5创建表mysql->createtablemytable(namevarchar(20),sex(char
(1),birthdate);
6删除表 mysql->droptablemytable;
7显示表的内容mysql->showtables;
8显示表的结构mysql->describemytable;
2.对列的操作
1在一个表中增加一条字段mysql->altertableyourtableaddnamevarchar(20)notnull;
2删除一个字段mysql->altertableyourtabledropname;
3.选择特定列
假如你想查看表中的所有人的姓名,则可以这样操作:
mysql>SelectnameFROMmytable;
+----------+
|name|
+----------+
|abccs|
|mary|
|tom|
+----------+
3rowinset(0.00sec)
如果想列出姓名和性别两列,则可以用逗号将关键词name和birth分开:
myaql>selectname,birthfrommytable;
3.对行的操作
1插入一条记录mysql->insertintomytablevalues('summer','m','1983-08-24');
2删除一条记录mysql->deletefrommytablewherename='summer';
3修改一条记录mysql->updatemytablesetsex='vm'wherename='summer';
4插入多条记录mysql->insertintomytableselect*fromyourtable;(这种形式的INSERT语句中,新行的数据值不是在语句正文中明确地指定的.而是语句中指定的一个数据库查询.该查询的逻辑限制:
»查询不能含有ORDERBY子句.»查询结果应含有与INSERT语句中列数目相同的列,且数据类型必须逐列兼容.)
4.在查询结果中显示列名
1用as关键字:
selectnameas'姓名'fromstudentsorderbyage
2直接表示:
selectname'姓名'fromstudentsorderbyage
5.精确查找
1用in限定范围:
select*fromstudentswherenativein('湖南','四川')
2用between...and:
select*fromstudentswhereagebetween20and30
3用比较测试符:
(包括=,<>,<,<=,>,>=)select*fromstudentswherename='李山'
4用like:
select*fromstudentswherenamelike'李%'(注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。
所以若查询有“李”的所有对象,应该命令:
'%李%';若是第二个字为李,则应为'_李%'或'_李'或'_李_'。
)
5用[]匹配检查符:
select*fromcourseswherecnolike'[AC]%'(表示或的关系,与"in(...)"类似,而且"[]"可以表示范围,如:
select*fromcourseswherecnolike'[A-C]%')注:
关于这个字符我在mysql里用的时候mysql把它当两个普通自符处理的。
6[^]stocknamelike'[^F-M]%'---------(^排除指定范围)
6.
1count()求总数,如:
selectcount(*)fromstudents(求学生总人数)
2avg(列)求平均,如:
selectavg(mark)fromgradeswherecno=’B2’
3max(列)和min(列),求最大与最小
7.用文本方式将数据装入一个数据库表
如果一条一条地输入,很麻烦。
我们可以用文本文件的方式将所有记录加入你的数据库表中。
创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在
CreateTABLE语句中列出的列次序给出,例如:
abccsf1977-07-07china
maryf1978-12-12usa
tomm1970-09-02usa
使用下面命令将文本文件“mytable.txt”装载到mytable表中:
1mysql>LOADDATALOCALINFILE"mytable.txt"INTOTABLEpet;
再使用如下命令看看是否已将数据输入到数据库表中:
1mysql>select*frommytable;
8.对行进行排序
1我们可以对表中的记录按生日大小进行排序:
2mysql>Selectname,birthFROMmytableorDERBYbirth;
3+----------+------------+
4|name|birth|
5+----------+------------+
6|tom|1973-09-02|
7|abccs|1977-07-07|
8|mary|1978-12-12|
9+----------+------------+
103rowinset(0.00sec)
11
12我们可以用DESC来进行逆序排序:
13mysql>Selectname,birthFROMmytableorDERBYbirthDESC;
14+----------+------------+
15|name|birth|
16+----------+------------+
17|mary|1978-12-12|
18|abccs|1977-07-07|
19|tom|1973-09-02|
20+----------+------------+
213rowinset(0.00sec)
9.行计数
1数据库经常要统计一些数据,如表中员工的数目,我们就要用到行计数函数COUNT()。
2COUNT()函数用于对非NULL结果的记录进行计数:
3mysql>SelectCOUNT(*)FROMmytable;
4+----------+
5|COUNT(*)|
6+----------+
7|3|
8+----------+
91rowinset(0.06sec)
10
11员工中男女数量:
12mysql>Selectsex,COUNT(*)FROMmytableGROUPBYsex;
13+------+----------+
14|sex|COUNT(*)|
15+------+----------+
16|f|2|
17|m|1|
18+------+----------+
192rowinset(0.00sec)
20
21注意我们使用了GROUPBY对SEX进行了分组。
10.多表查询
1假如我们有两个表:
mytable和title。
利用这两个表我们可以进行组合查询:
2例如我们要查询作者abccs的姓名、性别、文章:
3mysql>Selectname,sex,titleFROMmytable,title
4->Wherename=writerANDname='abccs';
5+-------+------+-------+
6|name|sex|title|
7+-------+------+-------+
8|abccs|f|a1|
9|abccs|f|a2|
10+-------+------+-------+
11
12上面例子中,由于作者姓名、性别、文章记录在两个不同表内,因此必须使用组合来进行查询。
必须要指定一个表中的记录如何与其它表中的记录进行匹配。
13注意:
如果第二个表title中的writer列也取名为name(与mytable表中的name列相同)而不是writer时,就必须用mytable.name和title.name表示,以示区别。
14
15再举一个例子,用于查询文章a2的作者、出生地和出生日期:
16mysql>selecttitle,writer,birthaddr,birthfrommytable,title
17->wheremytable.name=title.writerandtitle='a2';
18+-------+--------+-----------+------------+
19|title|writer|birthaddr|birth|
20+-------+--------+-----------+------------+
21|a2|abccs|china|1977-07-07|
22+-------+--------+-----------+------------+
11.数据库的备份:
退回到DOS:
1mysql>quit
2d:
mysqlbin
3使用如下命令对数据库abccs进行备份:
4mysqldump--optabccs>abccs.dbb
5abccs.dbb就是你的数据库abccs的备份文件。
12.用批处理方式使用MySQL:
1首先建立一个批处理文件mytest.sql,内容如下:
2useabccs;
3select*frommytable;
4selectname,sexfrommytablewherename='abccs';
5
6在DOS下运行如下命令:
7d:
mysqlbinmysql 8在屏幕上会显示执行结果。 9 10如果想看结果,而输出结果很多,则可以用这样的命令: 11mysql 12 13我们还可以将结果输出到一个文件中: 14mysql 三.Mysql存储过程 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。 它可以有SQL语句和一些特殊的控制结构组成。 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。 数据库中的存储过程可以看做是对编程中面向对象方法的模拟。 它允许控制数据的访问方式。 1.MySQL存储过程的创建 MySQL存储过程创建的格式: CREATEPROCEDURE 过程名 ([过程参数[,...]]) [特性 ...] 过程体 如: 1mysql>DELIMITER// 2mysql>CREATEPROCEDUREproc1(OUTsint) 3->BEGIN 4->SELECTCOUNT(*)INTOsFROMuser; 5->END 6->// 7mysql>DELIMITER; 注: (1)这里需要注意的是DELIMITER//和DELIMITER;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。 (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。 (3)过程体的开始与结束使用BEGIN与END进行标识。 这样,我们的一个MySQL存储过程就完成了,是不是很容易呢? 看不懂也没关系,接下来,我们详细的讲解。 2. 参数 MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如: CREATEPROCEDURE([[IN|OUT|INOUT] 参数名 数据类形...]) IN 输入参数: 表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值 OUT 输出参数: 该值可在存储过程内部被改变,并可返回 INOUT 输入输出参数: 调用时指定,并且可被改变和返回 1Ⅰ.IN参数例子 2创建: 3mysql>DELIMITER// 4mysql>CREATEPROCEDUREdemo_in_parameter(INp_inint) 5->BEGIN 6->SELECTp_in; 7->SETp_in=2; 8->SELECTp_in;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 快速入门 快速 入门