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

MySql Oracle SqlServer三大数据库的数据类型列表
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语言中的数组,在处理方式上也相似。它的声明方式如下:

TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER;

其中,table_type_name是类型的名字,scalar_type是一种标量类型的类型声明。引用时也必须定义相关的变量。表和数组不同,表有两列,KEY和VALUE,KEY就是定义时声明的BINARY_INTENER,VALUE就是定义时声明的scalar_type。

除了记录和表之外,还有对象类型、集合(嵌套表和VARRAYS)等类型,这些将专门讲解。

四、引用(REFERENCE)

在PL/SQL8.0之前,只有一种类型--REF CURSOR,也就是游标。它的定义较为简单,

CURSOR cursor_name IS select .....from.....;

在PL/SQL8.0之后,引入了REF类型,它指向一个对象。这种类型将单独讲解。(等我弄明白再说,免得在高人面前......)

五、LOB型

LOB变量主要是用来存储大量数据的数据库字段,最大可以存储4G字节的内容(这么大,存VCD?,浪费!)。主要有:

CLOB:和ORACLE7中的LONG类型相似,存储单字节字符数据。(别用来存中文喔。。。)

NCLOB:用来存储定宽多字节字符数据。(例如:存《啸傲江湖》就挺好)

BLOB:和LONG RAW相似,用来存储无结构的二进制数据。

BFILE:它用来允许ORACLE对数据库外存储的大型二进制文本进行只读形式的访问。

六、其他

其实在完成对标量变量的理解之后,基本上可以应付C/S模式下的常规数据库应用所需了,后续的类型说实话,我玩了5年ORACLE,都很少用到。

附:参考书《ORACLE8 PL/SQL程序设计》(《ORACLE8 PL/SQL PROGRAMMING》)ORACLE技术系列丛书机械工业出版社

注:本文所列举的是PL/SQL当中可以定义的数据类型,并不是所有的类型都可以在建表时指定为列的数据类型

SqlServer数据类型

注意:

SQL 数据类型JAVA数据类型

CHAR String

VARCHAR String

LONGVARCHAR String

NUMERIC java.math.BigDecimal

DECIMAL java.math.BigDecimal

BIT Boolean

TINYINT Byte

SMALLINT Short

INTEGER Int

BIGINT Long

REAL Float

FLOAT Double

DOUBLE Double

BINARY byte[]

VARBINARY byte[]

LONGVARBINARY byte[]

DATE java.sql.Date

TIME java.sql.Time

TIMESTAMP java.sql.Timestamp

JAVA数据类型SQL 数据类型String VARCHAR or LONGVARCHAR java.math.BigDecimal NUMERIC Boolean BIT

Byte TINYINT

Short SMALLINT

Int INTEGER

Long BIGINT

Float REAL

Double DOUBLE

byte[]VARBINARY or LONGVARBINARY

java.sql.Date DATE

java.sql.Time TIME

java.sql.Timestamp TIMESTAMP

这里,大伙要注意了,并不是所有的数据类型在各种数据库管理系统中都被支持。下面,就几种常用的数据类型之间的转化进行说明:(1)CHAR, VARCHAR, 和 LONGVARCHAR

在SQL语言中,有三种分别表示不同长度的字符类型CHAR, VARCHAR, 和LONGVARCHAR,在Java/Jsp中并没有相应的三种不同的数据类型与之一一对应,JDBC的处理方法是将其与String或者char[]对应起来。在实际编程中不必对着三种SQL数据类型进行区分,全部将他们转化为Sting或者char[]就可以了。而且通常使用应用的非常普遍的String类型。我们还可以利用String类提供的方法将一个String对象转化为char[],或者用char[]为参数构造一个Stirng对象。

对于定长度的SQL数据类型CHAR(n),当从数据库管理系统中获得的结果集提取该类型的数据时,JDBC会为其构造一个长度为n的St ring对象来代表他,如果实际的字符个数不足’n’,系统会自动为String对象补上空格。当向数据库管理系统写入的数据类型应该是CHAR(n)时,JDBC也会将该String对象的末尾补上相应数量的空格。

一般情况下,CHAR, VARCHAR, LONGVARCHAR和String之间可以无差错的进行转换。但非常值得注意的是LONGVARCHAR,这种SQL的数据类型有时在数据库中代表的数据可能有几兆字节的大小,超过了String对象的承受范围。JDBC解决的办法是用Jav a的Input Stream来接受这种类型的数据[以后我们回涉及到]。Input Stream不仅支持ASCII,而且支持Unicode,我们可以根据需要进行选择。

(2)DECIMAL 和 NUMERIC

SQL的DECIMAL 和NUMERIC通常用来表示需要一定精度的定点数。在Java的简单数据类型中,没有一种类型与之相对应。但从JDK1.1开始,Sun公司在java.math.*包中加入了一个新的类BigDecimal,该类的对象可以与DECIMAL 、NUMERIC进行转换。

