linux下mysql操作及编程Word下载.docx
- 文档编号:19244409
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:39
- 大小:38.26KB
linux下mysql操作及编程Word下载.docx
《linux下mysql操作及编程Word下载.docx》由会员分享,可在线阅读,更多相关《linux下mysql操作及编程Word下载.docx(39页珍藏版)》请在冰豆网上搜索。
增加表的记录。
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
s
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.|
1
|
7.+------+
8.
9.+------+
10.|
11.+------+
12.|
2
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.|
6
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.+------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux mysql 操作 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)