SQLSERVER和MYSQL语法和关键字的区别详解

SQLSERVER和MYSQL语法和关键字的区别详解
SQLSERVER和MYSQL语法和关键字的区别详解

SQL Server和MySql语法和关键字的区别

——用于SQLServer到MySql的转换

对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL and SQL Server。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用SQL来访问这两种数据库的数据,因为它们都支持ANSI-SQL。还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持XML的各种格式。除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。

◆根本的区别是它们遵循的基本原则

二者所遵循的基本原则是它们的主要区别:开放vs保守。SQL服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQL服务器的Sybase引擎,但MySQL能够提供更多种的选择,如MyISAM,Heap,InnoDB,and Berkeley DB。MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能。

◆发行费用:MySQL不全是免费,但很便宜

当提及发行的费用,这两个产品采用两种绝然不同的决策。对于SQL服务器,获取一个免费的开发费用最常的方式是购买微软的Office或者Visual Studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买SQL Server Standard Edition。学校或非赢利的企业可以不考虑这一附加的费用。

◆性能:先进的MySQL

纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式

MyISAM。MyISAM数据库与磁盘非常地兼容而不占用过多的CPU和内存。

MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX 系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。

因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL作为后台数据库。

当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果。

◆安全功能

MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。

在SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。

安全性

这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入。当然,你也可以自己设置这些IP端口。

◆恢复性:先进的SQL服务器

恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。

然而,对于SQL服务器而言就表现得很稳键。SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。

根据需要决定你的选择

对于这两种数据库,如果非要让我说出到底哪一种更加出色,也许我会让你失望。以我的观点,任一对你的工作有帮助的数据库都是很好的数据库,没有哪一个数据库是绝对的出色,也没有哪一个数据库是绝对的差劲。我想要告诉你的是你应该多从你自己的需要出发,即你要完成什么样的任务?而不要单纯地从软件的功能出发。

如果你想建立一个.NET服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用SQL服务器。如果你想建立一个第三方站点,这一站点可以从一些客户端读取数据,那么MySQL将是最好的选择。

这两者数据库都能够在.NET或J2EE下运行正常,同样,都能够利用RAID。

●优点分析:

MYSQL短小精悍,容易上手,操作简单,免费供用的。相对其它数据库有特色又实用的语法多一些。SQL怎么也算是大型数据库,稳定,能做一般大系统的数据仓库,运行速度明显比MYSQL快N多(海量数据下这个优势显而易见)。

●缺点分析:MYSQL难担当大系统的数据仓库,运行速度慢,不够稳定,有

掉线的情况。SQL SERVER价格贵(当然没说5元盗版),使用起来比MYSQL要难一些,毕竟东西大了说道多点。

SQL-Server2000是微软公司开发的中型数据库,它的可视化方面做得很好,在安全性等方面功能非常强大,并且有微软的强大技术支持,当然价格比较昂贵,适合应用于中型系统。

MySQL是MySQL·AB开发的小型数据库,基本上具有了数据库所需的所有功能,但是功能没有SQL-Server强大,技术支持也跟不上,但是价格便宜,在满足它的许可协议的情况下可以免费使用,适合于小型系统。

语言都是一样的(SQL)是结构化查询语言.

语法和关键字区别

1.MySQL支持enum,和set类型,SQL Server不支持

2.MySQL不支持nchar,nvarchar,ntext类型

3.MySQL的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1)

4.MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的

5.MySQL需要为表指定存储类型