另外,当从数据库管理系统中读取数据时,还可以用getString()方法来获取DECIMAL 和 NUMERIC。

(3)BINARY, VARBINARY, 和 LONGVARBINARY

在编程时无须精确区分这三种SQL数据类型,JDBC将他们统一影射为byte[]。其中LONGVARBINARY和LONGVARCHAR相似,可以代表几兆字节的数据,超出数组的承受范围。解决的办法依然是用Input Stream来接受数据。

(4)BIT

代表一个二进制位的BIT类型被JDBC影射为boolean型。

(5)TINYINT, SMALLINT, INTEGER, 和 BIGINT

SQL语言的TINYINT, SMALLINT, INTEGER, 和BIGINT分别代表8位、16位、32位、64位的数据。他们分别被影射为Java的byte, short, int, 和long

(6)REAL, FLOAT, 和DOUBLE

SQL定义了REAL, FLOAT, DOUBLE来支持浮点数。JDBC将REAL影射到Java的float,将FLOAT,DOUBLE影射到java的dou ble。

(7)DATE, TIME, 和TIMESTAMP

SQL定义了三种和日期相关的数据类型。DATE代表年、月、日,TIME代表时、分、秒,TIMESTAMP结合了DATE和TIME的全部信息,而且增加了更加精确的时间计量单位。

在java的标准类库中,java.util.*包中的Date类用来表示日期和时间。但是该类和SQL中的DATE, TIME, 和TIMESTAMP直接影射关系并不清晰。并且,该类也不支持TIMESTAMP的精确时间计量单位。因此,Sun公司在java.sql.*中为java.util.Date增加了三个子类:java.sql.Date,java.sql.Time ,java.sql.Timestamp,分别与SQL中的三个日期数据类型相对应。

Mysql支持的数据类型(总结)

