《SQL数据库中的增删改查总结1.doc》由会员分享,可在线阅读,更多相关《SQL数据库中的增删改查总结1.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQL数据库中的增删改查总结1SQL数据库中的增删改查总结1一、增:有2种方法1.使用insert插入单行数据:语法:insertinto 表名 列名values 列 例:insertintoStrdents(姓名,性别,出生日期)values(邢金聪,男,1990/6/15)注意:如果省略表名,将依次插入所有列2.使用insert,select语句将现有表中的数据添加到已有的新表中语法:insertinto 已有的新表 列名 select 原表列名 from 原表名 例:insertintoaddressList(姓名,地址,电子邮件)selectname,address,emailfrom
2、Strdents注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致二、删:有中方法1.使用delete删除数据某些数据语法:deletefrom 表名 where 删除条件 例:deletefromawherename=邢金聪(删除表a中列 为邢金聪的行)注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名2.使用truncatetable删除整个表的数据语法:truncatetable 表名 例:truncatetableaddressList注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表三、改使用update更新修改
3、数据语法:update 表名 set 列名=更新 where 更新条件 例:truncatetableaddressList注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表四、查1.普通查询语法:select 列名 from 表名 where 查询条件表达试 orderby 排序的列名 asc或desc1).查询所有数据行和列例:select*froma说明:查询a表中所有行和2).查询部分行列-条件查询例:selecti,j,kfromawheref=5说明:查询表a中f=5的所有行,并显示i,j,k列3).在查询中使用更改列名例:selectname
4、as姓名fromawheregender=男说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示4).查询空行例:selectnamefromawheree-mailisnull说明:查询表a中e-mail为空的所有行,并显示name列;SQL语句中用isnull或者isnotnull来判断是否为空行5).在查询中使用常量例:selectname廊坊as地址froma说明:查询表a,显示name列,并添加地址列,其列 都为廊坊6).查询返回限制行数(关键字:top)例:selecttop6namefroma说明:查询表a,显示列name的前行,top为关键字(or
5、acle中没有top关键字用rownum替代)select*fromawhererownum 67).查询排序(关键字:orderby,asc,desc)例:selectnamefromawheregrade =60分组查询orderbydesc说明:查询表中成绩大于等于60的所有行,并按降序显示name列;默认为升序.模糊查询1).使用like进行模糊查询注意:like运算符只用语字符串,多表例:select*fromawherenamelike赵%说明:查询显示表a中,n(参考:)ame字段第一个字为赵的记录2).使用between在某个范围内进行查询例:select*fromawhere
6、agebetween18and20说明:查询显示表a中年龄在18到20之间的记录3).使用in在列举数 内进行查询(in后是多个的数据)例:selectnamefromawhereaddressin(廊坊,石家庄,唐山)说明:查询表a中address 为廊坊或者石家庄或者唐山的记录,显示name字段.分组查询1).使用groupby进行分组查询例:selectstudentIDas学员编号,AVG(score)as平均成绩(注释:这里的score是列名)fromscore(注释:这里的score是表名)groupbystudentID2).使用having子句进行分组筛选例:selectstu
7、dentIDas学员编号,AVGfromscoregroupbystudentIDhavingcount(score) 1说明:接上面例子,显示分组后count(score) 1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件,.多表联接查询1).内联接在where子句中指定联接条件例:selecta.name,b.markfroma,bwherea.name=b.name说明:查询表a和表b中name字段相等的记录,并显示表a中的name字段和表b中的mark字段点击此链接可以查看大图点击此链接可以下载mindmanager原图扩展阅读:数据库语句增删改查mys
8、ql语句用法,添加、修改、删除字段一,连接MySQL二,MySQL管理与授权三,数据库简单操作四,数据库备份五,后记一,连接MySQL格式:mysql-h远程主机地址-u用户名-p回车输入密码进入:mysql-uroot-p回车Enterpassword:,输入密码就可以进入mysql进入了退出命令:exit或者ctrl+D二,MySQL管理与授权1.修改密码:格式:mysqladmin-u用户名-p旧密码password新密码2.增加新用户:grantcreate,select,update.(授予相关的操作权限)-on数据库.*-to用户名登录主机identifiedby密码操作实例:给r
9、oot用户添加密码:#mysqladmin-urootpassword52netseek因为开始root没有密码,所以-p旧密码一项可以省略.登陆测试:#mysql-uroot-p回车输入密码,成功登陆.将原有的mysql管理登陆密码52netseek改为52china.#mysqladmin-uroot-p52netseekpassword52china创建数据库添加用户并授予相应的权限:mysqlcreatedatabasephpbb;QueryOK,1rowaffected(0.02sec)mysqlusephpbb;Databasechangedmysqlgrantcreate,sel
10、ect,update,insert,delete,alter-onphpbb.*-tophpbbrootlocalhostidentifiedby52netseek;QueryOK,0rowsaffected(0.00sec)授予所有的权限:grantallprivilegesonbbs.*tobbsrootlocalhostidentifiedby52netseek回收权限:revokecreate,select,update,insert,delete,alteronphpbb.*fromphpbbrootlocalhostidentifiedby52netseek;完全将phpbbroo
11、t这个用户删除:usemysqldeletefromuserwhereuser=phpbbrootandhost=localhost;flushprivileges;刷新数据库三,数据库简单操作1.显示数据库列表:showdatabases;mysqltest2.使其成为当前操作数据库usemysql;打开数据库.showtables;显示mysql数据库中的数据表.3.显示数据表的表结构:describe表名;describeuser;显示user表的表结构:4.创建数据库,建表createdatabase数据库名;use数据库名;createtable表名(字段设定列表)5.删除数据库,册
12、除表dropdatabase数据库名;droptable表名;6.显示表中的记录;select*from表名;7.修改数据库结构:增加字段:altertabledbnameaddcolumn修改字段:altertabledbnamechange删除字段:altertabledbnamedropcolumn实例操作:createdatabaseoffice;useoffice;mysqlcreatetablepersonal(-member_nochar(5)notnull,-namechar(,-birthdaydate,-exam_scoretinyint,-primarykey(membe
13、r_no)-);QueryOK,0rowsaffected(0.01sec)descpersonal;显示表结构:+-+-+-+-+-+-+|Field|Type|Null|Key|Default|Extra|+-+-+-+-+-+-+|member_no|char(5)|PRI|name|char(|YES|NULL|birthday|date|YES|NULL|exam_score|tinyint(4)|YES|NULL|+-+-+-+-+-+-+4rowsinset(0.00sec)insertintopersonalvalues(001,netseek,1983-03-15,95);i
14、nsertintopersonalvalues(002,heihei,1982-02-24,90);insertintopersonalvalues(003,gogo,1985-05-21,85);insertintopersonalvalues(004,haha,1984-02-25,84);insertintopersonalvalues(005,linlin,1982-04-28,85);您正在看的MySQL教程是:MySQL数据库学习笔记。insertintopersonalvalues(006,xinxin,1985-03-15,75);mysqlselect*frompersona
15、l;+-+-+-+-+|member_no|name|birthday|exam_score|+-+-+-+-+|001|netseek|1983-03-15|95|002|heihei|1982-02-24|90|003|gogo|1985-05-21|85|004|haha|1984-02-25|84|005|linlin|1982-04-28|85|006|xinxin|1985-03-15|75|+-+-+-+-+修改数据库表:要求:在birthday这后增加一个为height的字段,数据类型为tinyint.将字段exam_score改名为scores,数据类型不变altertabl
16、epersonal-addcolumnheighttinyintafterbirthday,-changecolumnexam_scorescorestinyint;mysqlselect*frompersonal;+-+-+-+-+-+|member_no|name|birthday|height|scores|+-+-+-+-+-+|001|netseek|1983-03-15|NULL|95|002|heihei|1982-02-24|NULL|90|003|gogo|1985-05-21|NULL|85|004|haha|1984-02-25|NULL|84|005|linlin|19
17、82-04-28|NULL|85|006|xinxin|1985-03-15|NULL|75|+-+-+-+-+-+给表中插入数据:updatepersonalsetscores=95+5wherename=netseek;selectscoresfrompersonalwherename=netseek;+-+|scores|+-+|100|+-+删除表名字为gogo所有的信息中的的:deletefrompersonalwherename=gogo;册除数据库中的表:mysqldroptableifexistspersonal;三,数据库的导入与导出导出:使用selectintooutfil
18、efilename语句使用mysqldump实用程序使用selectintooutfilefilename语句1.只能处理单个表,输出文件只有数据,没有表结构我们要将office,其中有一个表为personal,现在要把personal卸成文本文件out.txt:useoffice;select*frompersonalintooutfileout.txt;可以看在/var/lib/mysql/office/目录下有out.txtselect*frompersonalintooutfile./out.txt;可以看在out.txt在/var/lib/mysql/目录下用out.txt2.使用m
19、ysqldump实用程序(可以轻松处理多个表)#cd/var/lib/mysql导出建立相关表的建表命令和插入指令#mysqldumpbbsbbs.sql将数据库bbs导入到bbs.sql中如果要将bbs.sql导入数据库可以使用:mysqlcreatedatabasebbstest;先建立一个名为office的数据库.#mysqlbbstestbbscreate.sql只想导出插入数据的sql指令:#mysqldump-tbbsbbsinsert.sql同时导出数据库中建表指令和表中的数据:#mysqldump-T./bbscdb_admingroups(其中./表示当前目录,cdb_adm
20、ingroups为bbs数据库其中的一个表)#lscdb_admingroups.sql导出了建表指令cdb_admingroups.txt导出了表中的数据导入:从文件中加载数据库:mysqlloaddatainfile/tmp/name.txtintotablenames;mysqlselect*fromnames;四,数据库备份1.手动拷贝备份:MySQL数据库的文件保存在目录/var/lib/mysql中,数据库为每个库建立一个目录,所有的数据库文件都在这些目录中.rootlinuxheromysql#lsrootlinuxheromysql#servciemysqldstop先停止数据
21、库bbsmysqlmysql.sockphpbbtestoffice显示其中的数据库.如果我们要将现在的数据库目录备份为mysql.bak.rootlinuxherolib#cp-rfmysqlmysql.bak如果数据库遭到了破坏,现在要将数据库恢复:rootlinuxherolib#cp-rfmysql.bak/*mysql恢复数据库以后,var/lib/mysql中的文件已改变了,要更改文件的所属权限必须改变MySQL数据库的用户读写权限。所以我们得启动和运行mysql,并登陆数据库:rootlinuxherolib#/etc/init.d/mysqldstartrootlinuxher
22、olib#mysql您正在看的MySQL教程是:MySQL数据库学习笔记。-uroot-pEnterpassword:输入密码成功登陆.mysqlshowdatabses;2.利用mysqldump来备份数据库rootlinuxheromysql#mysqldump-optbbs-uroot-pbbs.sqlEnterpassword:注:-opt添加备份的其它选项,bb为其中一个数据库名,上面的意思是:使用重定向输出将备份写入到文件bb.sql中.rootlinuxheromysql#lessbbs.sql如果要恢复bb这个数据库,则进行如下操作:rootlinuxheromysql#mysqlbbs-uroot-pmysql.bakEnetrpassword:输入密码即可恢复所有数据库,不用输入数据库的名字:rootlinuxheromysql#mysql-uroot-pSQL数据库中的增删改查总结1:该篇文章建议您自主创作。 第 10 页 共 10 页