6.MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是`,也就是按键1左边的

那个符号

7.MS SQL支持getdate()方法获取当前时间日期,但是MySQL里面可以分日期类型和时间类

型,获取当前日期是current_date(),当前完整时间是now()函数

8.MS SQL不支持replace into语句,但是在最新的sql20008里面,也支持merge语法

9.MySQL支持insert into table1set t1=‘’,t2=‘’,但是MS SQL不支持这样写

10.MySQL支持insert into tabl1values(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1)

11.MySQL在创建表时要为每个表指定一个存储引擎类型,而MS SQL只支持一种存储引擎

12.MySQL不支持默认值为当前时间的datetime类型(MS SQL很容易做到),在MySQL里面

是用timestamp类型

13.MS SQL里面检查是否有这个表再删除,需要这样:

14.MySQL支持无符号型的整数,那么比不支持无符号型的MS SQL就能多出一倍的最大数存

15.MySQL不支持在MS SQL里面使用非常方便的varchar(max)类型,这个类型在MS SQL里

面既可做一般数据存储,也可以做blob数据存储

16.MySQL创建非聚集索引只需要在创建表的时候指定为key就行,比如:KEY displayorder

(fid,displayorder)在MS SQL里面必须要:

17.MySQL text字段类型不允许有默认值

18.MySQL的一个表的总共字段长度不超过65XXX。

19.一个很表面的区别就是MySQL的安装特别简单,而且文件大小才110M(非安装版),相

比微软这个庞然大物,安装进度来说简直就是.....

20.MySQL的存储过程只是出现在最新的版本中,稳定性和性能可能不如MS SQL。

21.同样的负载压力,MySQL要消耗更少的CPU和内存,MS SQL的确是很耗资源。

22.mysql的ifnull()函数对应sql的isnull()函数;

23.mysql的存储过程中变量的定义去掉@;

24.mysql的每句结束要用";"

25.SQLServer存储过程的AS在MySql中需要用begin.....end替换

26.字符串连接用concat()函数;如SQLServer:Temp=’select*

from’+’tablename’+…+…;MySql:Temp=concat(’select*from’,’tablecname’,…,…)

27.mysql的uuid()对应mssql的GUID();

28.MySql的out对应SQLServer的output,且mysql的out要放在变量的前面,SQLServer

的output放在变量后面

29.MySql out,in,inout的区别——MySQL存储过程“in”参数:跟C语言的函数参

数的值传递类似,MySQL存储过程内部可能会修改此参数,但对in类型参数的修改,对调用者(caller)来说是不可见的(not visible)。MySQL存储过程“out”

参数:从存储过程内部传值给调用者。在存储过程内部,该参数初始值为null,无

论调用者是否给存储过程参数设置值。MySQL存储过程inout参数跟out类似,都可以从存储过程内部传值给调用者。不同的是:调用者还可以通过inout参数传递值给存储过程。

30.MySQL的if语句为

if(条件)then

end if;

或者

If(条件)then

Else

End if

或者

If(条件)then

Elseif(注意不能写成Else if)

Elseif

End if

31.Mysql的Execute对应SqlServer的exec;

(注意:必须想下面这样调用)

Set@cnt=’select*from表名’;

Prepare str from@cnt;

Execute str;

32.MySql存储过程调用其他存储过程用call

Call函数名(即SQLServer的存储过程名)(’参数1’,’参数2’,……)

33.mysql的日期

1)获得当前日期函数:curdate(),current_date()

2)获得当前时间函数:curtime();

3)获得当前日期+时间:now();

4)MySQL dayof...函数:dayofweek(),dayofmonth(),dayofyear()分别返回日期参

数,在一周、一月、一年中的位置。

5)(注:周日=1,周一=2,周二=3,……)

6)返回本月的天数:select day(last_day(now()));

7)MySQL为日期增加一个时间间隔:date_add()

8)select date_add(CURRENT_DATE(),interval‘要增加的天数’day)as Fdate

9)MySQL为日期减去一个时间间隔:date_sub()

10)select date_sub('1998-01-0100:00:00',interval'11:1:1'day_second);

11)MySQL日期、时间相减函数:datediff(date1,date2),timediff(time1,time2)

12)MySQL拼凑日期、时间函数:makdedate(year,dayofyear),

maketime(hour,minute,second)

13)例:select makedate(2001,31);--'2001-01-31'

14)select makedate(2001,32);--'2001-02-01'

15)本周时间(起始)

16)select date_sub(CURRENT_DATE(),interval dayofweek(curdate())-2day)as Fdate

17)本周时间(结束)

18)select date_add(CURRENT_DATE(),interval dayofweek(curdate())+3day)as

Fdate

19)上周时间(起始)

20)select date_sub(CURRENT_DATE(),interval dayofweek(curdate())+5day)as

Fdate

21)上周时间(结束)

22)select date_sub(CURRENT_DATE(),interval dayofweek(curdate())-1day)as Fdate

23)本月时间(起始)

24)select DATE_SUB(CURDATE(),INTERV AL DAY(CURDATE())-1DAY)as Fdate

25)本月时间(结束)

26)Select date_add(current_date(),interval day(last_day(CURDATE()))

-day(CURDATE())day)as Fdate

27)上月时间(起始)

28)select DATE_SUB(DATE_SUB(CURDATE(),INTERV AL DAY(CURDATE())

DAY),interval day(last_day(DATE_SUB(CURDATE(),INTERV AL

DAY(CURDATE())DAY)))-1day)as Fdate

29)上月时间(结束)

30)select DATE_SUB(CURDATE(),INTERV AL DAY(CURDATE())DAY)as Fdate

31)今年时间(起始)

32)select makedate(year(curdate()),1)as FDate

33)今年时间(结束)

34)select DATE_SUB(makedate(year(curdate())+1,1),INTERV AL1day)as Fdate

35)去年时间(起始)

36)select makedate(year(curdate())-1,1)as Fdate

37)去年时间(结束)

38)select DATE_SUB(makedate(year(curdate()),1),INTERV AL1day)as FDate

39)DATE_FORMAT(date,format):根据format字符串格式化date值。下列修饰符

可以被用在format字符串中

40)%M月名字(January……December)

%W星期名字(Sunday……Saturday)

%D有英语前缀的月份的日期(1st,2nd,3rd,等等。)

%Y年,数字,4位

%y年,数字,2位

%a缩写的星期名字(Sun……Sat)

%d月份中的天数,数字(00……31)

%e月份中的天数,数字(0……31)

%m月,数字(01……12)

%c月,数字(1……12)

%b缩写的月份名字(Jan……Dec)

%j一年中的天数(001……366)

%H小时(00……23)

%k小时(0……23)

%h小时(01……12)

%I小时(01……12)

%l小时(1……12)

%i分钟,数字(00……59)

%r时间,12小时(hh:mm:ss[AP]M)

%T时间,24小时(hh:mm:ss)

%S秒(00……59)

%s秒(00……59)

%p AM或PM

41)%w一个星期中的天数(0=Sunday……6=Saturday)

%U星期(0……52),这里星期天是星期的第一天

%u星期(0……52),这里星期一是星期的第一天

%%一个文字“%”。

42)例:所有的其他字符不做解释被复制到结果中。

mysql>

select DATE_FORMAT('1997-10-0422:23:00','%W%M%Y');

->'Saturday October1997'

mysql>select DATE_FORMAT('1997-10-0422:23:00','%H:%i:%s');

43)->'22:23:00'

44)mysql>select DATE_FORMAT('1997-10-0422:23:00','%D%y%a

%d%m%b%j');

45)->'4th97Sat0410Oct277'

46)mysql>select DATE_FORMAT('1997-10-0422:23:00','%H%k%I

%r%T%S%w');

47)->'22221010:23:00PM22:23:00006'

34.MySql存储过程中没有return函数,在MySql中可以用循环和out参数代替

If EXISTS(SELECT*FROM T_Chance WHERE FCustID=CostomerID)return0改写为:

(在参数中定义一个out变量:out temp varchar(100);)

BEGIN

Loop1:loop

SELECT count(*)FROM T_Chance WHERE FCustID=CostomerID int@cnt

If@cnt>0then

begin

set temp=0;

leave loop1;

end;

end if

end loop loop1;

35.(13)select@a=count(*)from VW_Action在mySql中修改为:select count(*)from

VW_Action into@a;

36.(14)MySQL中没有top关键字,需要用limit代替且放在后面

注意,在MySQL中的limit不能放在子查询内,limit不同与SQLServer,它可以规定范围limit a,b——范围a-b

SQL SERVER:select top8*from table1

MYSQL:select*from table1limit5;

37.(15)即使存储过程没有参数也要写括号“()”

38.(16)当一个存储过程中有创建临时表时

create procedure up_test

()

begin

drop table if exists tb1;

create TEMPORARY table tb1//注意添加TEMPORARY table

(

id int,

name varchar(20)

);//注意最后加分号

insert tb1values('1','jim');

select*from tb1;

end

39.(17)建表中自增长问题:

create table user

(

Id varchar(10)primary key auto_increment not null,

Name varchar(20)not null,

Password varchar(20),

create_date datetime

);

auto_increment自增长

40.(18)"Unable to convert MySQL date/time value to System.DateTime"这是因为在日期

列中有"0000-00-00"数据值,要修正这个问题,你可以把这些数据设为null,或者在

连接字符串中设置"Allow Zero Datetime=True"。

41.(19)MySQL视图的FROM子句不允许存在子查询,因此对于SQL Server中FROM

子句带有子查询的视图,需要手工进行迁移。可通过消除FROM子句中的子查询,或将FROM子句中的子查询重构为一个新的视图来进行迁移。

数据库迁移:从SQLSERVER到Mysql

1.利用工具

从sql导出到mysql的方法很多,现介绍一种无需编程,直接利用sql和mysql 里的图形界面进行导入导出的简单方法。

前提是已经安装了sqlserver客户端和mysql的图形界面管理工具phpmyadmin。

在控制台根目录下打开sqlserver企业管理器,新建sqlserver组,根据自己的情况进行选择;然后新建sqlserver注册,进行对sqlserver的连接。准备妥当后,下面就开始了:

首先打开数据转换服务,新建包,打开DTS界面,在连接中选择数据源进行配置。再选择将要转换到的目的文件,这里我选的Textfile(destination),选择好文件的存放位置之后,我们来新建一个任务。这里我们只选择转换数据任务,将带有“选择源连接”“选择目的连接”的鼠标分别选中数据源和目的之后,我们对新生成的连接进行定义,在其属性中将源,目的,转换依次定义。

执行任务,提示成功。保存任务。然后在新建的任务上导出数据,有向导提示,其中一项选择“从源数据库复制表和视图”。

这一步已经把数据导出到目的文件中。

下一步在mysql中新建表,与将要导入的结构保持一致时,直接选取“从文本文件中提取数据,插入到数据表:”,将选项添好后,“发送”就可以了,浏览一下,数据已导入了。若要导入的表已经存在,且属性名也不同,这时就先建一个与要导入的数据相

同结构的表并导入数据(按刚才的进行就可以了),然后在mysql中导出“数据和结构”,得到sql语句,将其在文本文件中编辑,利用文本编辑器的替换功能,将表名修改,列名加入,最后将其粘贴在要导入表的执行sql语句的地方,执行一下,数据便导入了。

若过程中出现错误,请仔细检查配置的选项,确保正确。

2.手动导入

sqlserver迁移到mysql在数据库方面的工作主要是表的迁移,以及存储过程的迁移,这里先说说表的迁移.

首先先将MSSQL Server表结构导出为.sql文件.表迁移,mysql一律不能运行带有[,],dbo.等带有sqlserver特征的脚步,所以在导出的sqlserver脚步里面,首先要把这些字符全部过滤掉(可使用editplus进行过滤),在表创建方面的不支持的字符如下:[,],[dbo].,GO, on primary,.

在过滤完以上的字符后,由于导出的sql文件都包含多个表,为了能够一次性装

载完所有的scripts并运行,需要在每个表的create语句后面加上分号,(同时还有加上ENGINE=InnoDB),否则你会发现只能一个一个表的进行运行,比如原来是这样:

CREATE TABLE bmapnamebidsg(

bword nvarchar(100)NOT NULL,

bids text NULL,

status int NOT NULL,

cr_date datetime NOT NULL

)

CREATE TABLE BookStaticSortStatus(

sid int NOT NULL,

sortStatus int NOT NULL,

mxReviewStatus int NOT NULL,

lReviewStatus int NOT NULL,

up_date datetime NOT NULL

)

改动后是这样的:

CREATE TABLE bmapnamebidsg(

bword nvarchar(100)NOT NULL,

bids text NULL,

status int NOT NULL,

cr_date datetime NOT NULL

)ENGINE=InnoDB;

CREATE TABLE BookStaticSortStatus(

sid int NOT NULL,

sortStatus int NOT NULL,

mxReviewStatus int NOT NULL,

lReviewStatus int NOT NULL,

up_date datetime NOT NULL

)ENGINE=InnoDB;

接下来就是数据类型了!

在数据类型方面,mysql基本对应了sqlserver的数据类型,向bit,text,varchar,等,都对应得比较好,但是,mysql并不支持smalldatetime(这个是sqlserver特有的),需要转成datetime,另外,sqlserver中的identity自增长属性在mysql中则表现为auto_increament属性,并且声明该属性的列必须是key!

最后我们看看主键,索引以及缺省值如何对应,一些是MS SQLServer(建一个主键,为两个字段定义缺省值,再为一个字段定义成索引):

ALTER TABLE BookStaticSortStatus WITH NOCHECK ADD CONSTRAINT PK_BookStaticSortStatus PRIMARY KEY CLUSTERED

(

sid

)

ALTER TABLE BookStaticSortStatus ADD

CONSTRAINT DF_BookStaticSortStatus_status DEFAULT((-1))FOR sortStatus, CONSTRAINT DF_BookStaticSortStatus_up_date DEFAULT(getdate())FOR up_date

CREATE INDEX[sort2_books]ON[dbo].[books]([s2id])ON[PRIMARY]

MySQL:

CREATE TABLE`bmapnamebidsg`(

`bword`varchar(100)character set utf8NOT NULL default'1',

`bids`text NOT NULL,

`status`int(11)NOT NULL,

`cr_date`datetime NOT NULL,

PRIMARY KEY(`bword`),

KEY`bids`(`bids`(1))

)ENGINE=InnoDB DEFAULT CHARSET=latin1

完成以上动作,表结构的迁移就基本完成了!

这里附一张MySql的数据类型表:其中的长度以字节为单位名称长度用法

TINYINT(M)

BIT,BOOL,BOOLEAN 1如果为无符号数,可以存储从0到255的数;

否则可以存储从-128到127的数。

SMALLINT(M)2如果为无符号数,可以存储从0到65535的数;

否则可以存储从-32768到32767的数。

MEDIUMINT(M)3如果为无符号数,可以存储从0到16777215的数;

否则可以存储从-8388608到8388607的数

INT(M) INTEGER(M)4如果为无符号数,可以存储从0到4294967295的数,否则可以存储从-2147483648到2147483647

的数。

BIGINT(M)8如果为无符号数,可以存储从0到

18446744073709551615的数,否则可以存储从

-9223372036854775808到9223372036854775807

的数。

FLOAT(precision)4或8这里的precision是可以直达53的整数。如果

precision<=24则转换为FLOAT,如果precision>24

并且precision<=53则转换为DOUBLE。

FLOAT(M,D)4单精度浮点数。

DOUBLE(M,D),

DOUBLE

PRECISION,

REAL

8双精度浮点。

DECIMAL(M,D), DEC,NUMERIC,FIXED M+1

M+2

未打包的浮点数。

DATE3以YYYY-MM-DD的格式显示。DATETIME

HH:MM:SS

8以YYYY-MM-DD的格式显示。TIMESTAMP4以YYYY-MM-DD的格式显示。TIME3以HH:MM:SS的格式显示。YEAR1以YYYY的格式显示。

CHAR(M)M定长字符串。

VARCHAR(M)最大

M

变长字符串。M<=255.

TINYBLOB, TINYTEXT 最大

255

TINYBLOB为大小写敏感,而TINYTEXT不是大小

写敏感的。

BLOB, TEXT 最大

64K

BLOB为大小敏感的,而TEXT不是大小写敏感的。

MEDIUMBLOB, MEDIUMTEXT 最大

16M

MEDIUMBLOB为大小写敏感的,而MEDIUMTEXT

不是大小敏感的。

LONGBLOB, LONGTEXT 最大

4G

LONGBLOB为大小敏感的,而LONGTEXT不是大

小敏感的。

ENUM(VALUE1,….)1或2最大可达65535个不同的值。SET(VALUE1,….)可达最大可达64个不同的值。

8

SQLserver数据库课程设计范例

1 概述 1.1课题简介 书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。1.2设计目的 应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 1.3设计内容 运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型 2 需求分析 2.1功能分析 首先,建立一些基本表(尽可能满足3N),对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。 图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等; 供应商信息:供应商名称、地址、电话,联系人; 客户信息:客户编号、名称、年龄、性别、累计购书金额等; 销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。 在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义

MySQL语法语句汇编

MySQL语法语句大全 一、SQL速成 结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表、索引、字段等)的建立和操纵。 以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询MySQL手册。 1.创建表 表是数据库的最基本元素之一,表与表之间可以相互独立,也可以相互关联。创建表的基本语法如下: create table table_name (column_name data无效{identity |null|not null}, …) 其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求,参数data无效是一个标准的SQL类型或由用户数据库提供的类型。用户要使用non-null从句为各字段输入数据。 create table还有一些其他选项,如创建临时表和使用select子句从其他的表中读取某些字段组成新表等。还有,在创建表是可用PRIMARY KEY、KEY、INDEX等标识符设定某些字段为主键或索引等。 书写上要注意: 在一对圆括号里的列出完整的字段清单。 字段名间用逗号隔开。 字段名间的逗号后要加一个空格。 最后一个字段名后不用逗号。 所有的SQL陈述都以分号";"结束。 例: mysql> CREATE TABLE test (blob_col BLOB,index(blob_col(10))); 2.创建索引 索引用于对数据库的查询。一般数据库建有多种索引方案,每种方案都精于某一特定的查询类。索引可以加速对数据库的查询过程。创建索引的基本语法如下: create index index_name on table_name (col_name[(length)],... ) 例: mysql> CREATE INDEX part_of_name ON customer (name(10)); 3.改变表结构 在数据库的使用过程中,有时需要改变它的表结构,包括改变字段名,甚至改变不同数据库字段间的关系。可以实现上述改变的命令是alter,其基本语法如下: alter table table_name alter_spec [,alter_spec ...] 例: mysql> ALTER TABLE t1 CHANGE a b INTEGER; 4.删除数据对象

个人总结的mysql常用命令大全

第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下:mysql -u用户名-p用户密码 键入命令mysql -uroot -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql 的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 第四招:操作数据库 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。 1、显示数据库列表。 show databases; 缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。 2、显示库中的数据表: use mysql;

MySql Oracle SqlServer三大数据库的数据类型列表

MySql Oracle SqlServer三大数据库的数据类型列表MySql数据类型

Oracle数据类型 一、概述 在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。 二、标量(SCALAR) 合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。 数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。 NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84...127间取值。例如:NUMBER(5,2)可以用来存储表示-999.99...999.99间的数值。P、S可以在定义是省略,例如:NUMBER(5)、NUMBER 等; BINARY_INTENER用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。它以2的补码二进制形式表述。循环计数器经常使用这种类型。 PLS_INTEGER和BINARY_INTENER唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个NUMBER型而不会出错,PLS_INTEGER型的变量将会发生错误。 字符,包括CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR和NVARCHAR2几种类型。 CHAR,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。它的声明方式如下CHAR(L),L 为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORACLE8中最大为2000。 VARCHAR2(VARCHAR),描述变长字符串。它的声明方式如下VARCHAR2(L),L为字符串长度,没有缺省值,作为变量最大32767个字节,作为数据存储在ORACLE8中最大为4000。在多字节语言环境中,实际存储的字符个数可能小于L值,例如:当语言环境为中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)时,一个VARCHAR2(200)的数据列可以保存200个英文字符或者100个汉字字符。 LONG,在数据库存储中可以用来保存高达2G的数据,作为变量,可以表示一个最大长度为32760字节的可变字符串。 NCHAR、NVARCHAR2,国家字符集,与环境变量NLS指定的语言集密切相关,使用方法和CHAR、VARCHAR2相同。 行,包括RAW和LONG RAW两种类型。用来存储二进制数据,不会在字符集间转换。 RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。 LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节。 日期,只有一种类型--DATE,用来存储时间信息,站用7个字节(从世纪到秒),绝对没有“千年虫”问题。 行标识,只有一种类型--ROWID,用来存储“行标识符”,可以利用ROWIDTOCHAR函数来将行标识转换成为字符。 布尔,只有一种类型--BOOLEAN,仅仅可以表示TRUE、FALSE或者NULL。 可信,只有一种类型--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二进制标签。在标准ORACLE 中,只能存储NULL值。 三、复合(COMPOSITE) 标量类型是经过预定义的,利用这些类型可以衍生出一些复合类型。主要有记录、表。 记录,可以看作是一组标量的组合结构,它的声明方式如下: TYPE record_type_name IS RECORD ( filed1 type1 [NOT NULL] [:=expr1] ....... filedn typen [NOT NULL] [:=exprn] ) 其中,record_type_name是记录类型的名字。(是不是看着象CREATE TABLE?......)引用时必须定义相关的变量,记录只是TYPE,不是VARIABLE。 表,不是物理存储数据的表,在这里是一种变量类型,也称为PL/SQL表,它类似于C语言中的数组,在处理方式上也相似。它的声明方式如下:

SQL语句语法大全

第13章:SQL语句语法 目录 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 13.1.5. CREATE TABLE语法 13.1.6. DROP DATABASE语法 13.1.7. DROP INDEX语法 13.1.8. DROP TABLE语法 13.1.9. RENAME TABLE语法 13.2. 数据操作语句 13.2.1. DELETE语法 13.2.2. DO语法 13.2.3. HANDLER语法 13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取有关列的信息) 13.3.2. USE语法 13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET语法 13.5.4. SHOW语法 13.5.5. 其它管理语句 13.6. 复制语句

Sqlserver2005数据库练习题(1)

Sqlserver2005数据库练习题 第1章数据库技术基础 1.简述数据库、数据库管理系统、数据库系统的含义? 2.简述数据库、数据库管理系统、数据库系统之间的联系? 3.简单描述层次模型、网状模型、关系模型的含义? 4.简述一个学生都包含哪些属性? 5.对于一个学生表来说学生姓名是否可以作为主键,为什么? 6.描述你所在的班级都有哪些实体? 第2章安装Sql Server 2005与服务器管理 1.安装sqlserver 2005需要计算机的最低配置是什么? 2.x86操作系统是什么概念? 3.x64操作系统是什么概念? 4.安装数据库时应该选择什么样的操作系统? 5.开始安装时需要有哪些准备工作? 6.开始安装界面中的其他信息是什么意思? 7.用户许可协议必须为接受么? 8.用户许可协议是否可以打印? 9.系统配置界面中需要检查哪些项? 10.详细信息中哪些项要求必须安装成功才能进行下一步的操作? https://www.360docs.net/doc/3611836187.html,+目录指的是什么? 12.iis功能要求指的是什么? 13.mdac版本的最低要求是什么? 14.实例名中的默认实例是什么含义? 15.实例名中的命名实例是什么含义? 16.服务器名指的是什么? 17.服务帐户中使用内置系统帐户是什么含义? 18.服务帐户中使用域帐户是什么含义? 19.安装结束时启动服务包括什么? 20.sqlserver2005提供的服务有哪些? 21.安装结束后,哪些服务要求必须启动? 22.ms sqlserver是什么服务? 23.sql server agent是什么服务? 24.sql server analysis services是什么服务? 25.sql server browser是什么服务? 26.如何对服务进行启动、暂停和停止操作? 27.启动数据库时需要做什么工作? 28.如何注册数据库? 29.如何删除注册的服务? 30.如何更改数据库的登陆模式?

MySql与MsSql性能对比

MySql与MsSql性能对比 对比前提:同一台服务器,记录总数都是:1317920条 表结构: CREATE TABLE `me_yarn_monthly_end_detail_stock` ( `MONTHLY_END_STOCK_ID` varchar(38) NOT NULL COMMENT '成纱库存期初ID', `MONTHLY_END_ID` varchar(38) DEFAULT NULL COMMENT '成纱月结ID', `CREATE_DATE` datetime DEFAULT NULL COMMENT '创建日期', `YARN_TYPE_CODE` varchar(50) DEFAULT NULL COMMENT '成纱类别', `SHADE_CODE` varchar(50) DEFAULT NULL COMMENT '色号代码', `GODOWN_CODE` varchar(50) DEFAULT NULL COMMENT '仓库', `YARN_LOT_NO` varchar(50) DEFAULT NULL COMMENT '批号', `NM` varchar(50) DEFAULT NULL COMMENT '支数', `QUALITY_CODE` varchar(50) DEFAULT NULL COMMENT '毛纱品质', `LOCATION_CODE` varchar(50) DEFAULT NULL COMMENT '货位', `ACCOUNT_CODE` varchar(50) DEFAULT NULL COMMENT '所属公司', `LAST_MONTHLY_QTY` decimal(15,2) DEFAULT NULL COMMENT '上月结存', `CHECK_QTY` decimal(15,2) DEFAULT NULL COMMENT '初始化数量', `IN_QTY` decimal(15,2) DEFAULT NULL COMMENT '入仓数量', `OUT_QTY` decimal(15,2) DEFAULT NULL COMMENT '出仓数量', `ADJUSTMENT_QTY` decimal(15,2) DEFAULT NULL COMMENT '调整数量', `TURNOVER_QTY` decimal(15,2) DEFAULT NULL COMMENT '转仓数量', `MONTHLY_IN_QTY` decimal(15,2) DEFAULT NULL COMMENT '本月进仓', `MONTHLY_OUT_QTY` decimal(15,2) DEFAULT NULL COMMENT '本月出仓', `QUANTITY` decimal(15,2) DEFAULT NULL COMMENT '库存量/kg', `REMARKS` varchar(800) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`MONTHLY_END_STOCK_ID`), KEY `YARN_TYPE_CODE` (`YARN_TYPE_CODE`,`SHADE_CODE`,`GODOWN_CODE`,`YARN_LOT_NO`,`NM`,`QUALITY_CODE`,` LOCATION_CODE`,`ACCOUNT_CODE`), KEY `MONTHLY_END_ID` (`MONTHLY_END_ID`), KEY `CREATE_DATE` (`CREATE_DATE`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1、有关联取总记录数的性能对比 MySql:81秒 MsSql:7秒 2、有联的查询 开始条数查询条数MySql用时MsSql用时 5000 10 3秒不到1秒 10000 10 8秒24秒 20000 10 78秒15秒 40000 10 76秒27秒 50000 10 126秒14秒

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库、表的创建及SQL语句命令 SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了 2、sql server服务启动失败,解决方法: 进入sql server configure manager,点开Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver 的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功 如图: 二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。 解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。 三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。 解决方法: 选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version 在数据库中,点击“新建查询”,然后输入命令,执行结果如下 五、数据库定义及操作命令: 按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。 1、修改数据库密码的命令: EXEC sp_password NULL, '你的新密码', 'sa' sp_password Null,'sa','sa'

数据库语言大全

经典SQL语句大全 —、基础 1说明:创建数据库 CREATE DATABASE database-n ame 2、说明:删除数据库 drop database dbn ame 3、说明:备份sql server ---创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwi nd_1.dat' ---开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tab name(col1 type1 [not nu II] [primary key],col2 type2 [not nul l] ,..) 根据已有的表创建新表: A: create table tab_new like tab_old ( 使用旧表创建新表) B: create table tab_new as select col1,col2 …from tab_old definition only 5、说明:删除新表 drop table tab name 6、说明:增加一个列 Alter table tab name add colu mn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varc har类型的长度。 7、说明:添加主键:Alter table tab name add primary key(col) 说明:删除主键 : Alter table tab name drop primary key(col) 8、说明:创建索弓丨:create [unique] index idxname on tabname(col ….) 删除索弓丨:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view view name as select stateme nt 删除视图:drop view view name 10、说明:几个简单的基本的sql语句 选择:select * from tablei where 范围 插入:in sert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ' %value1% ---like 的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

mysql命令语句大全

show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 显示具体的表结构 select 中加上distinct去除重复字段 mysqladmin drop databasename 删除数据库前,有提示。 显示当前mysql版本和当前日期 select version(),current_date; 修改mysql中root的密码: shell>mysql -h localhost -u root -p //登录 mysql> update user set password=password("xueok654123") where user='root'; mysql> flush privileges //刷新数据库 mysql>use dbname; 打开数据库: mysql>show databases; 显示所有数据库 mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息); grant 创建用户firstdb(密码firstdb)和数据库,并赋予权限于firstdb数据库 mysql> create database firstdb; mysql> grant all on firstdb.* to firstdb identified by 'firstdb' 会自动创建用户firstdb mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP 地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。 mysql>grant all on *.* to root@202.116.39.2 identified by "123456"; 说明:grant 与on 之间是各种权限,例如:insert,select,update等 on 之后是数据库名和表名,第一个*表示所有的数据库,第二个*表示所有的表 root可以改成你的用户名,@后可以跟域名或IP地址,identified by 后面的是登录用的密码,可以省略,即缺省密码或者叫空密码。 drop database firstdb; 创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个 mysql> grant all privileges on *.* to user@localhost identified by 'something' with 增加新用户 格式:grant select on 数据库.* to 用户名@登录主机identified by "密码"

mysql和sqlserver比较

Mysql和sqlServer命令比较 按语句功能划分,依次讲解 目录 一数据定义 (2) 1 数据库操作基本命令 (2) 2 CREATE TABLE --创建一个数据库表 (2) 2.1PRIMARY KEY 约束(主键)区别解析: (2) 2.1.1 创建primary key (2) 2.1.2 撤销PRIMARY KEY 约束 (3) 2.1.3 创建外健约束 (3) 2.1.4 撤销外健约束 (4) 2.2UNIQUE 约束(唯一的,独一无二的)区别解析 (4) 2.2.1 创建UNIQUE约束 (4) 2.2.2 撤销UNIQUE 约束 (5) 2.3CHECK 约束 (5) 2.3.1 创建CHECK约束 (5) 2.3.2 撤销CHECK约束 (6) 2.4DEFAULT 约束(系统默认值) (6) 2.4.1 创建DEFAULT约束 (6) 2.4 .2 撤消DEFAULT约束 (7) 2.5索引区别 (7) 2.6主键自动增加的区别 (7) 2.7MySQL支持enum,和set类型,SQL Server不支持 (8) 2.7.1枚举enum (8) 2.7.2集合set (9) 2.8MySQL不支持nchar,nvarchar,ntext类型 (10) 3DROP TABLE –删除一个数据库表 (10) 4显示库表 (11) 5alter 修改库表 (11)

二数据操作 (12) 2.1 limit和top (12) 2.2 ISNULL()函数 (12) 2.3 select查询 (12) 2.4 insert 插入 (12) 2.6 update 修改 (12) 2.7 delete 删除 (13) 三语法定义 (13) 3.1 注释符区别 (13) 3.2 识别符的区别 (13) 3.3存储过程的区别(未经验证,从网上找的) (13) 3.4字符串连接 (14) 四函数和数据类型的区别 (14) 4.1 Date 函数 (14) 五性能比较 (15) 一数据定义 1 数据库操作基本命令 Mysql: create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒– 2 CREATE TABLE --创建一个数据库表 2.1PRIMARY KEY 约束(主键)区别解析: 2.1.1 创建primary key Mysql:

MySQL语法大全

1、启动MySQL服务器 两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。二是在DOS方式下运行 d:mysqlbinmysqld 2、进入mysql交互操作界面 在DOS方式下,运行: d:mysqlbinmysql 出现: mysql 的提示符,此时已进入mysql的交互操作方式。 如果出现 "ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)“, 说明你的MySQL还没有启动。 3、退出MySQL操作界面 在mysql>提示符下输入quit可以随时退出交互操作界面: mysql> quit Bye 你也可以用control-D退出。 4、第一条命令 mysql> select version(),current_date(); 1 row in set (0.01 sec) mysql> 此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令,看结果如何。 结果说明mysql命令的大小写结果是一致的。 练习如下操作: mysql>Select (20+5)*4; mysql>Select (20+5)*4,sin(pi()/3); mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result) 5、多行语句 一条命令可以分成多行输入,直到出现分号“;”为止: mysql> select -> USER() -> ,

-> now() ->; +--------------------+---------------------+ | USER() | now() | +--------------------+---------------------+ | ODBC@localhost | 2001-05-17 22:59:15 | +--------------------+---------------------+ 1 row in set (0.06 sec) mysql> 注意中间的逗号和最后的分号的使用方法。 6、一行多命令 输入如下命令: mysql> SELECT USER(); SELECT NOW(); +------------------+ | USER() | +------------------+ | ODBC@localhost | +------------------+ 1 row in set (0.00 sec) +---------------------+ | NOW() | +---------------------+ | 2001-05-17 23:06:15 | +---------------------+ 1 row in set (0.00 sec) mysql> 注意中间的分号,命令之间用分号隔开。 7、显示当前存在的数据库 mysql> show databases; +----------+ | Database | +----------+ | mysql| | test | +----------+ 2 row in set (0.06 sec) mysql> 8、选择数据库并显示当前选择的数据库 mysql> USE mysql Database changed mysql>

sqlserver创建数据库说明

请按以下步骤操作。 1、点击windows的开始菜单找到sql server 的企业管理器,如(图1)。 (图1) 2、点击后出现(图2) (图2)

3、展开Microsoft Sql Servers 项->Sql Server组->你的机器名字(windows NT),如(图3) (图3) 4、在选中的项中点击鼠标右键,如(图4) (图4)

5、点击选择属性菜单后弹出(图5) (图5) 6、请选择安全性页面,在身份验证中选择sql server 和windows 。(可能有的版本不只两个 选择,一定要保证选中sql server身份验证。)选中后请点击确定按钮。如(图6) (图6)

7、回到企业管理器选择数据库项,在右边空白处点击鼠标右键。如(图7) (图7) 8、选择新建数据库菜单,在弹出的窗口中填入kkx_database,如(图8) (图8)

9、选择数据文件页面,将文件名改为kkx_data(你可以更改文件所在的路径),初始大小改 为500。如(图9) (图9) 10、选择事务日志页面,将文件名改为kkx_log(你可以更改文件所在的路径),初始大 小改为100。如(图10) (图10)

11、在上图中点击确定按钮。(根据你的机器性能你需要等待1-10分钟) 12、回到企业管理器选择安全性->登录,在右边空白处点击鼠标右键,如图11 (图11) 13、点击新建登录菜单,在弹出的窗口中更改内容如下 名称:kkx_sa 身份验证:sql server身份验证,注意密码必须是kkx_password 默认设置中的数据库:kkx_database。如(图12) (图12)

SQLSERVER和MYSQL语法和关键字的区别详解

SQL Server和MySql语法和关键字的区别 ——用于SQLServer到MySql的转换 对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL and SQL Server。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用SQL来访问这两种数据库的数据,因为它们都支持ANSI-SQL。还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持XML的各种格式。除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。 ◆根本的区别是它们遵循的基本原则 二者所遵循的基本原则是它们的主要区别:开放vs保守。SQL服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQL服务器的Sybase引擎,但MySQL能够提供更多种的选择,如MyISAM,Heap,InnoDB,and Berkeley DB。MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能。 ◆发行费用:MySQL不全是免费,但很便宜 当提及发行的费用,这两个产品采用两种绝然不同的决策。对于SQL服务器,获取一个免费的开发费用最常的方式是购买微软的Office或者Visual Studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买SQL Server Standard Edition。学校或非赢利的企业可以不考虑这一附加的费用。 ◆性能:先进的MySQL 纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式 MyISAM。MyISAM数据库与磁盘非常地兼容而不占用过多的CPU和内存。 MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX 系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。 因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL作为后台数据库。 当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果。 ◆安全功能

mysql数据库常用语句大全

mysql数据库常用语句 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:mssql7backupMyNwind_1.dat’ --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明: 创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

相关文档
最新文档