一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型 (INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。 扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。 整数类型字节范围(有符号)范围(无符 号)用途 TINYINT 1字节(-128,127) (0, 255) 小整数值 SMALLINT 2字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3字节(-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 FLOAT 4字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度浮点数值 DOUBLE 8字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度浮点数值DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值依赖于M和D的值小数值 INT 类型: 在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。MySQL 以一个可选的显示宽度指示器的形式对 SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为 INT(6),

实验一ACCESS数据库及表的操作

可编辑可修改 实验一数据库及表的操作 实验类型:验证性实验课时:_6_学时指导教师: _______________ 时间:2013年月日课次:第___________________ 节教学周次:第________ 周 实验分室:_______________ 实验台号:__________ 实验员:_________________ 一、实验目的 1.掌握数据库的创建及其它简单操作 2.熟练掌握数据表建立、数据表维护、数据表的操作 二、实验内容与要求 1.数据库的创建、打开、关闭 2.数据表的创建:建立表结构、设置字段属性、建立表之间关系、数据的输入 3.数据表维护:打开表、关闭表、调整表外观、修改表结构、编辑表内容 4?数据表的操作:查找替换数据、排序记录、筛选记录 三、实验步骤 案例一:创建数据库 1.创建空数据库 要求:建立“教学管理.accdb ”数据库,并将建好的数据库文件保存在“实验一”文件夹中。 操作步骤:

IS 1 丿小? e 叮亍 Micrtilitil ftfdwvi 口 可审业 a 站 j-t 4审时 OffiCfLC WF gm ■ *陆 (2)单击険'I 按钮,在打开的“新建数据库”对话框中,选择数据库的保存位置,在“ 件夹中,单击“确定”按钮,如图 1-2所示。 (3)这时返回到access 启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件 扩展名,access 将自动添加上。 (4 )在右侧窗格下面,单击“创建”命令按钮,如图 1-1所示。 (5)这时开始创建空白数据库,自动创建了一个名称为表 1的数据表,并以数据表视图方式打开这 个表1,如图1-3所示。 J 曰归 图1-1 创建教学管理数据库 (1 )在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库” ,在右侧窗格的文件名文本 框中,给出一个默认的文件名“” 。把它修改为“教学管理”如图 1-1所示。 实验一”文

mysql的多表操作查询

超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 创建这两个表SQL语句如下: CREATE TABLE a aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , aNum char( 20 )

) CREATE TABLE b( bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , bName char( 20 ) ) INSERT INTO a VALUES ( 1, ‘a20050111′ ) , ( 2, ‘a20050112′ ) , ( 3, ‘a20050113′ ), ( 4, ‘a20050114′ ) , ( 5, ‘a20050115′ ) ; INSERT INTO b VALUES ( 1, ‘ 2006032401′ ) , ( 2, ’2006032402′ ) , ( 3,’2006032403′ ) , ( 4, ’2006032404′ ) , ( 8, ’2006032408′ ) ; 实验如下: 1.left join(左联接) sql语句如下: SELECT * FROM a

第三章数据库和表

第3章数据库和表 1、在已经建立的“学生信息”表中,要在表中只显示出姓“李”的同学的纪录,可用()的方法。 A.排序 B.筛选 C.隐藏 D.冻结 答案:B 2、数据表中的“行”叫做() A.字段 B.数据 C.记录 D.数据视图 答案:C 3、数据表中的“列”叫做() A.记录 B.字段 C.数据 D.实体 答案:B 4、若要在多用户环境下打开共享的Access数据库,使您和其他用户都能读写该数据库,应选择()的打开方式。 “打开” “以只读方式打开” “以独占方式打开” “以独占只读方式打开” 答案:A 5、Access 2003数据库并发用户的个数最多是()个。 A.20 B.50 C.不超过100 D.255 答案:D 6、Access 2003数据库(.MDB)文件大小,最大不得超过()。 A.10MB B.64KB C.2GB D.1GB 答案:C 7、Access 2003数据库的表中的一个字段名的字符个数,最多不得超过()字符。 A.8

B.64 C.16 D.32 答案:B 8、Access 2003数据库的表中,“文本”型字段值可容纳的最大字符个数是:() A.255个 B.512个 C.1024个 D.2048个 答案:A 9、在Access中,对数据表的结构进行操作,应该在视图下进行。A.文件夹 B.设计 C.数据表 D.网页 答案:B 10、下面关于主关键字段的说法中,错误的是。 A.数据库中的每个表都必须有一个主关键字段 B.主关键字段的值是惟一的 C.主关键字段可以是一个字段,也可以是一组字段 D.主关键字段中不允许有重复值和空值 答案:B 11、要使学生数据表中不出现同名学生的记录,在数据库中需要建立。A.字段的有效性规则 B.记录的有效性规则 C.索引设置 D.设置触发器 答案:C 12、Access表中字段的数据类型不包括。 A.文本 B.备注 C.通用 D.日期/时间 答案:C 13、在Access中,一个表最多可以建立个主键。 A.1 B.2 C.3 D.4 答案:A 14、一个字段由组成。 A.字段名称 B.数据类型

jsp-mysql总结表的操作合集

jsp+mysql进行简单的增删改查总结 第一步创建一个新的包用于封装学生属性 在新包里面创建新的类存入学生属性 publicclass shuxing { String name; int age; String sex; int id; 右击鼠标选择soure-gennerategettersand setters来封装数据 第二步创建另一个新的包用于主体serlvet的操作 Servlet里面操作: 1.因为doget比dopost拥有更强的保密性,所以把dopost的语句也沿用doget的形式 doPost(request,response);注意删除的时候是不是把}也删除了,会报错。2.将设置请求的编码格式为’UTF-8’防止后面输入学生信息的时候出现乱码,之所以放在前面是怕后面写的话就不可以public公用了。 3.读取后面表中按钮的名称,用一个新的名字来获取随后跳转需要调用的语句 String opeationName = request.getParameter("openration");//取出条件的OPENRATION,看执行哪一种语句 4.查看取出的名称是否为空。 opeationName = opeationName==null?"":opeationName.trim();//取出来看下是不是空,不是空去掉空格 5.用if()else()语句来写调用的程序用前面取出的名字 一:删除方法:opeationName.equals("delete") (1).提取要删除的ID String id=request.getParameter("id"); (2).查看是否为空,为空输出“”if(id==null) { id=""; } (3).try{}catch()语句用于报错 try{ int result = doDelete(id);//调用到doDelete的方法 Listqw = new ArrayList();//创建新的集合用于存放数据 qw = getData();//获取数据 request.setAttribute("qw" ,qw);//缓存范围中设置具体的属性:第一个参数是属性名,字符串类型的数据。,也是以后获取的依据条件,第二个是插入的数据,支持对象属性。 (4)跳转进入最开始的jsp页面即查询语句的JSP界面 二.增加opeationName.equals("add") (1).增加不需要提取什么属性。直接获取在JSP中提交的数据即可,但是要观察是否为空String newname=request.getParameter("name");

mysql数据类型属性总结(方便大家建数据库设定类型参考)

MySQL数据类型和常用字段属性总结●日期和时间数据类型 ●数值数据类型 整型

上面定义的都是有符号的,当然了,也可以加上unsigned关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如: tinyint unsigned的取值范围为0~255。 ●浮点型 我在MySQL中建立了一个表,有一列为float(5, 3);做了以下试验: 1.插入123.45678,最后查询得到的结果为99.999; 2.插入12 3.456,最后查询结果为99.999; 3.插入12.34567,最后查询结果为12.346; 所以,在使用浮点型的时候,还是要注意陷阱的,要以插入数据库中的实际结果为准。 ●字符串数据类型

1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。 2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。 3.超过char和varchar的n设置后,字符串会被截断。 4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。 5.char在存储的时候会截断尾部的空格,varchar和text不会。 6.varchar会使用1-3个字节来存储长度,text不会。 1.enum(“member1″, “member2″, … “member65535″) enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个enum的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。

个人总结的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常用数据类型和建库策略

1. MYSQL 5数据类型,长度范围 1.1数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER,SMALLINT,DECIMAL和NUMERIC),以及近似数值数据类型 (FLOAT,REAL 和DOUBLE PRECISION).关键字INT是INTEGER的同义词,关键字DEC是DECIMAL 的同义词. BIT 数据类型保存位字段值,并且支持MyISAM,MEMORY,InnoDB和BDB表.作为SQL标准的扩展,MySQL也支持整数类型 TINYINT,MEDIUMINT和BIGINT.下面的表显示了需要的每个整数类型的存储和范围. MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例 如,INT(4)).该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度. 显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示. 当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替.例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004.请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度. 所有整数类型可以有一个可选(非标准)属性UNSIGNED.当你想要在列内只允许 非负数和该列需要较大的上限数值范围时可以使用无符号值. 浮点和定点类型也可以为UNSIGNED.同数类型,该属性防止负值保存到列中.然而,与整数类型不同的是,列值的上范围保持不变. 如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性. 对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节. FLOAT类型用于表示近似数值数据类型.SQL标准允许在关键字FLOAT后面的括号内选择用位指定精度(但不能为指数范围).MySQL还支持可选的只用于确定存储大小的精度规定.0到23的精度对应FLOAT 列的4字节单精度.24到53的精度对应DOUBLE列的8字节双精度. MySQL允许使用非标准语法:FLOAT(M,D)或 REAL(M,D)或DOUBLE PRECISION(M,D).这里,"(M,D)"表示该值一共显示M位整数,其中D位位于小数点后面.例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999.MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001.

