北京SEO

mysql 基本操作记录语句

2019/10/10/17:35:50  阅读:2031  来源:谷歌SEO算法  标签: 云计算

本文章来给大家介绍一下很简单的mysql基于语句操作命令,包括创建,删除,修改表及查询与插入数据到mysql中的一些方法.

以下以数据库”ceshi”为例.

1、连接数据库

mysql -u username -p password

2、创建/删除数据库

创建:create database ceshi;

删除:drop database ceshi;

3、创建/删除数据表

创建:create table students (sid int(10) auto_increment primary key,name varchar(255),course varchar(255),score int(10)) ;

删除:drop table students;

设置数据表编码:alter table `students` default character SET utf8 collate utf8_general_ci;

4、插入数据

单条插入:insert into students (name,course,score) values(value1,value2,value3);

多条插入:insert into students (name,course,score) select value1[0],value1[1],value1[2] union select value2[0] ,value2[1],value2[2] union……

从另外的一张表中读取多条数据添加到新表中:insert into students(col1,col2,col3) select a,b,c from tableA ;

从其他的多张表中读取数据添加到新表中:insert ioto tableName(col1,col2,col3) select a,b,c from tableA where a=1 union all select a,b,c from tableB where a=2

上边代码中的union all如果换成union,则相同记录只插入一次,不会重复插入,上边代码中的into都可以省略.

5、order by语句

select * from students order by score(asc); 从低往高排,默认,asc可省去.

select * from students order by score desc; 从高往低排

6、group by语句

select * from students group by course; 查询数据按课程分组,只显示查询到的第一条.

select * from students group by course order by socre; order by 必须在 group by之后,group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group by中最大的或最小的某一字段使用 max或min函数。

简单的查增删改

  1. --查看学生表的全部数据
  2. select*fromstudio
  3. --插入一个新的学生信息
  4. insertintostudio(st_name,st_sex,st_age,st_add,st_tel)values("黄兰淇",0,36,'南充','13943943334')
  5. --查看class全部数据
  6. select*fromclass
  7. --向class表增加两条条数据
  8. insertintoclass(cl_class,cl_coding,cl_o_time,cl_remark)values('新电实训班','GXA-ncs-001','2008-03-11','都是很优秀的朋友')
  9. insertintoclass(cl_class,cl_coding,cl_o_time)values('阿坝师专实训班','GXA-ABSZ-001','2008-03-11')
  10. --更新一条的数据条件的重要性
  11. updateclasssetcl_remark='真的是不错'wherecl_id=5
  12. --删除一条数据条件的重要性
  13. deletefromclasswherecl_id=7
  14. --修改列标题
  15. selectcl_idas'班级主键',cl_classas'班级名称'fromclass
  16. select名字=st_namefromstudio
  17. --使用文字串
  18. select'名字是:',st_namefromstudio

条件稍微复杂点的查增删改:

  1. --主要涉及到orandnotbetweeninlike><=!>!<!=<>()<=>=isnullisnotnull
  2.   --查询cl_id大于1的所有信息
  3.   select*fromclasswherecl_id>1
  4.   --使用or
  5.   select*fromclasswherecl_id<>10orcl_class='百杰一班'
  6.   --使用and
  7.   select*fromclasswherecl_id<>10andcl_class='百杰一班'
  8.   --使用like和%
  9.   select*fromclasswherecl_classlike'百杰%'
  10.   select*fromclasswherecl_remarklike'%上午%'
  11.   --使用between
  12.   select*fromclasswherecl_idbetween3and5
  13.   --使用between配合上not
  14.   select*fromclasswherecl_idnotbetween3and5
  15.   --使用isnotnull
  16.   select*fromclasswherecl_remarkisnotnull
  17.   --使用inphpfensi.com
  18.   select*fromclasswherecl_classin('千星一班','百杰二班')

使用数学运算符:

  1. --主要涉及到+=*
  2. --查询Java相关课程分别要上多少周按照每周5天,每天6节课来计算
  3. select'结果'=co_num/5/6fromcoursewhereco_namein('Java基础','Java项目入门')

