请教在sql语句执行时,如何跳过错误,继续执行

请教在sql语句执行时,如何跳过错误,继续执行,第1张

@错误控制 *** 作符可以实现这样的功能。

@符号可以忽略错误,有抑制错误的功能。

例如:

function db_connect()//连接数据

{

@$db =mysql_connect('localhost','root','test')

if(!$db) {

throw new Exception('连接数据库失败!请重试!')

}

mysql_select_db('book')

return $db

}

如果连接数据库不成功的,前面的“@”就能把错误显示给抑制住,也就是不会显示错误,然后再抛出异常,显示自己定义的异常处理,建议最好少用,这样会增加一定的系统开销。

insert tablea(a,b,c)select a,b,c from tableb where 标示列 not in (select 标示 from tablea)没调试,自己调试一下

Mysql有自己的语法的

看看教程吧

1. 连接mysql:

mysqlbinmysql -h主机地址 -u 用户名 -p 用户密码

2.退出mysql:exit

3. 修改密码:

mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword

4.增加用户:

添加一个用户test1 密码为ABC;让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入

mysql,然后键入以下命令:grant select,insert,update,delete on *.* to test1@"%" Identified

by "abc"

增加一个用户test2密码为abc,让其只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的 *** 作(localhost指本地

主机,即mysql数据库所在的那台主机),这样用户即使用知道test2的密码,也无法从internet上直接访问数据库,只能通过mysql主机上的web页

来访问了。grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"

增加一个可以从任何地方连接服务器的一个完全的超级用户

grant all privileges on *.* to test3@"%" identified by 'password' with grant option

5.删除授权

revoke select,insert,update,delete om *.* from test2@localhost

--------------------------------------------------------

6.显示数据库

show databases

7.显示数据库中的表

use dataname;

show tables;

8.显示表的结构

describe tablesname

9.建库

create database 库名

10.建表

use dataname

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('','jack','深圳一中','1975-12-23')

注:在建表中

(1) 将ID设为长度为3的数字字段:int(3),并让它每个记录自动加一: auto_increment,

并不能为空:not null,而且让它成为主字段primary key

(2) 将NAME设为长度为10的字符字段

(3) 将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别

呢,只有等以后的文章再说了。

(4) 将YEAR设为日期字段。

如果你在mysql提示符键入上面的命令也可以,但不方便调试。 你可以将以上命令

原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录

mysql in,然后键入以下命令:

mysql -uroot -p密码 <c:school.sql

如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你

只要将//的注释去掉即可使用)。

11.删除库和删除表

drop dataname

drop tablename

12.将表中的记录清空

delete from tablename

13.显示表中的记录

select * from tablename

14.表重命名

alter table t1 rename t2

---------------------------------------------------------

15. 备份数据库

mysqlbinmysqldump -h(ip) -uroot -p(password) databasename >database.sql

16. 恢复数据库

mysqlbinmysql -h(ip) -uroot -p(password) databasename <database.sql

17.复制数据库

mysqldump --all-databases >all-databases.sal

18.备份表

mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename >tablename.sql

19.恢复表( *** 作前先把原来的表删除)

mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename <tablename.sql

----------------------------------------------------------

20.为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),

并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20)

增加一个新TIMESTAMP列,名为d:

ALTER TABLE t2 ADD d TIMESTAMP

在列d上增加一个索引,并且使列a为主键:

ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a)

删除列c:

ALTER TABLE t2 DROP COLUMN c

增加一个新的AUTO_INCREMENT整数列,命名为c:

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c)

注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,

因为索引了的列不能是NULL

---------------------------------------------------------------

21.数据的导入导出

A。mysqlimport

语法:mysqlbinmysqlimport database tables.txt( 文件名需要与表名相同)

参数:-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息;

-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据;

-i or --ignore mysqlimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略;

-l or -lock-tables 数据被插入之前锁住表,这样就防止了, 你在更新数据库时,用户的查询和更新受到影响;

--fields-enclosed- by= char

指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。

--fields-terminated- by=char

指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符

(Tab)

--lines-terminated- by=str

此选项指定文本文件中行与行之间数据的分隔字符串 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 您可以选择用一个字

符串来替代一个单个的字符: 一个新行或者一个回车。

mysqlimport命令常用的选项还有-v 显示版本(version), -p 提示输入密码(password)等。

--------------------------------------------------------------

22.常用插入、修改、删除语句

插入记录:insert into teacher values('','glchengang','深圳一中','1976-10-10')

修改记录:update mytable set single=′y′ where name=′abccs′

删除记录:delete from mytable where name=′abc′


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8549929.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存