mysql多表操作与练习笔记

mysql多表操作与练习 数据库备份与恢复 ◆数据库备份 ◆数据库恢复 多表操作 ◆多表设计 ◆外键介绍与创建 ◆多表查询介绍 ◆多表查询-内连接 ◆多表查询-外连接 ◆多表查询-子查询 SQL练习 【内容:数据库备份与恢复】 数据库备份 数据库的备份是指将数据库转换成对应的sql文件。数据库导出sql脚本的命令如下: ●mysqldump –u用户名–p密码数据库名>生成的脚本文件路径; 以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用数据库恢复 数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因为数据库备份只是备份了数据库内容,所以备份产生的sql文件中没有创建数据库的sql语句,在恢复数据库之前需要自己动手创建数据库。 ●在数据库外恢复 mysql -u root -p 数据库名< 文件路径 注意:要求数据库必须先创建出来. ●.在数据库内恢复 source SQL脚本路径:使用这种方式恢复数据,首先要登录数据库 【重点总结】 备份 Mysqldump –u root –p abc mydb>c:/mydb.sql 恢复 1.mysql –u root –p mydb

【内容:多表操作】 多表设计 当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类、数据库中的表。今天我们需要了解的概念模型包括以下两个: ●对象模型:针对java中的实体类,例如我们之前学习的domain层中的User类等; ●关系模型:对应数据库中的表。 在java中有以下三个关系描述: ●is a:例如猫是动物,表示继承关系; ●has a:例如人有两只手,表示的是类与成员的关系; ●use a:表示类与方法之间的关系; 我们今天主要关注的是第二个关系:类与成员的关系。这种关联关系可以分为如下三种: ●一对一关联:例如身份证与人就是一对一的关系,一个人只有一个身份证,一个身份证 号只属于一个人。 ●一对多关联:例如用户与订单,一个用户可以拥有多个订单,多个订单可以属于同一个 用户,这是一个很明显的一对多关联。 ●多对多关联:例如商品与订单,一个订单中可以包含多个商品,而一个商品也可以存在 于多个订单中,这就是一个多对多关联。 概念模型在java中对应这实体类,在实体类中使用成员变量完成关联关系,而且一般都是双向关联,以下是java中实体类与成员之间的关联关系,如下所示: 一对一关联 //身份证类一的一方 public class IDCard { private Person person; //身份证关联人类一对一 } //人类一的一方 public class Person { private IDCard idcard; //人类关联身份证类一对一 } 一对多关联 //用户一的一方 public class User { private List orders; //用户可以有多个订单,在用户中关联订单} //订单多的一方 public class Order { private User user; //多个订单可以属于一个用户,在订单中关联用户} 多对多关联 // 订单多的一方 public class Order { private List products; //订单中可以包含多个商品,订单关联商品

Mysql数据库学习总结

