SQL数据库中的增删改查总结1
一、增:有2种方法
1.使用insert插入单行数据:
语法:insert[into]<表名>[列名]values<列值>
例:insertintoStrdents(姓名,性别,出生日期)values("邢金聪","男","1990/6/15")
注意:如果省略表名,将依次插入所有列
2.使用insert,select语句将现有表中的数据添加到已有的新表中
语法:insertinto<已有的新表><列名>select<原表列名>from<原表名>
例:insertintoaddressList("姓名","地址","电子邮件")selectname,address,email
fromStrdents
注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致
二、删:有2中方法
1.使用delete删除数据某些数据
语法:deletefrom<表名>[where<删除条件>]
例:deletefromawherename="邢金聪"(删除表a中列值为邢金聪的行)
注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名
2.使用truncatetable删除整个表的数据
语法:truncatetable<表名>
例:truncatetableaddressList
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能
用于有外建约束引用的表
三、改
使用update更新修改数据
语法:update<表名>set<列名=更新值>[where<更新条件>]
例:truncatetableaddressList
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能
用于有外建约束引用的表
四、查
1.普通查询
语法:select<列名>from<表名>[where<查询条件表达试>][orderby<排序的列
名>[asc或desc]]
1).查询所有数据行和列
例:select*froma
说明:查询a表中所有行和
2).查询部分行列--条件查询
例:selecti,j,kfromawheref=5
说明:查询表a中f=5的所有行,并显示i,j,k3列
3).在查询中使用AS更改列名
例:selectnameas姓名fromawheregender="男"
说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示
4).查询空行
例:selectnamefromawheree-mailisnull
说明:查询表a中e-mail为空的所有行,并显示name列;SQL语句中用isnull或者isnotnull
来判断是否为空行
5).在查询中使用常量
例:selectname"廊坊"as地址froma
说明:查询表a,显示name列,并添加地址列,其列值都为"廊坊"
6).查询返回限制行数(关键字:top)
例1:selecttop6namefroma
说明:查询表a,显示列name的前6行,top为关键字(oracle中没有top关键字
用rownum替代)
select*fromawhererownum<6
7).查询排序(关键字:orderby,asc,desc)
例:selectname
froma
wheregrade>=60分组查询
orderbydesc
说明:查询表中成绩大于等于60的所有行,并按降序显示name列;默认为ASC升序
2.模糊查询
1).使用like进行模糊查询
注意:like运算符只用语字符串,多表
例:select*fromawherenamelike"赵%"
说明:查询显示表a中,n(参考:)ame字段第一个字为赵的记录
2).使用between在某个范围内进行查询
例:select*fromawhereagebetween18and20
说明:查询显示表a中年龄在18到20之间的记录
3).使用in在列举数值内进行查询(in后是多个的数据)
例:selectnamefromawhereaddressin("廊坊","石家庄","唐山")
说明:查询表a中address值为廊坊或者石家庄或者唐山的记录,显示name字段
3.分组查询
1).使用groupby进行分组查询
例:selectstudentIDas学员编号,AVG(score)as平均成绩(注释:这里的score是列名)
fromscore(注释:这里的score是表名)
groupbystudentID
2).使用having子句进行分组筛选
例:selectstudentIDas学员编号,AVG
fromscore
groupbystudentID
havingcount(score)>1
说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组
时使用,分组后只能使用having来限制条件,
4.多表联接查询
1).内联接
①在where子句中指定联接条件
例:selecta.name,b.mark
froma,b
wherea.name=b.name
说明:查询表a和表b中name字段相等的记录,并显示表a中的name字段和表b中的
mark字段
点击此链接可以查看大图
点击此链接可以下载mindmanager原图
扩展阅读:数据库语句增删改查
mysql语句用法,添加、修改、删除字段
一,连接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"密码"
操作实例:
给root用户添加密码:
#mysqladmin-urootpassword52netseek
因为开始root没有密码,所以-p旧密码一项可以省略.登陆测试:
#mysql-uroot-p回车输入密码,成功登陆.
将原有的mysql管理登陆密码52netseek改为52china.#mysqladmin-uroot-p52netseekpassword"52china"
创建数据库添加用户并授予相应的权限:mysql>createdatabasephpbb;QueryOK,1rowaffected(0.02sec)mysql>usephpbb;Databasechanged
mysql>grantcreate,select,update,insert,delete,alter->onphpbb.*
->tophpbbroot@localhostidentifiedby"52netseek";QueryOK,0rowsaffected(0.00sec)
授予所有的权限:>grantallprivileges>onbbs.*
>tobbsroot@localhostidentifiedby"52netseek"
回收权限:
revokecreate,select,update,insert,delete,alteronphpbb.*
fromphpbbroot@localhostidentifiedby"52netseek";
完全将phpbbroot这个用户删除:>usemysql>deletefromuser
whereuser="phpbbroot"andhost="localhost";>flushprivileges;刷新数据库
三,数据库简单操作1.显示数据库列表:>showdatabases;mysqltest
2.使其成为当前操作数据库>usemysql;打开数据库.
>showtables;显示mysql数据库中的数据表.3.显示数据表的表结构:>describe表名;
>describeuser;显示user表的表结构:4.创建数据库,建表
>createdatabase数据库名;>use数据库名;
>createtable表名(字段设定列表)5.删除数据库,册除表>dropdatabase数据库名;>droptable表名;6.显示表中的记录;select*from表名;7.修改数据库结构:增加字段:
altertabledbnameaddcolumn修改字段:
altertabledbnamechange删除字段:
altertabledbnamedropcolumn
实例操作:
>createdatabaseoffice;>useoffice;
mysql>createtablepersonal(->member_nochar(5)notnull,->namechar(,->birthdaydate,->exam_scoretinyint,->primarykey(member_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");insertintopersonalvalues("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");
mysql>select*frompersonal;
+-----------+---------+------------+------------+|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,数据类型不变>altertablepersonal
->addcolumnheighttinyintafterbirthday,->changecolumnexam_scorescorestinyint;
mysql>select*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|1982-04-28|NULL|85||006|xinxin|1985-03-15|NULL|75|
+-----------+---------+------------+--------+--------+
给表中插入数据:
>updatepersonalsetscores=95+5wherename="netseek";>selectscoresfrompersonalwherename="netseek";+--------+|scores|+--------+|100|+--------+
删除表名字为"gogo"所有的信息中的的:>deletefrompersonalwherename="gogo";
册除数据库中的表:
mysql>droptableifexistspersonal;
三,数据库的导入与导出导出:
使用selectintooutfile"filename"语句使用mysqldump实用程序
使用selectintooutfile"filename"语句
1.只能处理单个表,输出文件只有数据,没有表结构
我们要将office,其中有一个表为personal,现在要把personal卸成文本文件out.txt:>useoffice;
>select*frompersonalintooutfile"out.txt";可以看在/var/lib/mysql/office/目录下有out.txt
select*frompersonalintooutfile"./out.txt";可以看在out.txt在/var/lib/mysql/目录下用out.txt
2.使用mysqldump实用程序(可以轻松处理多个表)#cd/var/lib/mysql导出建立相关表的建表命令和插入指令
#mysqldumpbbs>bbs.sql将数据库bbs导入到bbs.sql中
如果要将bbs.sql导入数据库可以使用:
mysql>createdatabasebbstest;先建立一个名为office的数据库.#mysqlbbstestbbscreate.sql只想导出插入数据的sql指令:#mysqldump-tbbs>bbsinsert.sql同时导出数据库中建表指令和表中的数据:
#mysqldump-T./bbscdb_admingroups(其中./表示当前目录,cdb_admingroups为bbs数据库其中的一个表)#ls
cdb_admingroups.sql导出了建表指令cdb_admingroups.txt导出了表中的数据导入:
从文件中加载数据库:
mysql>loaddatainfile"/tmp/name.txt"intotablenames;mysql>select*fromnames;
四,数据库备份
1.手动拷贝备份:
MySQL数据库的文件保存在目录/var/lib/mysql中,数据库为每个库建立一个目录,所有的数据库文件都在这些目录中.[root@linuxheromysql]#ls
[root@linuxheromysql]#servciemysqldstop先停止数据库bbsmysqlmysql.sockphpbbtestoffice显示其中的数据库.
如果我们要将现在的数据库目录备份为mysql.bak.[root@linuxherolib]#cp-rfmysqlmysql.bak如果数据库遭到了破坏,现在要将数据库恢复:[root@linuxherolib]#cp-rfmysql.bak/*mysql
恢复数据库以后,var/lib/mysql中的文件已改变了,要更改文件的所属权限必须改变MySQL数据库的用户读写权限。所以我们得启动和运行mysql,并登陆数据库:[root@linuxherolib]#/etc/init.d/mysqldstart[root@linuxherolib]#mysql
您正在看的MySQL教程是:MySQL数据库学习笔记。-uroot-pEnterpassword:输入密码成功登陆.mysql>showdatabses;2.利用mysqldump来备份数据库
[root@linuxheromysql]#mysqldump--optbbs-uroot-p>bbs.sqlEnterpassword:
注:--opt添加备份的其它选项,bb为其中一个数据库名,上面的意思是:使用重定向输出将备份写入到文件bb.sql中.[root@linuxheromysql]#lessbbs.sql
如果要恢复bb这个数据库,则进行如下操作:
[root@linuxheromysql]#mysqlbbs-uroot-p 如果要备份所有数据库: [root@linuxheromysql]#mysqldump--opt--all-databases-uroot-p>mysql.bak Enetrpassword:输入密码即可 恢复所有数据库,不用输入数据库的名字: [root@linuxheromysql]#mysql-uroot-p MySQL数据库个人学习笔记,这是我个人学习过程中的一个简单的总结,这些都是常用的,希望对于希望学习mysql的朋友有所帮助,如果有什么不对或者不妥的地方请多多指教,欢迎大家与我交流学习Linux相关的知识 常用链接 我的随笔我的评论我的参与最新评论我的标签 我的标签 redmine1.2.2安装ruby1.8.7rubygem1.6.2(5)eclipse(3) htmlcssjavascriptjqueryeasyui(3)tomcat安装和配置(2)xhEditor(1)HTML5(1)jdk配置(1)ogre(1) php安装和配置(1)serv-u安装配置(1)更多 随笔分类(44) ant(1)cc++ Coldfusion(6)discuz(3)easyUIhtml(1) innosetup(2)java(2) javascript(4)jquery(2)mysql(8)Ogre(1) rubyredmine(4)struts2(3)study(2)tomcat(1)web(4) 随笔档案(61) 201*年7月(2)201*年5月(8)201*年4月(5)201*年3月(28)201*年2月(9)201*年12月(9) mysql下载最新评论 1.Re:Mysql安装配置@李琳Mike 我说的是服务端,没考虑客户端,不过应该也是UTF-8吧。--_安静 2.Re:Mysql安装配置 default-character-set=gbk 我一般会选择UTF-8gbk的效果并不是十分理想有时候还是会出现乱码的情况~--李琳Mike 阅读排行榜 1.redmine-1.2.2安装截图粘贴插件(7323)2.redmine-1.2.2安装代码评审插件(6070)3.redmine-1.2.2安装服务(附图)(5736)4.redmine-1.2.2配置邮件通知(5409)5.web绿色环境搭建(4880) 评论排行榜 1.Mysql安装配置(2) 2.redmine-1.2.2安装截图粘贴插件(0)3.redmine-1.2.2安装代码评审插件(0)4.redmine-1.2.2配置邮件通知(0)5.redmine-1.2.2安装服务(附图)(0) 推荐排行榜 1.web绿色环境搭建(2)2.tomcat配置文件web.xml与server.xml解析--重要(2)3.mysqldump常用备份选项,只备份数据或结构的方法(2)4.Mysql安装配置(2) 5.redmine-1.2.2安装截图粘贴插件(1) Poweredby:博客园Copyright_安静 友情提示:本文中关于《SQL数据库中的增删改查总结1》给出的范例仅供您参考拓展思维使用,SQL数据库中的增删改查总结1:该篇文章建议您自主创作。 来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《SQL数据库中的增删改查总结1》
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/672278.html