MySql数据库基本操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SQL语法组成•DML(DataManipulationLanguage数据操作语言)——查询、插入、删除和修改数据库中的数据;——SELECT、INSERT、UPDATE、DELETE等;•DCL(DataControlLanguage数据控制语言)——用来控制存取许可、存取权限等;——GRANT、REVOKE等;•DDL(DataDefinitionLanguage数据定义语言)——用来建立数据库、数据库对象和定义其列——CREATETABLE、DROPTABLE、ALTERTABLE等•功能函数——日期函数、数学函数、字符函数、系统函数等显示表结构操作–语法:describe表名;desc表名;叙述:用于显示表的创建结构。删除数据库或表操作•删除表操作语法:droptable[ifexists]tab_name[,tab_name]...叙述:从数据库中删除给定的表。如果给出ifexists子句,则删除不存在的表不会出错。•删除数据库操作语法:dropdatabase[ifexists]db_name叙述:删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出ifexists子句,则删除不存在的数据库不会出错。更改表结构操作•语法:altertable表名action;•说明:action可以是如下语句:–add列名建表语句[first|after列名]可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列–addprimarykey(列名)为表添加一个主键,如果主键已经存在,则出现错误–addforeignkey(列名)references表名(列名)为表添加一个外键–alter列名setdefault默认值可以更改指定列默认值•change旧列名新列名建表语句[first|after列名]可以更改列类型和列名称,如果原列的名字和新列的名字相同•modify列名建表语句[first|after列名]和change的作用相同•drop列名//可以删除一列•dropprimarykey//可以删除主键•engine类型名//可以改变表类型•renameas新表名//可以将表名更改•举例1:•向people表中添加字段address2,类型为varchar,最大长度为100altertablepeopleaddaddress2varchar(100);•举例2:•将people表中的name列默认值改为100:altertablepeoplealternamesetdefault100;•举例3:•向student表增加“入学时间”列,其数据类型为日期型。altertablestudentaddscomedate;注:无论基本表中原来是否已有数据,新增加的列一律为空值。•举例4:•将年龄的数据类型改为半字长整数。altertablestudentmodifysagesmallint;注:修改原有的列定义有可能会破坏已有数据插入记录操作•语法:•叙述:–如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用‘’或“”引号括起来•举例1:向people表中添加一条记录:insertintopeople(name,age)values(“zhangsan”,20);INSERT[INTO]表名[列名]VALUES值列表插入案例•创建一张学生信息表,往表中插入数据createtablestudents(scodeintnotnullauto_increment,snamevarchar(20)notnull,saddressvarchar(20)default‘未知’,sgradeint,semailvarchar(20),ssexbit,primarykey(scode));插入数据行1注意事项1:每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(‘小明')×插入数据行2注意事项2:每个数据值的数据类型、精度和小数位数必须与相应的列匹配;INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(‘张青裁’,‘上海松江’,ZQC,‘ZQC@Sohu.com’,‘男')×插入数据行3注意事项4:如果在设计表的时候就指定了某列不允许为空,则必须插入数据;INSERTINTOStudents(SAddress,SGrade,SEmail,SSEX)VALUES('上海松江',6,'ZQC@Sohu.com',0)×插入数据行4注意事项6:具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES('张青裁',DEFAULT,6,'ZQC@Sohu.com',0)插入多行数据INSERTSTUDENTS(SName,SGrade,SSex)VALUES('测试女生1',75,0),('测试女生2',77,0),('测试女生3',83,0),(‘测试男生1',81,1),('测试女生4',90,0),(‘测试男生2',94,1),('测试女生5',51,0),(‘测试男生3',53,1);INSERTINTO表名(列名)VALUES(列名值),(列名值),(列名值)……插入多行数据INSERTINTOTongXunLu('姓名','地址','电子邮件')SELECTSName,SAddress,SEmailFROMStudentsINSERTINTO表名(列名)SELECT列名FROM源表名学生、课程、成绩插入数据•学生信息–'95001','洛燕妮','女',20,'信息系'–'95002','欧阳炎','男',19,'计算机系'–'95003','何东升','男',21,'美术系'–'95004','刘晨','男',18,'计算机系'–'95005','沙明华','女',21,'美术系'–'95006','欧阳宝宝','男',19,'美术系’•课程信息–1,'JAVA'–2,'C'–3,'.NET'•成绩信息–'95001',1,98'95002',1,50'95004',1,70–'95003',4,95'95005',4,40'95006',4,77–'95001',2,80'95002',3,58'95006',2,70更改记录操作•语法:•叙述:where子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据。●举例:将student表中的所有学生名称为Alex的改为Tom:updatestudentsetsname=Tomwheresname=Alex;UPDATE表名SET列名=更新值[WHERE更新条件]更新数据行UPDATEStudentSETSSEX=0UPDATEStudentSETSdept='家政系'WHERESdept='刺绣系'UPDATEScSETGrade=Grade+5WHEREGrade=95删除记录操作•语法:•叙述:此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除。•举例:删除student表中的所有年龄小于18岁的记录:deletefromstudentwheresage18;DELETEFROM表名[WHERE删除条件]补充说明•删除学生编号为'95005'的学生信息包括成绩信息deletefromstudent,scusingstudent,scwherestudent.sno=sc.studentidandstudent.sno='95005';•说明:表和字段的引用方式有两种:绝对引用和相对引用•绝对引用:数据库名.表名(.字段名)•相对引用:表名.(字段名)总结:常用数据类型分类备注和说明数据类型说明二进制数据类型存储非子符和文本的数据BLOB可用来存储图像文本数据类型字符数据包括任意字母、符号或数字字符的组合char固定长度的非Unicode字符数据varchar可变长度非Unicode数据text存储长文本信息日期和时间日期和时间在单引号内输入time时间date日期datetime日期和时间数值型数据该数据仅包含数字,包括正数、负数以及浮点数intsmallint整数floatdouble浮点数货币数据类型用于财务数据decimal定点数Bit数据类型表示是/否的数据bit存储布尔数据类型MySQL数据类型•数据类型种类•数值列类型•字符串列类型•日期和时间列类型数据类型种类•数值型分为整型和浮点型–整型:可以由十进制和十六进制表示整数由数字序列组成,如:1,100。由十六进制表示方法:0x且后面加1—9和A—F的任意数字或字母,并且0x中的X不能大写。–浮点型:浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。–字符串:由单引号或者双引号括起来的字符或者数字。如:”abc”,‘abc10’–字符串中要用转义字符才能表示的特殊符号•日期和时间值是存储如“2005-1-1”或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。•NULL值是一种无类型的值,表示“空,什么也没有”。数值列类型MySQL为除了NULL值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。•数值列类型所有数值列类型的类型名及其说明和所占的字节数见下表:•数值列类型包括整型和浮点型说明:TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT每个数据类型的取值范围不同,故分别可以表示不同的数值范围。在定义整型列时,可以指定可选的显示尺寸M(见上表),M是从1到255的值,它表示显示列中值的字符数。•例如:INT(4)意思是指定了一个具有4个字符显示宽度的INT列。如果定义了一个没有明确宽度的整数列,则会分配缺省的宽度,缺省值为每种类型的最长值的长度。•对于每种浮点型,可指定一个最大的显示尺寸M和小数位数D,M的取值应该是0-30,但小于M-2。M和D对于DECIMAL是必须的。•AUTO_INCREMENT自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOTNULL,并定义为PRIMARYKEY或者定义为UNIQUE键。举例:createtablet(idintauto_incrementnotnullprimarykey);•UNSIGNED无符号,此属性禁用负值,将数值的取值范围从零开始。举例:createtablet(numtinyint,num2tinyintunsigned);数值列的完整性约束•NULL和NOTNULL默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOTNULL,则必须在插入值时在此字段添入值,不允许插入NULL值。•DEFAULT可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。•ZEROFILL前导零填充数值类型值以达到列的显示宽度。举例:createtabletest2(num1intdefault1,num2intzerofill);字符串列类型•所有字符串列类型及其说明和所占的字节数见下表:说明:•对于可变长的字符串类型,其长度取决于实际存放在列中的值的长度。此长度在上表中用L来表示。附加若干额

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功