Mysql数据库学习总结 数据库的基本操作:创建删除查瞧 Create database school; 用于创建数据库,并且数据库的名字不可以更改 Show create database; show databases; 用来查瞧创建数据库的语句 Drop database; 用于删除数据库 表的基本操作: Create table; 用于创建表,table后面加表名称 Create table student{ Id int; Name varchar(10); Sex Boolean; } Show tables; 用于显示数据库中的所有表 Describe student; 这里显示了字段、数据类型、就是否为空、主外键、默认值与额外信息Show create table; 显示创建表时的详细信息 Drop table student; 删除表的操作 完整性约束

就是对字段进行限制,从而该字段达到我们期望的效果 设置表的主键:主键能够标识表中的每条信息的唯一性。(primary key) 创建主键的目的在于快速查找到表中的某一条信息 多字段主键:由多个属性组合而成 例如:primary key(id,course_id); 设置表的外键; 设置表的外键的作用在于建立与父表的联系 比如表A中的id就是外键,表B中的id就是主键 那么就可以称表B为父表,表A为子表 比如表B中id为123的学生删除后,表A中id为123的记录也随着消失这样做的目的在于保证表的完整性。 设置表的非空约束: 设置表中的字段不为空 设置表的唯一性约束 唯一性约束指表中该字段的值不能重复出现,也就就是给表中某个字段加上unique 设置表的属性值自动增加: auto_increment 主要用于为表中插入的新纪录自动生成唯一ID 一个表中只能由一个字段使用此约束,并且该字段必须为主键的一部分,约束的值ibixu 就是整型值。 设置表中属性的默认值 在表中插入一体哦新的记录时,如果没有为该字段赋值,那么数据库系统就会为该字段附上一条默认值。 修改表 修改表需要用到alter table 修改表名:

Access2010_数据库及表的操作

《小型数据库应用与开发》 操作指导 编著:李坤 2014年4月

实验一数据库及表的操作 一、实验目的 1.掌握数据库的创建及其它简单操作 2.熟练掌握数据表建立、数据表维护、数据表的操作 二、实验内容与要求 1.数据库的创建、打开、关闭 2.数据表的创建:建立表结构、设置字段属性、建立表之间关系、数据的输入 3.数据表维护:打开表、关闭表、调整表外观、修改表结构、编辑表内容 4.数据表的操作:查找替换数据、排序记录、筛选记录 三、实验步骤 案例一:创建数据库 1.创建空数据库 要求:建立“教学管理”数据库。 操作步骤: 图1-1创建教学管理数据库 (1)在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库”,在右侧窗格的文件名文本框中,给出一个默认的文件名“Database1.accdb”。把它修改为“教学管理”如图1-1所示。 (2)单击按钮,在打开的“新建数据库”对话框中,选择数据库的保存位置,单击“确定”按钮,如图1-2所示。 (3)这时返回到access启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件扩展名,access将自动添加上。 (4)在右侧窗格下面,单击“创建”命令按钮,如图1-1所示。 (5)这时开始创建空白数据库,自动创建了一个名称为表1的数据表,并以数据表视图方式打开这个表1,如图1-3所示。

图1-2“文件新建数据库”对话框 (6)这时光标将位于“添加新字段”列中的第一个空单元格中,现在就可以输入添加数据,或者从另一数据源粘贴数据。 图1-3表1的数据表视图 2.使用模板创建Web数据库 要求:利用模板创建“联系人Web数据库.accdb”数据库。 操作步骤: (1)启动Access。 (2)在启动窗口中的模板类别窗格中,双击样本模板,打开“可用模板”窗格,可以看到Access提供的12个可用模板分成两组。一组是Web数据库模板,另一组是传统数据库模板——罗斯文数据库。Web 数据库是Access2010新增的功能。这一组Web数据库模板可以让新老用户比较快地掌握Web数据库的创建,如图1-4所示 (3)选中“联系人Web数据库”,则自动生成一个文件名“联系人Web数据库.accdb”,保存位置在默认Window系统所安装时确定的“我的文档”中显示在右侧的窗格中,参见图1-3所示当然用户可以自己指定文件名和文件保存的位置,如果要更改文件名,直接在文件名文本框中输入新的文件名,如要更改数据库的保存位置,单击“浏览”按钮,再打开的“文件新建数据库”对话框中,选择数据库的保存位置。

数据库第三章的习题参考答案.doc

