.NET新手遭遇的问题及对策
没怎么整理,乱得很,姑且如此吧...-_-
1.遇到的问题:
Mysql中编写SQL语句以及MYSQL-FRONT等解决方法:学过SQL SERVER,MYSQL的语法有些不同。1)创建存储过程语句,括号是必须的,存储过程的参数必须写在括号里。语句块的开始和结束处要分别用BEGIN和END,当然还要记住最基本的分号。另外,存储过程的调用语句要用CALL。如果有输出参数,则OUT关键字一定要在参数名前。create PROCEDURE sp1()begindeclare uvcount int; select COUNT(*) into uvcount from mytable1;select uvcount;end;call sp1();drop PROCEDURE sp1; create procedure sp4(out pcount int)……call sp4(@a);SELECT @a;2)LIMIT语法,可以带一个参数,也可以带两个参数,可用于数据的分页,如下:select * from employees limit 5;//只选出5行select * from employees order by employeeid desc limit 5,10;//选出第5行之后的10行,SELECT * from employees where employeeid IN(select employeeid from employees order by employeeid desc LIMIT 5)limit 3;//语法错误,limit无法嵌套使用3)MYSQL中的自增列,用AUTO_INCREMENT关键字表示,同时,自增列一定要声明为主键,否则错误。另外,主键的声明可以在某列之后直接声明,也可以另起一行声明,如下:CREATE TABLE animals (
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);CREATE TABLE animals (
id INT PRIMARY KEY
name CHAR(30) );4)外键声明语法:create table mytable4(fid int,fname char(8),foreign key(fid) references mytable1(fid));5)关于MYSQL中的字符串,字符串可以用单引号或双引号标识出:A string is a sequence of characters, surrounded by either single quote (‘'’) or double quote (‘"’) characters. Examples: 'a string'"another string"There are several ways to include quotes within a string: A ‘'’ inside a string quoted with ‘'’ may be written as ‘''’. A ‘"’ inside a string quoted with ‘"’ may be written as ‘""’. You can precede the quote character with an escape character (‘\’). A ‘'’ inside a string quoted with ‘"’ needs no special treatment and need not be doubled or escaped. In the same way, ‘"’ inside a string quoted with ‘'’ needs no special treatment. 6)默认值的语法:create table mytable4(fid int,fname char(10),fdefault char(10) default "aaa");7)MYSQL里如何设置某列的默认值为当前系统时间关于字段的默认值,MYSQL有如下规定:如果一个字段没有明确定义DEFAULT值,MySQL将会为这个字段自动地添加一个。如果这个字段允许接受NULL值,那么该字段的默认值为NULL。如果一个字段被定义为NOT
NULL,那么它的默认值将取决于该字段类型:1、数值类型的字段(除定义了AUTO_INCREMENT属性),默认值为0。而一个AUTO_INCREMENT的字段,默认值是它的序列的下一个数值。2、日期和时间类型的字段(除TIMESTAMP),它的默认值是适当形式的0。表中的第一个TIMESTAMP字段,它的默认值为当前日期和时间。3、字符串类型字段(除ENUM),它的默认值是一个空串。ENUM类型的字段,默认值为第一个枚举值(如果你没有明确地使用DEFAULT指定其它的默认值)。像ORACLE里的SYSDATE,MSSQL中的GETDATE(),MYSQL里也有CURDATE()、CURTIME()、NOW()一类的时间日期函数,但是如上所述,到目前版本为止,MYSQL不允许以函数或表达式作为某一列的默认值,即默认值必须为一个常数。要达到你某列的默认值为当前更新日期与时间的功能,某些情况下,你可以使用TIMESTAMP列类型实现:TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。“完整”的TIMESTAMP格式是14位,常见的显示尺寸是6、8、12、和14。然而,虽然你建表时可以定义列为TIMESTAMP(8),但在你进行数据插入与更新时TIMESTAMP列实际上保存了14位的数据(包括年月日时分秒),只不过在你进行查询时MySQL返回给你的是8位的年月日数据。同时,不合法TIMESTAMP值被变换到适当类型的“零”值(00000000000000)。也即在1970年到2037年之外的时间,会被强制为0,所以说只在某些情况下可用。
你可以使用TIMESTAMP列类型来实现某列的默认值为当前更新日期与时间的功能,但是,如果你有多个TIMESTAMP列,只有第一个自动更新为当前时间。除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只是须在插入时显式为列插入NULL,或NOW(),如下:CREATE TABLE test ('id' INT (3) UNSIGNED AUTO_INCREMENT, 'date1' TIMESTAMP (14),'date2' TIMESTAMP (14),PRIMARY KEY('id'));INSERT INTO test (id, date1, date2) VALUES (1, NULL, NULL);INSERT INTO test SET id= 2;结果:1
| 20021114093723
| 20021114093723
|
2
| 20021114093724
| 00000000000000
|
8)CREATE OR REPLACE创建视图时可以使用CREATE OR REPLACE语句,建表或创建存储过程时不能作用该语句,只能使用:DROP TABLE(PROCEDURE) IF EXIST ……语句,语句如下:CREATE
OR
REPLACE
VIEW
view2ASSELECT * FROM mytable1 WHERE fid=1;9)如何获取最新插入的自增列的值select last_insert_id();select @@session.identity;两种方法都可以获得最后插入的自增列的值10)如何连接字符串:使用CONCAT()。

aspx1 最后编辑于 2008-03-11 11:11:55