使用汇总函数:

  1. --涉及到COUNTSUMAVGMAXMIN
  2. --查询课时数小于50的课程一共有多少门
  3. selectcount(*)fromcoursewhereco_num<50
  4. --查询所有课程一共多少课时
  5. selectsum(co_num)fromcourse
  6. --计算全部课时费,假设每节课50块钱
  7. selectsum(co_num)*50fromcourse
  8. --查询课时最少的课程
  9. selectmin(co_num)fromcourse
  10. --查询课时最多的课程
  11. selectmax(co_num)fromcourse
  12. --查询平均每门课多少课时
  13. selectavg(co_num)fromcourse

聚集函数:

最大值:max() 最小值 min() 平均值avg()

求和:sum() 汇总:count ()

如:求每个部门的基本工资平均值

select 部门,avg(基本工资) as 部门基本工资 from 员工表 group by 部门

显示平均基本工资大于3000的部门

Select 部门,avg(基本工资) from 员工表 group 部门 where avg(基本工资)>3000

此句错误,SQL规定在分组中使用条件不能用 Where 而是用 having

Select 部门,avg(基本工资) from 员工表 group by 部门 having avg(基本工资)>3000

八、多表查询:

一个数据库中的多个表,存在一定的联系,怎么样正常的显示这么表的信息?

现在有三个表:

  1. yg
  2. Namesexage
  3. 宋洋男20
  4. 马冬旭女40
  5. Gs
  6. Nametitledate单位
  7. 宋洋AD详解2006-11-10清华大学
  8. 马冬旭linux2005-01-01人民大学
  9. dz
  10. 单位地址
  11. 清华大学五道口
  12. 人民大学黄庄

第一种方法称为:交叉连接,在SQL SERVER中又称为笛卡尔乘积,但是要注意的默认生成的记录总数是两表记录之积.

select * from yg,gs;

select * from yg,gs where yg.name=gs.name;

这才是我们想要的记录.

第二种方法是用join连接:

内连接:select * from yg join gs on yg.name=gs.name

左外连接,右外连接,但没有全外连接.

九、联合:

除了连接,mysql4.0以上的版本还支持UNION运算符,它用来把多个select查询号的输出连接成一个单独的结果集,大多数情况下,这个运算符用来把查询产生的结果集添加到不同的表,同时创建包括所有结果的一个单独表,比如面试的时候问你,有两个表,字段信息一样,让你用一条语句把两个表的信息组合为一个单独的表.

为了说明UNION运算符的使用方法,我们举一个例子,现在有两个表,分别存放的是男同学信息和女同学信息,如果用一个语句将所有同学的信息显示出来.

  1. mysql>select*fromnan;
  2. +--------+-------+
  3. |name|score|
  4. +--------+-------+
  5. |彭聪留|80|
  6. |费优优|81|
  7. |曲权|82|
  8. +--------+-------+
  9. 3rowsinset(0.00sec)mysql>select*fromnv;
  10. +------+-------+
  11. |name|score|
  12. +------+-------+
  13. |彭红|80|
  14. |费红|81|
  15. |曲红|82|
  16. +------+-------+
  17. 3rowsinset(0.00sec)
  18. mysql>select*fromnanunionselect*fromnv;
  19. +--------+-------+
  20. |name|score|
  21. +--------+-------+
  22. |彭聪留|80|
  23. |费优优|81|
  24. |曲权|82|
  25. |彭红|80|
  26. |费红|81|
  27. |曲红|82|
  28. +--------+-------+
  29. 6rowsinset(0.00sec)

那如果有三个表怎么办?也是一样的操作!

但注意的是如果两个表的某条记录信息完全一致,则只显示为一条,如果想显示全部记录则在union后 加 all.

mysql> select * from nan union all select * from nv;

如果面试官又问你,如果想把显示的信息保存到一个表中怎么办?

mysql> create table 表名 select 语句;

广告内容

mysql 基本操作记录语句 mysql 基本操作记录语句 mysql 基本操作记录语句

相关阅读

热门评论

卢松松博客 卢松松博客

关注创业者、自媒体人和站长的网站

总篇数167

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法