3-2 对于教务管理数据库的三个基本表 S(SNO,SNAME, SEX, AGE,SDEPT) SC(SNO,CNO,GRADE) C(CNO,CNAME,CDEPT,TNAME) 试用SQL的查询语句表达下列查询: ⑴检索LIU老师所授课程的课程号和课程名。 ⑵检索年龄大于23岁的男学生的学号和姓名。 ⑶检索学号为200915146的学生所学课程的课程名和任课教师名。 ⑷检索至少选修LIU老师所授课程中一门课程的女学生姓名。 ⑸检索WANG同学不学的课程的课程号。 ⑹检索至少选修两门课程的学生学号。 ⑺检索全部学生都选修的课程的课程号与课程名。 ⑻检索选修课程包含LIU老师所授课程的学生学号。 解: ⑴SELECT C#,CNAME FROM C ’LIU’; WHERE TEACHER= ⑵SELECT S#,SNAME FROM S ’M’; WHERE AGE>23 AND SEX= ⑶SELECT CNAME,TEACHER FROM SC,C ’200915146’  WHERE SC.C#=C.C# AND S#= ⑷SELECT SNAME (连接查询方式) FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’F’ AND ’LIU’; TEACHER= 或: SELECT SNAME (嵌套查询方式) FROM S ’F’AND S# IN WHERE SEX= (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C ’LIU’)) WHERE TEACHER= 或: SELECT SNAME (存在量词方式)

MySQL 数据类型 (列表)

MySQL数据类型(列表) 数据类型描述字节推荐使用 SMALLINT整数,从-32000到+32000范围2存储相对比较小的整数。 比如:年纪,数量 INT整数,从-2000000000到 +2000000000范围4存储中等整数 例如:距离 BIGINT不能用SMALLINT或INT描述的 超大整数。8存储超大的整数 例如:科学/数学数据 FLOAT单精度浮点型数据4存储小数数据 例如:测量,温度 DOUBLE双精度浮点型数据8需要双精度存储的小数数据 例如:科学数据 DECIMAL用户自定义精度的浮点型数据变量;取决于精度与长度以特别高的精度存储小数数据。 例如:货币数额,科学数据 CHAR固定长度的字符串特定字符串长度(高达255字符)存储通常包含预定义字符串的变量 例如:定期航线,国家或邮编 VARCHAR具有最大限制的可变长度的字符 串变量;1+实际字符串长度(高 达255字符) 存储不同长度的字符串值(高达一个特定的 最大限度). 例如:名字,密码,短文标签 TEXT没有最大长度限制的可变长度的 字符串Variable;2+聽actual string length 存储大型文本数据 例如:新闻故事,产品描述 BLOB二进制字符串变量;2+实际字符串长度存储二进制数据 例如:图片,附件,二进制文档 DATE以yyyy-mm-dd格式的日期3存储日期 例如:生日,产品满期 TIME以hh:mm:ss格式的时间3存储时间或时间间隔 例如:报警声,两时间之间的间隔,任务开 始/结束时间 DATETIME以yyyy-mm-ddhh:mm:ss格式结合 日期和时间8存储包含日期和时间的数据 例如:提醒的人,事件 TIMESTAMP以yyyy-mm-ddhh:mm:ss格式结合 日期和时间4记录即时时间 例如:事件提醒器,“最后进入”的时间标 记 YEAR以yyyy格式的年份1存储年份 例如:毕业年,出生年 ENUM一组数据,用户可从中选择其中 一个1或2个字节存储字符属性,只能从中选择之一 例如:布尔量选择,如性别 SET一组数据,用户可从中选择其中 0,1或更多。从1到8字节;取决于设置的大小存储字符属性,可从中选择多个字符的联 合。 例如:多选项选择,比如业余爱好和兴趣。

第三章 表和数据库

(四)表的操作 一、选择题 1. 定位第一条记录上的命令是______。 A. GO TOP B. GO BOTTOM C. GO 6 D. SKIP 2. 备注型字段的数据用来存放______。 A. 指向备注的具体内容 B. 指向DBF文件的指针 C. 指向FPT文件的文件名 D. 指向FPT文件中文字块的指针 3. 在Visual FoxPro中,使用LOCA TE FOR命令按条件查找记录,当查找到满足条件 的第一条记录后,如果还需要查找下一条满足条件的记录,应使用_______。 A. LOCATE FOR命令 B. SKIP命令 C. CONTINUE命令 D. GO命令 4. 在Visual FoxPro中,在当前工作区打开student表的情况下,将整个表复制到stu表的 命令是_______。 A. copy to stu B. copy all to stu C. copy structure to stu D. copy to stu sdf 5. 在Visual FoxPro中,表结构中的逻辑型、通用型、日期型字段的宽度由系统自动给出, 它们分别为: A. 1、4、8 B. 4、4、10 C. 1、10、8 D. 2、8、8 6. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1 时,EOF()为真;BOF()为真时,命令?RECN()的结果分别是______。 A. 1,11,1 B. 1,10,1 C. 1,11,0 D. 1,10,0 7. 下列关于在浏览窗口追加记录的描述中,错误的一条是_______。 A. 执行“显示(V)”菜单中的“追加方式(A)”命令,可在当前表的末尾连续追加多个新记录 B. 执行“显示(V)”菜单中的“追加方式(A)”命令,只能在当前表的末尾追加一个新记录 C. 执行“表(A)”菜单中的“追加新记录(N)”命令,只能在当前表的末尾追加一个新记录 D. 执行“表(A)”菜单中的“追加记录(A)”命令,可在当前表的末尾追加一批记录,但其数 据来源为其他表或文本文件

