小技巧:用批处理对MySQL进行数据操作数据库教程(集锦9篇)由网友“海底捞在逃虾滑”投稿提供,下面是小编整理过的小技巧:用批处理对MySQL进行数据操作数据库教程,希望对大家有所帮助。
篇1:小技巧:用批处理对MySQL进行数据操作数据库教程
mysql|技巧|数据
批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令,小技巧:用批处理对MySQL进行数据操作数据库教程
。为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含有与我们在mysql中输入的命令相同的文本。
比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他的合法名字,并不一定要以后缀sql结尾):
USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, “Block”);
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, “Newton”);
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, “Simmons”);
注意上面的这些句子的语法都必须是正确的,并且每个句子以分号结束。
上面的USE命令选择数据库,INSERT命令插入数据。
下面我们要把上面的文件导入到数据库中,导入之前要确认数据库已经在运行,即是mysqld进程(或者说服务,Windows NT下面称为”服务“,unix下面为”进程“)已经在运行。
然后运行下面的命令:
bin/mysql Cp < /home/mark/New_Data.sql
接着按提示输入密码,如果上面的文件中的语句没有错误,那么这些数据就被导入到了数据库中。
命令行中使用LOAD DATA INFILE 从文件中导入数据到数据库:
现在您可能会问自己,“究竟为什么我要输入所有的这些SQL语句到文件中,然后通过程序运行它们呢?”
这样看起来好像需要大量的工作。很好,你这样想很可能就对了。但是假如你有从所有这些命令中产生的log记录呢?现在这样就很棒,嗯,大多数数据库都会自动产生数据库中的事件记录的log。而大部分log都包含有用过的原始的SQL命令。因此,如果您不能从您现在的数据库中导出数据到新的mysql数据库中使用,那么您可以使用log和mysql的批处理特性,来快速且方便地导入您地数据。当然,这样就省去了打字的麻烦。
LOAD DATA INFILE
这是我们要介绍的最后一个导入数据到MySQL数据库中的方法。这个命令与mysqlimport非常相似,但这个方法可以在mysql命令行中使用。也就是说您可以在所有使用API的程序中使用这个命令。使用这种方法,您就可以在应用程序中导入您想要导入的数据。
使用这个命令之前,mysqld进程(服务)必须已经在运行。
启动mysql命令行:
bin/mysql Cp
按提示输入密码,成功进入mysql命令行之后,输入下面的命令:
USE Meet_A_Geek;
LOAD DATA INFILE ”/home/mark/data.sql“ INTO TABLE Orders;
简单的讲,这样将会把文件data.sql中的内容导入到表Orders中,如mysqlimport工具一样,这个命令也有一些可以选择的参数。比如您需要把自己的电脑上的数据导入到远程的数据库服务器中,您可以使用下面的命令:
LOAD DATA LOCAL INFILE ”C:\MyDocs\SQL.txt“ INTO TABLE Orders;
上面的LOCAL参数表示文件是本地的文件,服务器是您所登陆的服务器,
这样就省去了使用ftp来上传文件到服务器,MySQL替你完成了.
您也可以设置插入语句的优先级,如果您要把它标记为低优先级(LOW_PRIORITY),那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:
LOAD DATA LOW_PRIORITY INFILE ”/home/mark/data.sql“ INTO TABLE Orders;
您也可以指定是否在插入数据的时候,取代或者忽略文件与数据表中重复的键值。替代重复的键值的语法:
LOAD DATA LOW_PRIORITY INFILE ”/home/mark/data.sql“ REPLACE INTO TABLE Orders;
上面的句子看起来有点笨拙,但却把关键字放在了让您的剖析器可以理解的地方。
下面的一对选项描述了文件的记录格式,这些选项也是在mysqlimport工具中可以用的。他们在这里看起来有点不同。首先,要用到FIELDS关键字,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项:
TERMINATED BY character
ENCLOSED BY character
ESCAPED BY character
这些关键字与它们的参数跟mysqlimport中的用法是一样的. The
TERMINATED BY 描述字段的分隔符,默认情况下是tab字符(\t)
ENCLOSED BY描述的是字段的括起字符。比方以引号括起每一个字段。
ESCAPED BY 描述的转义字符。默认的是反些杠(backslash:\ ).
下面仍然使用前面的mysqlimport命令的例子,用LOAD DATA INFILE语句把同样的文件导入到数据库中:
LOAD DATA INFILE ”/home/mark/Orders.txt“ REPLACE INTO TABLE Orders FIELDS TERMINATED BY ',' ENCLOSED BY '”';
LOAD DATA INFILE语句中有一个mysqlimport工具中没有特点:
LOAD DATA INFILE 可以按指定的列把文件导入到数据库中。
当我们要把数据的一部分内容导入的时候,这个特点就很重要。比方说,我们要从Access数据库升级到MySQL数据库的时候,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要。
这个时候,我们的Access数据库中的数据仍然是可用的,但是因为这些数据的栏目(field)与MySQL中的不再匹配,因此而无法再使用mysqlimport工具。尽管如此,我们仍然可以使用LOAD DATA INFILE,下面的例子显示了如何向指定的栏目(field)中导入数据:
LOAD DATA INFILE “/home/Order.txt” INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);
如您所见,我们可以指定需要的栏目(fields)。这些指定的字段依然是以括号括起,由逗号分隔的,如果您遗漏了其中任何一个,MySQL将会提醒您
Importing Data from Microsoft Access (从Access中导入数据,略)
篇2:mysql数据复制到access数据库数据库教程
access|mysql|数据|数据库
mysql数据库表sqltable字段id,name,sex,email
access数据库表accesstable
id,name,sex,email
$connect = mysql_connect(“localhost”,“”,“”);
mysql_select_db(“mydatabase”);
$sql = “select * from sqltable;
$result = mysql_query($sql};
$connectodbc=odbc_connect(”DSN“,”USERNAME“,”PASSWORD“);
while($row = mysql_fetch_row($result))
{
$sql=”insert into accesstable
values($row[“id”,$row[“name”,$row[“sex”],$row[“email”])“;
odbc_do($connectodbc,$sql);
}
odbc_close($connectodbc);
mysql_close($conect);
?>
【本文版权归作者与奥索网共同拥有,如需,请注明作者及出处】
篇3:[教程转载] 用命令创建MySQL数据库
用命令创建MySQL数据库
发布时间:-05-07 17:05:28 来源:技术部 作者:胖林 点击:42390
服务器或VPS用户如何用命令创建MYSQL数据库
一、连接MYSQL(www.studentyl.com)
格式: mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MYSQL,
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命 令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
二、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码。 例如
1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
2、再将root的密码改为djg345。
mysqladmin -u root -p ab12 password ******
三、创建数据库
1、CREATE DATABASE 数据库名;
2、GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
3、SET PASSWORD FOR
'数据库名'@'localhost' = OLD_PASSWORD('密码');
依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。
―――――――――――――――――――――――――――――――――――――――――――――
现在介绍一些常用的MYSQL命令
注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧(www.xyyuedu.com)
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
二、常用命令
1、显示当前数据库服务器中的数据库列表:
mysql>SHOW DATABASES;
2、建立数据库:
mysql>CREATE DATABASE 库名;
3、建立数据表:
mysql>USE 库名;
mysql>CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
4、删除数据库:
mysql>DROP DATABASE 库名;
5、删除数据表:
mysql>DROP TABLE 表名;
6、将表中记录清空:
mysql>DELETE FROM 表名;
7、往表中插入记录:
mysql>INSERT INTO 表名 VALUES (”hyq“,”M“);
8、更新表中数据:
mysql->UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
9、用文本方式将数据装入数据表中:
mysql>LOAD DATA LOCAL INFILE ”D:/mysql.txt“ INTO TABLE 表名;
10、导入.sql文件命令:
mysql>USE 数据库名;
mysql>SOURCE d:/mysql.sql;
11、命令行修改root密码:
mysql>UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
mysql>FLUSH PRIVILEGES;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在sudu则删除
create database sudu; //建立库sudu
use school; //打开库sudu
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('','allen','飞数科技1','-10-10');
insert into teacher values('','jack','飞数科技2','2005-12-23');如果你在mysql提示符键入上面的命令也可以,但不方便调试,
(1)你可以将以上命令原样写入一个文本文件中,假设为sudu.sql,然后复制到c:\\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\sudu.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
(2)或者进入命令行后使用 mysql>source c:\sudu.sql; 也可以将sudu.sql文件导入数据库中。
四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.例:
3 rose 飞数科技1 1976-10-10
4 mike 飞数科技2 1975-12-23
假设你把这两组数据存为速度sudu.txt文件,放在c盘根目录下。
2、数据传入命令 load data local infile ”c:\sudu.txt“ into table 表名;
注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库。
五、备份数据库:(命令在DOS的\mysql\bin目录下执行)
1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u 用户名 -p 数据库名 >导出的文件名
mysqldump -u user_name -p123456 database_name >outfile_name.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名>导出的文件名
mysqldump -u user_name -p database_name table_name >outfile_name.sql
3.导出一个数据库结构
mysqldump -u user_name -p -d --add-drop-table database_name >outfile_name.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt database_name >outfile_name.sql
篇4:如何保护MySQL 中的重要数据数据库教程
在日常的工作中,保护数据免受未授权用户的侵犯是系统管理员特别关心的问题,如果你目前用的是MySQL,就可以使用一些方便的功能来保护系统,来大大减少机密数据被未授权用户访问的风险。
企业最有价值的资产通常是其数据库中的客户或产品信息。因此,在这些企业中,数据库管理的一个重要部分就是保护这些数据免受外部攻击,及修复软/硬件故障。
在大多数情况下,软硬件故障通过数据备份机制来处理。多数数据库都自带有内置的工具自动完成整个过程,所以这方面的工作相对轻松,也不会出错。但麻烦却来自另一面:阻止外来 入侵窃取或破坏数据库中的信息。不幸的是,一般没有自动工具解决这一问题;而且,这需要管理员手工设置障碍来阻止 ,确保公司数据的安全。
不对数据库进行保护的常见原因是由于这一工作“麻烦”而“复杂”。这确实是事实,但如果你应用MySQL,就可以使用一些方便的功能来显著减少面临的风险。下面列出了以下几个功能:
◆删除授权表中的通配符
MySQL访问控制系统通过一系列所谓的授权表运行,从而对数据库、表格或栏目级别的用户访问权利进行定义。但这些表格允许管理员为一名用户设定一揽子许可,或一组应用通配符的表格。这样做会有潜在的危险,因为 可能会利用一个受限的账户来访问系统的其他部分。由于这一原因,在设置用户特权时要谨慎,始终保证用户只能访问他们所需的内容。在给个别用户设定超级特权时要尤其小心,因为这种级别允许普通用户修改服务器的基本配置,并访问整个数据库。
建议:对每个用户账户应用显示特权命令,以审查授权表,了解应用通配符许可是否恰当。
◆要求使用安全密码
用户账号的安全与用来保护它们的密码密切相关。因此,在安装MySQL时第一件事就应该设置MySQL根账号的密码(默认为空)。修复这一漏洞后,接下来就应要求每个用户账号使用一个密码,且不要使用生日、用户名或字典中的单词这些容易识别的启发式密码,
建议:应用MySQL-安全-授权选项避免使用旧的,不大安全的MySQL密码格式。
◆检查配置文件许可
一般来说,要使服务器连接更为快速方便,单个用户和服务器管理员必须把他们的用户账号密码存储在单用户MySQL选项文件中。但是,这种密码是以纯文本形式存储在文件中的,很容易就可以查阅。因此,必须保证这样的单用户配置文件不被系统中的其他用户查阅,且将它存储在非公共的位置。理想情况下,你希望单用户配置文件保存在用户的根目录,许可为0600。
◆加密客户与服务器之间数据传送 :
MySQL(及其它)客户与服务器构架的一个重要问题就是通过网络传送数据时的安全问题。如果客户与服务器间的交互以纯文本形式发生, 就可能“嗅出”被传送的数据包,从而获得机密信息。你可以通过激活MySQL配置中的SSL,或应用一个OpenSSH这样的安全应用来为传送的数据建立一个安全的加密“通道”,以关闭这一漏洞。以这种形式加密客户与服务器连接可使未授权用户极难查阅往来的数据。
◆禁止远程访问
如果用户不需要远程访问服务器,你可以迫使所有MySQL连接通过UNIX插槽文件来完成,从而大大减少网络受攻击的风险。这一过程可通过跳过网络选项启动服务器来完成。这样可以阻止TCP/IP网络连接到MySQL上,保证没有用户可以远程连接系统。
建议:可以在MySQL服务器配置中添加捆绑地址127.0.0.1指令来增强这一功能,迫使MySQL捆绑当地机器的IP地址来保证只有同一系统中的用户可以连接到MySQL。
◆积极监控MySQL访问记录
MySQL中带有很多不同的日志文件,它们记录客户连接,查询和服务器错误。其中,最重要的是一般查询日志,它用时间标签记录每名客户的连接和中断时间,并记录客户执行的每个查询。如果你怀疑发生了不寻常的行为,如网络入侵,那么监控这个日志以了解行为的来源是个好方法。
保护你的MySQL数据库是一个日常工作。因此,即使完成了上述步骤,也还需要你利用更多的时间去了解更多的安全建议,积极监控并更新你的系统安全。
篇5:如何从 MySQL 数据库表中检索数据数据库教程
1、从数据库表中检索信息
实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息,
select语句格式一般为:
SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选)
以前所使用的“ * ”表示选择所有的列。
下面继续使用我们在上篇文章中创建的表mytable。
2、查询所有数据:
mysql>select * from mytable;
+----------+------+------------+----------+
| name | sex | birth | birthaddr |
+----------+------+------------+--------+
| abccs |f | 1977-07-07 | china |
| mary |f | 1978-12-12 | usa |
| tom |m | 1970-09-02 | usa |
+----------+------+------------+----------+
3 row in set (0.00 sec)
3、修正错误记录:
假如tom的出生日期有错误,应该是1973-09-02,则可以用update语句来修正: mysql>update mytable set birth = ”1973-09-02“ where name = ”tom“;
再用2中的语句看看是否已更正过来。
4、选择特定行
上面修改了tom的出生日期,我们可以选择tom这一行来看看是否已经有了变化:
mysql>select * from mytable where name = ”tom“;
+--------+------+------------+------------+
| name |sex | birth | birthaddr |
+--------+------+------------+------------+
| tom |m | 1973-09-02 | usa |
+--------+------+------------+------------+
1 row in set (0.06 sec)
上面WHERE的参数指定了检索条件。我们还可以用组合条件来进行查询:
mysql>SELECT * FROM mytable WHERE sex = ”f“ AND birthaddr = ”china“;
+--------+------+------------+------------+
| name |sex | birth | birthaddr |
+--------+------+------------+------------+
| abccs |f | 1977-07-07 | china |
+--------+------+------------+------------+
1 row in set (0.06 sec)
5、选择特定列
假如你想查看表中的所有人的姓名,则可以这样操作:
mysql>SELECT name FROM mytable;
+----------+
| name |
+----------+
| abccs |
| mary |
| tom |
+----------+
3 row in set (0.00 sec)
如果想列出姓名和性别两列,则可以用逗号将关键词name和birth分开: myaql>select name,birth from mytable;
6、对行进行排序
我们可以对表中的记录按生日大小进行排序:
mysql>SELECT name, birth FROM mytable ORDER BY birth;
+----------+------------+
| name | birth |
+----------+------------+
| tom | 1973-09-02 |
| abccs | 1977-07-07 |
| mary | 1978-12-12 |
+----------+------------+
3 row in set (0.00 sec)
我们可以用DESC来进行逆序排序:
mysql>SELECT name, birth FROM mytable ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| mary | 1978-12-12 |
| abccs | 1977-07-07 |
| tom | 1973-09-02 |
+----------+------------+
3 row in set (0.00 sec)
7、行计数
数据库经常要统计一些数据,如表中员工的数目,我们就要用到行计数函数COUNT,
COUNT()函数用于对非NULL结果的记录进行计数:
mysql>SELECT COUNT(*) FROM mytable;
+----------+
| COUNT(*) |
+----------+
| 3 |
+----------+
1 row in set (0.06 sec)
员工中男女数量:
mysql>SELECT sex, COUNT(*) FROM mytable GROUP BY sex;
+------+----------+
| sex | COUNT(*) |
+------+----------+
| f | 2 |
| m | 1 |
+------+----------+
2 row in set (0.00 sec)
注意我们使用了GROUP BY对SEX进行了分组。
篇6:用ADO对Excel的数据查询数据库教程
ado|excel|数据
ASP对Excel的基本操作之查询数据
Execl97//xp是MS Office办公软件的成员之一,在企业级应用当中,我们往往需要对Execl进行操作,如读取Execl里面的数据、往Execl里插入数据等。
一、操作Execl要注意的事项:
1、 服务器端Office的配置
以MS Windows2000+IIS为例,要在服务器端安装有MS Office的成员之一Execl,Office的版本没有特殊要求。
2、 服务器端分布式COM的配置
执行“ DCOMCNFG”命令,选择“应用程序”页的“Microsoft Execl 应用程序”―>“属性”―>“安全性”―>三个选项都选“使用自定义访问权限”,添加“Everyone”权限。
二、首先,先将利用ASP读取Execl的数据(不建立DSN):
我们可以整个.xsl文件看作是一个数据库,sheet1、sheet2等分别看成一个独立的表,把A1、B1、C1、…N1看作表的字段。
--建立连接对象实例ExeclConn
Set ExeclConn=Server.CreateObject(“ADODB.Connection”)
--利用Open 方法打开数据库
StrConn=”Driver={Microsoft Excel Driver (*.xls)};“&_
”DriverId=790; DBQ=“& Server.MapPath(”xls文件名“)
conn.Open StrConn
--建立数据集对象Rs并查询数据
Set Rs = Server.CreateObject(”ADODB.Recordset“)
Sql=”select * from [Sheet1$]“
rs.Open Sql,conn,2,2
具体例子:
1、建立一个表Sheet1(数据库名为Students)
StudentID
姓 名
语 文
数 学
物 理
化 学
地 理
1
李雪青
83
84
76
95
66
2
冯江
87
96
82
100
81
3
吴小霞
76
43
37
60
82
4
邹亚汇
80
77
63
71
63
5
蔡海飞
89
63
92
86
67
2、查询并显示表Sheet1内容的代码
<%
Dim conn
Dim StrConn
Dim rs
Dim Sql
Set conn=Server.CreateObject(”ADODB.Connection“)
StrConn=”Driver={Microsoft Excel Driver (*.xls)};“&_
”DriverId=790; DBQ=“& Server.MapPath(”Students.xls“)
conn.Open StrConn
Set rs = Server.CreateObject(”ADODB.Recordset“)
Sql=”select * from [Sheet1$]"
rs.Open Sql,conn,2,2
%>
<%
for i=0 to rs.Fields.Count-1
%>
<%=rs(i).Name%>
<%
next
%>
<%
do while Not rs.EOF
%>
<%
for i=0 to rs.Fields.Count-1
%>
<%=rs(i)%>
<%
next
%>
<%
rs.MoveNext
Loop
rs.close
set rs=nothing
StrConn.close
set StrConn=nothing
%>
3、运行结果
篇7:用SQL进行函数查询数据库教程
Oracle 9i提供了很多函数可以用来辅助数据查询,
用SQL进行函数查询数据库教程
。接下来我们介绍常用的函数功能及使用方法。4.5.1 【ceil】函数
在【命令编辑区】输入“select mgr, mgr/100,ceil(mgr/100) from scott.emp;”,然后单击【执行】按钮,出现如图4.29所示的结果。
【参见光盘文件】:\第4章\4.5\451.sql。
【ceil】函数用法:ceil(n),取大于扔谑值n的最小整数。
4.5.2 【floor】函数
在【命令编辑区】输入“select mgr, mgr/100,floor(mgr/100) from scott.emp;”,然后单击【执行】按钮,出现如图4.30所示的结果。
【参见光盘文件】:\第4章\4.5\452.sql。
【floor】函数用法:floor(n),取小于等于数值n的最大整数。
4.5.3 【mod】函数
在【命令编辑区】输入“select mgr, mod(mgr,1000), mod(mgr,100), mod(mgr,10) from scott.emp;”,然后单击【执行】按钮,出现如图4.31所示的结果。
【参见光盘文件】:\第4章\4.5\453.sql。
【mod】函数用法:mod(m,n),取m整除n后的余数。
4.5.4 【power】函数
在【命令编辑区】输入“select mgr, power(mgr,2),power(mgr,3) from scott.emp;”,然后单击【执行】按钮,出现如图4.32所示的结果。
【参见光盘文件】:\第4章\4.5\454.sql。
【power】函数用法:power(m,n),取m的n次方。
4.5.5 【round】函数
在【命令编辑区】输入“select mgr, round(mgr/100,2),round(mgr/1000,2) from scott.emp;”,然后单击【执行】按钮,出现如图4.33所示的结果。
【参见光盘文件】:\第4章\4.5\455.sql。
【round】函数用法:round(m,n),四舍五入,保留n位。
4.5.6 【sign】函数
在【命令编辑区】输入“select mgr, mgr-7800,sign(mgr-7800) from scott.emp;”,然后单击【执行】按钮,出现如图4.34所示的结果,
【参见光盘文件】:\第4章\4.5\456.sql。
【sign】函数用法:sign(n)。n>0,取1;n=0,取0;n<0,取-1。
4.5.7 【avg】函数
在【命令编辑区】输入“select avg(mgr)平均薪水 from scott.emp;”,然后单击【执行】按钮,出现如图4.35所示的结果。
【参见光盘文件】:\第4章\4.5\457.sql。
【avg】函数用法:avg(字段名),求平均值。要求字段为数值型。
4.5.8 【count】函数
(1)在【命令编辑区】输入“select count(*) 记录总数 from scott.emp;”,然后单击【执行】按钮,出现如图4.36所示的结果。
【参见光盘文件】:\第4章\4.5\458-1.sql。
(2)在【命令编辑区】输入“select count(distinct job ) 工作类别总数 from scott.emp;”,然后单击【执行】按钮,出现如图4.37所示的结果。
【参见光盘文件】:\第4章\4.5\458-2.sql。
【count】函数用法:count(字段名)或count(*),统计总数。
4.5.9 【min】函数
在【命令编辑区】输入“select min(sal) 最少薪水 from scott.emp;”,然后单击【执行】按钮,出现如图4.38所示的结果。
【参见光盘文件】:\第4章\4.5\459.sql。
【min】函数用法:min(字段名),计算数值型字段最小数。
4.5.10 【max】函数
在【命令编辑区】输入“select max(sal) 最高薪水 from scott.emp;”,然后单击【执行】按钮,出现如图4.39所示的结果。
【参见光盘文件】:\第4章\4.5\4510.sql。
【max】函数用法:max(字段名),计算数值型字段最大数。
4.5.11 【sum】函数
在【命令编辑区】输入“select sum(sal) 薪水总和 from scott.emp;”,然后单击【执行】按钮,出现如图4.40所示的结果。
【参见光盘文件】:\第4章\4.5\4511.sql。
【sum】函数用法:sum(字段名),计算数值型字段总和。
通过上面4类查询实例的学习,读者可以举一反三,灵活运用。用SQL进行数据的查询就介绍到这里,下面学习如何录入数据。
篇8:用触发器对SQL Server数据库进行数据备份备份恢复
问:如何用触发器对SQL Server数据库进行数据备份?
答:首先,你需要建立测试数据表,一个用于插入数据:test3,另外一个作为备份:test3_bak
以下是引用片段:
create table test3(id int primary key not null
identity(1,1),uname varchar(20),uage int);
create table test3_bak(id int primary key not
null identity(1,1),bid int,uname varchar(20),
uage int,active char(1));
第二步,编写备份用的触发器,只有更新或者是插入的时候才触发
以下是引用片段:
alter trigger test3_bak_insert_update
on test3
for insert,update
as
declare @id int
declare @uname varchar(20)
declare @uage int
begin
select @id=id,@uname=uname,@uage=uage from inserted
if @id0
begin
update test3_bak set active='0' where bid=@id
insert into test3_bak(bid,uname,uage,active)
values(@id,@uname,@uage,'1')
end
end
第三步,测试数据:
下面是引用的片段:
insert into test3(uname,uage) values('FLB',20)
insert into test3(uname,uage) values('FLB1',21)
insert into test3(uname,uage) values('FLB2',22)
update test3 set uage=100 where id=27
delete from test3 where id=20
最后,你可自己采用下面的查询踪两个表的数据变化:
以下是引用片段:
关 键 字:MYSQL
篇9:用SQL进行单表查询数据库教程
单表查询是相对多表查询而言的,指从一个数据表中查询数据,
用SQL进行单表查询数据库教程
。4.2.1 查询所有的记录
在【命令编辑区】执行输入“select * from scott.emp”,然后单击【执行】按钮,出现如图4.3所示的emp数据表所有记录。
【参见光盘文件】:\第4章\4.2\421.sql。
select * from 数据表,这里的“*”代表数据表中所有的字段。
4.2.2 查询所有记录的某些字段
在【命令编辑区】输入“select empno,ename,job from scott.emp”,然后单击【执行】按钮,将显示emp数据表的empno、ename和job字段,如图4.4所示。
【参见光盘文件】:\第4章\4.2\422.sql。
select 字段名1, 字段名2,…… from 数据表,将显示某些特定的字段,注意这里的字段名之间的逗号是英文状态下的逗号。
4.2.3 查询某些字段不同记录
在图4.4所示的job字段中,可以发现有相同的数据,为了查询有多少种不同的job,在【命令编辑区】输入“select distinct job from scott.emp”,然后单击【执行】按钮,出现如图4.5所示的结果。
【参见光盘文件】:\第4章\4.2\423.sql。
select distinct 字段名 from 数据表,这里的“distinct”保留字指在显示时去除相同的记录,与之对应的是“all”将保留相同的记录,默认为“all”。
4.2.4 单条件的查询
(1)在【命令编辑区】输入“select empno,ename,job from scott.emp where job=’MANAGER’”,然后单击【执行】按钮,出现如图4.6所示的字符型字段条件查询的结果,查询的是job为MANAGER的记录。
【参见光盘文件】:\第4章\4.2\424-1.sql。
(2)在【命令编辑区】输入“select empno,ename,sal from scott.emp where sal<=2500”,然后单击【执行】按钮,出现如图4.7所示的数字型字段条件查询的结果,查询的是满足sal小于等于2500的记录。
【参见光盘文件】:\第4章\4.2\424-2.sql。
where可以指定查询条件,如果是指定字符型字段查询条件,形式为字段名 运算符 '字符串';如果是指定数字型字段查询条件,形式为字段名 运算符 '字符串'。 单条件查询使用的比较运算符如表4.1所示。
【参见光盘文件】:\第4章\4.2\table41.sql。
表4.1 比较运算符名称实例=(等于)select * from scott.emp where job=’MANAGER’;select * from scott.emp where sal=1100;!= (不等于)select * from scott.emp where job!=’MANAGER’;select * from scott.emp where sal!=1100;^=(不等于)select * from scott.emp where job^=’MANAGER’;select * from scott.emp where sal^=1100;(不等于)select * from scott.emp where job’MANAGER’;select * from scott.emp where sal1100;<(小于)select * from scott.emp where sal<2000;select * from scott.emp where job<’MANAGER’;>(大于)select * from scott.emp where sal>2000;select * from scott.emp where job>’MANAGER’;<=(小于等于)select * from scott.emp where sal<=2000;select * from scott.emp where job<=’MANAGER’;>=(大于等于)select * from scott.emp where sal>=2000;select * from scott.emp where job>=’MANAGER’;in(列表)select * from scott.emp where sal in (2000,1000,3000);select * from scott.emp where job in (’MANAGER’,’CLERK’);not in(不在列表)select * from scott.emp where sal not in (2000,1000,3000);select * from scott.emp where job not in (’MANAGER’,’CLERK’);between(介于之间)select * from scott.emp where sal between 2000 and 3000;select * from scott.emp where job between ’MANAGER’ and ’CLERK’;not between (不介于之间)select * from scott.emp where sal not between 2000 and 3000;select * from scott.emp where job not between ’MANAGER’ and ’CLERK’;like(模式匹配)select * from scott.emp where job like ’M%’;select * from scott.emp where job like ’M__’;not like (模式不匹配)select * from scott.emp where job not like ’M%’;select * from scott.emp where job not like ’M__’;Is null (是否为空)select * from scott.emp where sal is null;select * from scott.emp where job is null;is not null(是否为空)select * from scott.emp where sal is not null;select * from scott.emp where job is not null;
like和not like适合字符型字段的查询,%代表任意长度的字符串,_下划线代表一个任意的字符,
like ‘m%’ 代表m开头的任意长度的字符串,like ‘m__’ 代表m开头的长度为3的字符串。
4.2.5 组合条件的查询
(1)在【命令编辑区】输入“select empno,ename,job from scott.emp where job>=’CLERK’ and sal<=2000”,然后单击【执行】按钮,出现如图4.8所示的逻辑与组合查询的结果。
【参见光盘文件】:\第4章\4.2\425-1.sql。
(2)在【命令编辑区】输入“select empno,ename,job from scott.emp where job>=’CLERK’ or sal<=2000”,然后单击【执行】按钮,出现如图4.9所示的逻辑或组合查询的结果。
【参见光盘文件】:\第4章\4.2\425-2.sql。
(3)在【命令编辑区】输入“select empno,ename,job from scott.emp where not job=’CLERK’”,然后单击【执行】按钮,出现如图4.10所示的逻辑非组合查询的结果。
【参见光盘文件】:\第4章\4.2\425-3.sql。
“not job=’CLERK’”等价于“job’CLERK’”。
组合条件中使用的逻辑比较符如表4.2所示。
【参见光盘文件】:\第4章\4.2\table42.sql。
表4.2 逻辑比较符
名称实例and(与)select * from scott.emp where job=’MANAGER’ and sal2000;or (或)select * from scott.emp where job!=’MANAGER’ or sal2000;not(非)select * from scott.emp where not job>=’MANAGER’;4.2.6 排序查询
在【命令编辑区】输入“select empno,ename,job from scott.emp where job<=’CLERK’ order by job asc,sal desc”,然后单击【执行】按钮,出现如图4.11所示的排序查询的结果。
【参见光盘文件】:\第4章\4.2\426.sql。
order by 可以指定查询结果如何排序,形式为字段名 排序关键词;asc代表升序排列,desc代表降序排列,多个排序字段之间通过逗号分割。若有where查询条件,order by要放在where语句后面。
4.2.7 分组查询
分组查询是指将查询结果按照字段分组。
(1)在【命令编辑区】输入“select empno,ename,job,sal from scott.emp group by job,empno,ename,sal having sal<=2000”,然后单击【执行】按钮,出现如图4.12所示的分组查询的结果。
【参见光盘文件】:\第4章\4.2\427-1.sql。
(2)在【命令编辑区】输入“select empno,ename,job,sal from scott.emp where sal<=2000 group by job,empno,ename,sal”,然后单击【执行】按钮,出现如图4.13所示的分组查询的结果。
【参见光盘文件】:\第4章\4.2\427-2.sql。
where检查每条记录是否符合条件,having是检查分组后的各组是否满足条件。having语句只能配合group by语句使用,没有group by时不能使用having,但可以使用where。
4.2.8 字段运算查询
可以利用几种基本的算术运算符来查询数据。
常见的+(加)、-(减)、*(乘)、/(除)4种算术运算都可以用来查询数据。
在【命令编辑区】输入“select empno,ename,sal,mgr,sal+mgr from scott.emp”,然后单击【执行】按钮,出现如图4.14所示的结果。
【参见光盘文件】:\第4章\4.2\428.sql。
利用算术运算符仅仅适合多个数值型字段或字段与数字之间的运算。
4.2.9 变换查询显示
在【命令编辑区】输入“select empno 编号,ename 姓名,job 工作,sal 薪水 from scott.emp”,然后单击【执行】按钮,出现如图4.15所示的结果,可以将默认的字段名以设定的名称显示。
【参见光盘文件】:\第4章\4.2\429.sql。
以上我们学习了对单个数据表的查询语句。将上面这些基本的实例经过组合,就可以完成基本的日常数据查询任务,接下来进一步学习多表查询。
★ 如何恢复MYSQL实体文件MYI,MYD到数据库中数据库教程
★ 调优日志切换(Tuning Log Switches)数据库教程
★ 推荐没有虚拟主机的小巧的Mysql数据库备份脚本(PHP)

【小技巧:用批处理对MySQL进行数据操作数据库教程(集锦9篇)】相关文章:
IIS信息服务器排错指导服务器教程2023-04-12
ACCESS数据库中Field对象的caption属性读写数据库教程2023-06-16
linux关闭mysql strict mode的方法介绍linux操作系统2023-05-04
Excel服务器教程2023-10-20
InnoDBInsert(插入)操作(下)mysql技术内幕2022-04-30
从一个MysqL的例子来学习查询语句数据库教程2023-04-11
Coredraw表格导入终极解决方案2023-05-10
php实习报告2022-10-05
IIS配置SMTP服务器服务器教程2022-09-09
AMH 4.1 虚拟主机面板 安装配置教程linux操作系统2024-02-05