linux下mysql操作及编程Word下载.docx

上传人:b****5 文档编号:19244409 上传时间:2023-01-04 格式:DOCX 页数:39 大小:38.26KB
下载 相关 举报
linux下mysql操作及编程Word下载.docx_第1页
第1页 / 共39页
linux下mysql操作及编程Word下载.docx_第2页
第2页 / 共39页
linux下mysql操作及编程Word下载.docx_第3页
第3页 / 共39页
linux下mysql操作及编程Word下载.docx_第4页
第4页 / 共39页
linux下mysql操作及编程Word下载.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

linux下mysql操作及编程Word下载.docx

《linux下mysql操作及编程Word下载.docx》由会员分享,可在线阅读,更多相关《linux下mysql操作及编程Word下载.docx(39页珍藏版)》请在冰豆网上搜索。

linux下mysql操作及编程Word下载.docx

增加表的记录。

Select:

显示/搜索表的记录。

Update:

修改表中已存在的记录。

特别的权限:

ALL:

允许做任何事(和root一样)。

USAGE:

只允许登录--其它什么也不允许做。

例一:

要授权给用户guest可以从任意主机连接到数据库服务器,并具有完全访问学生选课数据库xsxk的权限。

grantallonxsxk.*toguest@’%’identifiedby‘guest’;

说明:

A.%表示从任何主机连接到数据库服务器,也可以用空白

B.%表示从域中的任何主机连接到数据库服务器

C.192.168.85.%表示从192.168.85.0子网中任何主机连接到数据库服务器

D.localhost表示从本地主机连接

E.192.168.85.242表示从IP为192.168.85.242的主机连接

例二:

新建一个用户tom,让他能从子网192.168.85.0中任何主机连接到数据库服务器,可以读取数据库xsxk的内容,并且能修改表course中字段teacher的值。

grantselectonxsxk.*totom@’192.168.85.%’identifiedby‘123’;

grantupdate(teacher)onxsxk.coursetotom@’192.168.85.%’;

例三:

mysql管理员要授权用户admin可以从本地连接到数据库服务器,对学生选课数据库xsxk具有完全访问权限,并可将其拥有的权限授予其他用户

grantallonxsxk.*toadmin@localhostidentifiedby‘123’withgrantoption;

5)用户撤权,方法如下:

REVOKE权限列表[(字段列表)]ON数据库名.表名FROM用户名@域名或IP地址;

例:

mysql管理员要撤销用户admin@localhost对数据库xsxk所拥有的创建删除数据库与表的权限,并撤销该用户可以把自己拥有的权限授予其他用户的权限。

revokecreate,droponxsxk.*fromadmin@localhost;

revokegrantoptiononxsxk.*fromadmin@localhost;

1.3数据库的创建与删除

1)创建数据库:

createdatabase数据库名;

2)查看数据库:

showdatabases;

3)选择数据库:

use数据库名;

4)删除数据库:

dropdatabase数据库名;

1.4表操作

1.4.1基本操作

1)创建表

createtable表名(字段1,…字段n,[表级约束])[Type=表类型];

注:

A.字段i(i=1,…n)格式为:

字段名字段类型[字段约束]

说明一:

字段类型,规定了某字段所允许输入的数据类型

类型

描述

int

允许值在0至2的32次方减1(无符号)之间标准整数

double

双精度浮点数

char

最大长度不超过255字符定长字符串

varchar

最大长度不超过255字符变长字符串

text

最大长度为65535字符字符串

blob

可变数据的二进制类型

date

YYYYMMDD格式日期类型

说明二:

字段约束,用来进一步对某个字段所允许输入的数据进行约束,常用的字段约束如下:

约束

NULL(或NOTNULL)

指定允许(或不允许)某字段为空,默认为NULL

DEFAULT

为某字段指定一个默认值

AUTO_INCREMENT

自动为某个INT字段生成一个递增1的整数

B.表级约束:

用于表示表的主键、外键、索引和唯一约束。

Primarykey

为表指定主键

Foreignkey……References

为表指定外键

Unique

为某字段创建索引,此字段必须唯一

Fulltext

为某字段建立全文索引

C.表类型:

用于指定表的类型,即数据的存储格式。

表类型

MyISAM

具有很多优化和增强的特性,是mysql默认表类型

ISAM

类似于MyISAM,但功能较少

HEAP

保存在内存中,存取速度快,但存储容量小,恢复难

BDB

支持事务和页锁定

INNODB

支持事务、外键和行级锁,是mysql中最完善表格式

MERGE

可把多个MyISAM表构建为一个虚拟表,使得这些表的查询就像在一个表上进行,提高查询速度和修复效率,并节省了磁盘空间

例:

createtablestudent(snovarchar(7)notnull,snamevarchar(20)notnull,ssexchar

(1)default‘t’,sbirthdaydate,sdepachar(20),primarykey(sno));

注:

a)建好后可通过describe命令查看表结构

b)系统会在/var/lib(orlib64)/mysql/xxkk目录下创建student.frm(表定义文件)、student.MDY(数据文件)、student.MYI(索引文件)三个文件

2)复制表

createtable新表名like源表名;

3)删除表

droptable表名1[,表名2,…];

4)修改表

altertable表名更改动作1[,更改动作2,…];

A.增加表中字段

altertablestudentaddsaddressvarchar(25);

B.更改表字段名和字段类型

altertablestudentchangesaddressbeizhutext;

C.删除字段

altertablestudentdropbeizhu;

D.更改名称

altertablestudentrenametoxs;

1.4.2表记录操作

1)插入记录

insertinto表名(字段1,字段2,…,字段n)values(字段1的值,字段2的值,…,字段n的值);

例1:

要在表student中插入一组数据

insertintostudent(sno,sname,ssex,sbirthday,sdepa)values(‘1’,’lilei’,default,19850721,’math’);

例2:

要插入与前一次操作相同的记录,可使用如下的缩写

insertintostudentvalues(‘1’,’lilei’,default,19850721,’math’);

例3:

表中有默认字段,若取默认字段值,这时只需修改要修改的内容

insertintostudent(sno,sname,sbirthday)values(‘2’,’lucy’,19850613);

例4:

在一个insert语句中使用多个values字句,可插入多条记录

insertintostudentvalues(‘3’,’hanmeimei’,’f’,19850203,’computer’),(‘4’,’lily’,f,19850613,’computer’);

2)删除记录

deletefrom表名where条件表达式

删除表student中sno为’3’的记录

deletefromstudentwheresno=’3’;

从表student中删除sname字段值前2位为’li’的记录

deletefromstudentwhereleft(sname,2)=’li’;

删除表中所有记录的方法:

truncatetablestudent;

3)修改记录

update表名set字段名1=字段值1[,字段名2=字段值2,…]where条件表达式;

修改表student中sno为’1’的记录,将其sdepa字段值改为’computer’

updatestudentsetsdepa=’computer’wheresno=’1’;

1.4.3索引的创建与删除

1)在创建表的同时创建索引

要创建一个选课课程表course,将课程编号cno设置为主键,同时为课程名称cname创建名为cna的索引

createtablecourse(cnovarchar(5)notnull,cnamevarchar(30)notnull,teachervarchar(20),primarykey(cno),indexcan(cname));

2)向已存在的表添加索引(unique或index子句)

create[unique]index索引名on表名(字段名1[(长度)],…);

为表student的sname创建名为sna的索引

createindexsnaonstudent(sname);

为表student的sname创建名为sna的索引,且索引长度为10

createindexsnaonstudent(sname(10));

3)删除索引

dropindex索引名on表名;

删除表student中索引名为sna的索引

dropindexsnaonstudent;

2.Mysql查询

Mysql的查询语句和SQLServer基本相同,不同之处包括以下几点:

1)获取前n个记录:

SQLServer使用topn,位于select之后;

mysql使用limitn,位于整个查询语句之后

3.Mysql存储过程

存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程。

3.1存储过程定义

3.1.1格式

CREATEPROCEDURE过程名([过程参数[,...]])

[特性...]过程体

例子:

mysql>

 

DELIMITER 

// 

CREATE 

PROCEDURE 

proc1(OUT 

int)

->

BEGIN 

SELECT 