mysql字段类型

1. mysql的数据类型 在mysql中有如下几种数据类型: (1)数值型 数值是诸如32 或153.4 这样的值。mysql 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。而 1.24e12 不是合法的,因为指数前的符号未给出。 浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。 数值前可放一个负号“-”以表示负值。 (2)字符(串)型 字符型(也叫字符串型,简称串)是诸如“hello,world!”或“一个馒头引起的血案”这样的值,或者是电话号码这样的值。既可用单引号也可用双引号将串值括起来。 初学者往往分不清数值和字符串的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的是要参与计算的,比如它是金融中的一个货款总额;而字符型的是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。 (3)日期和时间型 日期和时间是一些诸如“2006-07-12”或“12:30:43”这样的值。mysql还支持日期/时间的组合,如“2006-07-12 12:30:43”。 (4)null值 null表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是null 值。 我们用create table语句创建一个表(参看前面的章节),这个表中包含列的定义。例如我们在前面创建了一个joke表,这个表中有content和writer 两个列: create table (

03第三章关系数据库(答案)

第三章关系数据库 、单项选择题 1、实体是信息世界中的术语,与之对应的关系数据库术语为(A)。 A、元组 B、数据库C字段D、文件 2、关系数据表的主关键字由(D)个字段组成。 A、一个 B、两个 C、多个 D、一个或几个3、在概念模型中,一个实体集对应于关系模型中的一个(D)。 A、元组 B、字段 C、属性 D、关系 4、下列叙述中,(A)是不正确的? A、一个关系中可以出现相同的行 B、关系中的列称为属性 C、关系中的行称为元组 D、属性的取值范围称为域 5、下列关于关系模式的码的叙述中,(C)是不正确的? A、从候选码中选出一个作为主码,在关系中只能有一个主码 B、主码可以是单个属性,也可以是属性组 C、在关系中只能有一个候选码 D、若一个关系模式中的所有属性构成码,则称为全码 6、关于关系模式的关键字,以下说法正确的是(B)。 A、一个关系模式可以有多个主关键字 B、一个关系模式可以有多个侯选关键字 C、主关键字可以取空值 D、关系模式必须有主关键字

7、在关系数据库中,关系是指(D)。 A、视图 B、属性 C、实体 D、二维表 &如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B 的笛卡尔积表示(A)。 A、所有可能选课的情况 B、所有学生选部分课程的情况 C、所有课程被部分学生选课的情况 D、均不是 9、如果集合A含2个元素,集合B含3个元素,则A与B的笛卡尔积包含(B)个元素。 A、2 B、6 C、3 D、5 10、数据的完整性是指(C)。 A、数据的存储和使用数据的程序无关 B、防止数据被非法使用 C、数据的正确性、一致性 D、减少重复数据 11、关系模型中有三类基本的完整性约束,定义外部关键字实现的是 (C)。 A、实体完整性 B、域完整性 C、参照完整性 D、实体完整性、参照完整性和域完整性12、某表的性别字段只能输入男或女,属于(B)约束。 A、实体完整性 B、域完整性 C、参照完整性 D、实体完整性、参照完整性和域完整性 1

MySQL论坛数据库建表实例(张伟)

CREATE TABLE BBSAccount( AccountID bigint auto_increment primary key, NickName varchar(30) NOT NULL, Birthday datetime, Password varchar(20), State char(2), SEmail varchar(50)); CREATE TABLE BBSSector( SectorID int auto_increment primary key, AccountID bigint not null, SectorName varchar(20) not null, ClickingRate int default ‘0’, TopicCount bigint default ‘0’, FOREIGN KEY(AccountID )REFERENCES BBSAccount(AccountID) ON UPDATE CASCADE ON DELETE RESTRICT);

CREATE TABLE BBSTopic( TopicID bigint auto_increment primary key, AccountID bigint not null, Title varchar(50) not null, TopicText text not null, TopicDate timestamp null default current_timestamp, ReplyCount int not null, ClickingRate int default ‘0’, SectorID int not null, FOREIGN KEY(AccountID) REFERENCES BBSAccount(AccountID)ON UPDATE CASCADE ON DELETE RESTRICT, FOREIGN KEY(SectorID) REFERENCES BBSSector(SectorID)ON UPDATE CASCADE ON DELETE RESTRICT); CREATE TABLE BBSReply(

第3章数据库、表的创建和使用

第三章数据库与表的创建和使用 数据库的概述 数据库的组成 数据库的基本组成 数据库由一个以上相互关联的数据表组成,可以包含一个或多个表、视图、到远程数据源的连接和存储过程。 数据库表:一张数据库表只能属于一个数据库,数据库表与数据库之间通过 双向链接实现的;前链(在数据库中),后链(在数据库表中) 视图(view):一个保存在数据库中的、由引用一个或多个表、或其他视图的 相关数据组成的虚拟表,可以是本地的、远程的或带参数的。 存储过程(stored procedure):是保存在数据库中的一个过程。 该过程 能包含一个用户自定义函数中的任何命令和函数。 数据库文件: 扩展名为 .DBC 创建数据库时系统数据库备注文件: 扩展名为 .DCT 自动生成3个文件数据库索引文件: 扩展名为 .DCX 数据字典(自学)

3.2数据库的创建、打开、关闭 数据库文件: 扩展名为 .DBC 创建数据库时系统数据库备注文件: 扩展名为 .DCT 自动生成3个文件数据库索引文件: 扩展名为 .DCX 数据库的创建 1. 菜单操作方式创建数据库(菜单,工具栏,项目管理器) 2. 命令方式创建数据库 Create database [数据库名|] 数据库的打开、关闭 (1)打开数据库: 方法1:菜单操作: 方法2:命令方式: open database 数据库名( 2 ) 关闭数据库: 1)“项目管理器”选定数据库进行关闭 2)从命令窗口中输入命令: close database && 关闭当前数据库,并同时关闭其表 close database all && 关闭所有打开的数据库close all && 关闭所有被打开的数据库,项目管理器

