您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > MYSQL数据库表操作
MYSQL MYSQL数据库表操作数据库表操作内容内容数据库基础知识 SQL概述 SQL语言 MySQL数据类型数据库表操作 MySQL运算符 MySQL常用函数数据库数据库数数据据表表存储过程存储过程视视图图 … …. . … … … 订单订单订单客户客户客户产品产品产品产品数据库表数据表数据表行(记录) 列(字段)数据在表中的存放数据在表中的存放编号姓名年龄民族部门1王涛33汉族人事管理部2李梅27汉族人事管理部1127李梅21133王涛1部门编码民族编码年龄姓名编号回族2汉族1民族民族编码市场营销部2人事管理部1部门部门编码存在冗余为减少数据查找的麻烦,允许数据有一定的冗余为减少数据查找的麻烦,允许数据有一定的冗余数据存储的完整性数据存储的完整性 Roll Number Name Address BookTaken 12 Alicia Ruth 12, Temple Street AC091 14 Jason Darren 123, Sunset Blvd. AC043 15 Mary Beth 32, Golden Avenue AC021 12 Alicia Ruth 12, Temple Street AC043 12 Alicia Ruth 12, Tmple Street AC011 15 Mary Beth 33, Golden Avenue AC011 不同的地址!存在不正确、不准确的数据,数据库“失去了完整性” 存在不正确、不准确的数据,数据库“失去了完整性” 姓名数据的完整性数据的完整性数据完整性数据完整性可靠性准确性完整性分类完整性分类数据实体完整性字段完整性引用完整性自定义完整性数据实体完整性数据实体完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012 ….地址姓名学号江西南昌雷铜0010014×约束方法:唯一约束、主键约束、标识列约束方法:唯一约束、主键约束、标识列字段完整性字段完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012 ….地址姓名学号湖北江门李亮8700000000×约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束引用完整性引用完整性河南新乡赵可以0010016河南新乡张丽鹃0010015江西南昌雷铜0010014湖南新田吴兰0010013山东定陶李山0010012 … 地址姓名学号 98 0010021 数学×约束方法:外键约束约束方法:外键约束科目学号分数 … 数学001001288数学001001374语文001001267语文001001381数学001001698自定义完整性自定义完整性 AV121322 乔峰CV0016 AV372133 玄痛CV0015 AV378291 沙悟净AV0014 AV378290 猪悟能AV0013AV378289孙悟空AV0012 ….会员证用户姓名用户编号约束方法:规则、存储过程、触发器约束方法:规则、存储过程、触发器帐号姓名信用 ….00192孙悟空700288猪悟能612333段誉890111虚竹4093000岳不群-10×触发器:检查信用值触发器:检查信用值完整性包括完整性包括… … 输入的类型是否正确? ——年龄必须是数字输入的格式是否正确? ——身份证号码必须是18位是否在允许的范围内? ——性别只能是”男”或者”女” 是否存在重复输入? ——学员信息输入了两次是否符合其他特定要求? ——信誉值大于5的用户才能够加入会员列表 …… 列值要求(约束)整行要求(约束)SQL SQL概述概述什么是SQL? SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL SQL语法组成语法组成 DML( Data Manipulation Language数据操作语言) ——查询、插入、删除和修改数据库中的数据; ——SELECT、INSERT、 UPDATE 、DELETE等; DCL( Data Control Language数据控制语言) ——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等; DDL( Data Definition Language数据定义语言) ——用来建立数据库、数据库对象和定义其列 ——CREATE TABLE 、DROP TABLE、ALTER TABLE 等功能函数 ——日期函数、数学函数、字符函数、系统函数等MySQL MySQL中使用中使用SQL SQL语言几点说明语言几点说明属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完。箭头()代表SQL语句没有输入完 SQL语句关键字和函数名不区分大小写MySQL MySQL数据类型数据类型数据类型种类数值列类型字符串列类型日期和时间列类型数值型分为整型和浮点型整型:可以由十进制和十六进制表示整数由数字序列组成,如:1,100。由十六进制表示方法:0x且后面加1—9和 A—F 的任意数字或字母,并且0x中的X不能大写。浮点型: 浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。数据类型种类数据类型种类字符串: 由单引号或者双引号括起来的字符或者数字。如:”abc”,‘abc10’ 字符串中要用转义字符才能表示的特殊符号数据类型种类数据类型种类日期和时间值是存储如“2005 11” 或者“12:00:00”这样的数值的值。在MySQL中日期是按”年月日” 的顺序。 NULL值是一种无类型的值,表示“空,什么也没有”。数据类型种类数据类型种类MySQL为除了NULL值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。数值列类型所有数值列类型的类型名及其说明和所占的字节数见下表:数值列类型数值列类型数值列类型数值列类型数值列类型数值列类型数值列类型包括整型和浮点型说明:TINYINT, SAMLLINT, MEDIUMINT, INT, BIGINT每个数据类型的取值范围不同,故分别可以表示不同的数值范围。在定义整型列时,可以指定可选的显示尺寸M,M是从1到255的值,它表示显示列中值的字符数。数值列类型数值列类型例如:INT(4) 意思是指定了一个具有4个字符显示宽度的INT列。如果定义了一个没有明确宽度的整数列,则会分配缺省的宽度,缺省值为每种类型的最长值的长度。对于每种浮点型,可指定一个最大的显示尺寸M和小数位数D,M的取值应该是030,但小于M2。M和D对于 DECIMAL是必须的。数值列类型数值列类型AUTO_INCREMENT 自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入 NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为PRIMARY KEY 或者定义为UNIQUE键。举例: create table t(id int auto_increment not null primary key); UNSIGNED 无符号,此属性禁用负值,将数值的取值范围从零开始。举例: create table t(num tinyint , num2 tinyint unsigned); 数值列的数值列的完整性约束NULL和NOT NULL 默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。 DEFAULT 可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。 ZEROFILL 前导零填充数值类型值以达到列的显示宽度。举例: create table data2(fi int,fiu int unsigned,fiuz int unsigned zerofill); nsert into data2 values(10,10,10),(10,10,10); 数值列的数值列的完整性约束字符串列类型字符串列类型说明:对于可变长的字符串类型,其长度取决于实际存放在列中的值的长度。此长度在上表中用L来表示。附加若干额外字节,用来记录字符串长度,也就是说总长度等于L+n(n=1、2、3、4、8)字符串列类型字符串列类型CHAR和VARCHAR类型 CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式: CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。 VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。字符串列类型字符串列类型BLOB和TEXT类型BLOB是二进制大对象,如果想存储二进制数BLOB将是最佳选择,而TEXT与之相同,只是BOLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。 ENUM 和SET类型是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)字符串列类型字符串列类型字符串列类型的可选属性 BINARY 使用此属性可以使列值作为二进制串处理,即看成BLOB类型。 NULL 和NOT NULL 同数值型功能相同 DEFAULT 同数值型功能相同字符串列类型字符串列类型所有时间和日期列类型的类型名及其说明和所占的字节数见下表:日期和时间列类型每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加表示日期时必须先按:年,月,日的顺序给出 DATE ,TIME ,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为“YYYYMMDD”, “hh:mm:ss”和“YYYYMMDD hh:mm:ss”,对于 DATETIME类型,日期和时间部分都需要 TIMESTAMP 时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是19700101000000到2037年的某个时间,主要用于记录更改或创建某个记录日期和时间列类型例 create table data12(f_data date,f_time time); insert into data12 values('20105 20',123412),(650503,'3:4:1'); create table data14(f_datetime datetime,f_timetamp timestamp); insert into data14 values('19991111 11:11:11','2002 1111 11:11:11'); insert into data14 values (now(),null); 日期和时间列类型总结:常用数据类型总结:常用数据类型分类备注和说明数据类型说明二进制数据类型存储非子符和文本的数据 BLOB 可用来存储图像文本数据类型字符数据包括任意字母、符号或数字字符的组合 char 固定长度的非 Unicode 字符数据 varchar 可变长度非 Unicode 数据 text 存储长文本信息日期和时间日期和时间在单引号内输入 time 时间 date 日期 datetime 日期
本文标题:MYSQL数据库表操作
链接地址:https://www.777doc.com/doc-4375115 .html