COUNT(*) 

INTO 

FROM 

user;

END 

//

;

A.这里需要注意的是DELIMITER//和DELIMITER;

两句,DELIMITER是分割符的意思,因为MySQL默认以"

"

为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将"

当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。

B.存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用"

"

分割开。

C.如果过程体为多行,则它的开始与结束使用BEGIN与END进行标识。

3.1.2分割符

如果是用MySQL的Administrator管理工具时,可以直接创建,不再需要声明分割符。

3.1.3参数

MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:

CREATEPROCEDURE([[IN|OUT|INOUT]参数名数据类形...])

IN输入参数:

表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

OUT输出参数:

该值可在存储过程内部被改变,并可返回

INOUT输入输出参数:

调用时指定,并且可被改变和返回

1)IN参数例子

创建:

1.mysql 

>

// 

2.mysql 

demo_in_parameter(IN 

p_in 

int) 

3.->

 

4.->

p_in;

5.->

SET 

p_in=2;

6.->

7.->

END;

8.->

9.mysql 

执行结果:

@p_in=1;

CALL 

demo_in_parameter(@p_in);

3.+------+ 

4.| 

5.+------+ 

6.| 

7.+------+ 

8. 

9.+------+ 

10.| 

11.+------+ 

12.| 

13.+------+ 

14. 

15.mysql>

@p_in;

16.+-------+ 

17.| 

@p_in 

18.+-------+ 

19.| 

20.+-------+ 

以上可以看出,p_in虽然在存储过程中被修改,但并不影响@p_id的值 

2)OUT参数例子

demo_out_parameter(OUT 

p_out 

p_out;

p_out=2;

@p_out=1;

sp_demo_out_parameter(@p_out);

3.+-------+ 

5.+-------+ 

NULL 

7.+-------+ 

9.+-------+ 

11.+-------+ 

13.+-------+ 

@p_out;

|

3)INOUT参数例子

demo_inout_parameter(INOUT 

p_inout 

p_inout;

p_inout=2;

@p_inout=1;

demo_inout_parameter(@p_inout) 

3.+---------+ 

5.+---------+ 

7.+---------+ 

9.+---------+ 

11.+---------+ 

13.+---------+ 

15.mysql 

@p_inout;

16.+----------+ 

@p_inout 

18.+----------+ 

20.+----------+ 

3.1.4变量

1)变量定义

DECLAREvariable_name[,variable_name...]datatype[DEFAULTvalue];

其中,datatype为MySQL的数据类型,如:

int,float,date,varchar(length)

例如:

1.DECLARE 

l_int 

int 

unsigned 

default 

4000000;

2.DECLARE 

l_numeric 

number(8,2) 

DEFAULT 

9.95;

3.DECLARE 

l_date 

date 

'

1999-12-31'

4.DECLARE 

l_datetime 

datetime 

1999-12-31 

23:

59:

59'

5.DECLARE 

l_varchar 

varchar(255) 

This 

will 

not 

be 

padded'

2)变量赋值

SET变量名=表达式值[,variable_name=expression...] 

3)用户变量 

A.在MySQL客户端使用用户变量

Hello 

World'

into 

@x;

3.+-------------+ 

@x 

5.+-------------+ 

World 

7.+-------------+ 

8.mysql 

@y='

Goodbye 

Cruel 

@y;

10.+---------------------+ 

11.| 

@y 

12.+---------------------+ 

13.| 

14.+---------------------+ 

15. 

16.mysql 

@z=1+2+3;

17.mysql 

@z;

18.+------+ 

@z 

20.+------+ 

21.| 

22.+------+ 

B.在存储过程中使用用户变量

GreetWorld( 

) 

CONCAT(@greeting,'

);

@greeting='

Hello'

3.mysql 

4.+----------------------------+ 

5.| 

6.+----------------------------+ 

7.| 

8.+----------------------------+ 

C.在存储过程间传递全局范围的用户变量

1.mysql>

p1() 

@last_procedure='

p1'

2.mysql>

p2() 

CONCAT('

Last 

procedure 

was 

@last_proc);

3.mysql>

p1( 

4.mysql>

p2( 

5.+------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1