Navicat与Mysql详解

Navicat与mysql详解 第一部分对Navicat的操作 1.连接 创建新连接 首先启动Navicat for MySQL,点击左上角的【连接】(如图): 点击之后便会出现如图所示的界面(如图): 连接名可以任意取,主机名或IP地址则填写你需要连接数据库的IP地址,如是本地,则填localhost,但推荐填写,这表示回送地址,指本地机,一般是用来测试的。端口默认为3306,用户名默认是root,而密码则是安装时自己填写的密码。 填写完后,可点击该界面左下角的测试连接,如显示连接成功则可操纵数据库,如失败,请仔细检查,或度娘。

2.数据库 创建新数据库 双击你创建的连接,你会发现有几个MySQL预先创建好的数据库,这个你可暂且不管。自己新建几个数据库。 右击你新建的连接,点击新建数据库。 数据库名自取,字符集一般选uft8,排序规则可自选。 3.表 创建新表 双击你创建的数据库,如图,我创建的数据库名叫test,双击之后会变出现一些选项。 右击表,新建表。 如图所示,每一行数据有六列,从左到右分别是:数据的名称(最好是英文),该数据的类型(可度娘MySQL的数据类型,可对应java的基本数据类型),该数据允许的长度,允许保留的小数点位数,允不允许可以为空值,最后一个是设置主键。 一个表最好有一个主键,同一个表里每一行数据的主键值各不相同,这样才能将同一表的数据区分开来,操纵数据也方便得多。 如图填写完之后,点击左上角的保存,此时会弹出一个窗口让你填写表名,表名写入之后返回Navicat主窗口,就会发现自己新建的数据库里多了一个表。 依次,我们新建四个表,并且使四个表之间相互联系。

数据库与表的基本操作

第四章数据库与表的基本操作 实验4-1 数据库及表的操作 (一)实验目的 1.掌握创建数据库的基本操作方法。 2.熟练掌握创建表结构和输入记录的操作方法。 3.熟练掌握修改表结构、浏览和修改表记录数据的操作。 4.熟练掌握建立索引的操作。 5.掌握创建表间联系的操作。 (二)实验内容及步骤 1.创建数据库 【实例4-1】在实验2-1所建立的“教学管理.pjx”项目中,创建一个“学生成绩.dbc”数据库。 操作步骤如下: (1)打开“教学管理.pjx”项目。 (2)在“项目管理器”窗口中,选择“数据库”,然后单击“新建”按钮,打开“新建数据库”对话框,单击其中的“新建数据库”按钮,打开“创建”对话框,如图4-1所示。 图4-1“创建”对话框 (3)在“保存在”文本框中,选择保存数据库的文件夹“程序VX”;在“数据库名”文本框中,输入数据库名称“学生成绩”。 (4)单击“保存”按钮,即在指定位置建立一个“学生成绩.dbc”数据库文件。 此时,在VFP主窗口中弹出一个“数据库设计器”窗口,同时还激活了“数据库设计器”工具栏,如图4-2所示。

18 数据库应用学习与实训指导 图4-2“数据库设计器”窗口 2.创建数据表 【实例4-2】在“教学管理.pjx”项目中,创建学生表(Student.dbf)、成绩表(Grade.dbf)、课程表(Course.dbf)、授课表(Teach.dbf)和教师表(Teacher.dbf)。各个表的结构和数据记录如图4-3、图4-4、图4-5、图4-6、图4-7、图4-8、图4-9、图4-10、图4-11和图4-12所示。 图4-3学生表(Student.dbf)的结构 图4-4学生表(Student.dbf)的记录浏览窗口

相关文档
最新文档