MySql 经常使用语法总结

一、什么是MySQL?mysql

  MySQL是一种开源代码的关系型数据库管理系统,并由于器速度、可靠性和适用性备受中小型企业的青睐。sql

  注意:数据库命令都是以分号;结尾的,表示结束。数据库

  Linux系统下,怎么登陆MySQL?函数

    mysql -u root (用户名) -p;编码

    输入密码,便可登陆排序

    显示当前的数据库:show databases;索引

    使用数据库:use 数据库名称;ci

    查看数据表:show tables;字符串

    显示表的基本属性:describe  表名;it

二、经常使用的字段类型有哪些?

  1)整形(整数):

    int:取值范围:-2147483648--2147483647

    tinyint:取值范围:-128--127

  2)字符串:

    varchar(n):可变长度

    char(n):不可变长度,相对于varchar来讲,char占用空间,但它也是有优势的,就是存取速度要优于varchar。

  3)日期时间:

    date:yyyy-mm-dd     例如:2018-10-01

    time:hh:mm:ss    例如:10:20:45

    datetime:yyyy-mm-dd hh:mm:ss

  4)浮点型:(m:表明总位数,n:表明小数的位数)

    float(m,n)例如:float(5,2) 就能够存储:123.2二、345.98

    double(m,n)和float的区别是精度较高,即存储的精确度较高

    decimal(m,n)三种类型中,精度最高。

三、如何建立表?

   (注意:MySQL中,写完语句后要加分号;,表示结束,表名和字段名最好用字母或字母加数字来标识,最好能是见名知意的单词)

       场景:建立一个表,id为主键,名字的类型为varchar,而且不能为空,编码是:utf8

  语法: create  table  表名 (id int primary key,name varchar(10) not null,字段名3  类型,...)DEFAULT CHARSET=utf8;

四、如何批量插入数据?

  注意:字段名和值是一 一对应的。

  insert   into  表名 (字段名1,字段名2)   values  (值1,值2);

五、如何更新数据?

  1)无条件更新

  update  表名  set  字段1=值1,字段2=值2,...,字段N=值N;

  2)条件更新

  update  表名  set   字段1=值1,...,字段N=值N  where  条件A  and(or) 条件B and(or) ...;

六、如何删除?(慎用)

  1)条件删除

  delete from 表名 where 条件A and(or) 条件2,...;

  2)无条件删除

  delete from 表名                       ------------ 删除的是表的数据

  drop table  表名                        -------------删除整个表,包括表的结构

  drop  database   数据库名        ------------删除数据库

七、如何查询?

  1)查询特定字段

  select 字段1,字段2,...,字段N  from  表名;

  2)查寻全部字段

  select * from 表名

  3)条件查询

  select  ...  from  表名  where  条件A and(or) 条件B and(or) ...;

  4)多表查询(注意:查询的字段名要带表名加一个点,查询才可以识别并查找)

  select  A.字段名,B.字段名  from 表A,表B,...,表N   where  关联条件  and  过滤条件;

八、如何对查询到的结果进行排序?-------asc升序(默认,能够不写),desc降序

  select   字段名   from  表名  where  条件  order  by  字段X  asc(desc);

 

九、查询语句结构,或者说先写什么,再写什么?

  select   字段名                          -------------查询什么字段

  into   新表名                              ------------查询的时候建立一个新的表

  from  表名                                  ------------来自什么表

  where        条件语句                  ---------条件

  group by                                    ----------按什么字段分组

  having                                       -----------过滤条件

  order by                                    -------------排序

  limit m,n                                   -----------分页(索引从m开始,第一条索引为0,第2条索引为1;n表示每页显示的数据条数)

 

十、怎么分组?----group by

  注意:group by 必须和聚合函数结合使用。常见聚合函数:sum(), count(), avg(), min(), max()等。

     group by后边的分组字段要与select 后边的字段保持一致。

     若是过滤分组,则使用having+过滤条件来完成。

  场景:查询每一个年级的总人数和班级数量

  语法:select 年级,sum(人数) from 表 group by 年级;

     having 至关于where语句,但having能够包含聚合函数,但where不能够。

     having经常与group by 一块儿使用。

  例如:select 学号,sum(成绩) from 成绩表 group by 学号 having sum(成绩)>600;

十一、怎么分页?

  select 字段名 from 表名 limit m,n;

十二、between的用法?

  select 字段名 from 表名 where 字段名 between 值1 and 值2;

1三、in   not in的用法?------查询的结果是集合,in是在什么集合内,not in则相反。

  select 字段名  from 表名 where  条件字段   in(值1,值2,...,值N);

1四、模糊查询?

select ... from ... where ... like '%xx' ; ----%用来匹配任意长度的字符串,能够放你想放的位置(前,中,后),放在前面,说明前面能够是任意字符串,但结尾是xx

select ... from ... where ... like '_x';   -----_一个下滑线占一个位,能够匹配任意字符串,但只能匹配一个,能够用来匹配身份证号,电话号码等。

1五、count ()的用法?------------统计

  select  count(*)from  表名  where  条件;

1六、去重?--------distinct

  select distinct 字段名 from  表名;

1七、数值类型函数的用法?

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

  语法: select   min(字段名)  from  表名;

 1八、日期类型函数?

  sysdate() :系统时间函数 , yyyy-mm-dd hh:mm:ss。      语法:select sysdate();

  curdate() :系统时间函数 ,yyyy-mm-dd。    语法:select curdate();

  year():获取年份  ,如:2018。    语法:select year(curdate());    ------------获取系统当前年份

  month():获取月份。      语法:select month(curdate());  -----------获取系统当前月份

  day():获取当月第几天。  语法:select day(curdate());     ------------获取系统当前几日

  day_add():增长一个时间间隔。  语法:day_add(curdate(),interval 5 day); -----------在系统当前日期上加5天

  day_sub():减去一个时间间隔。  语法:day_sub(curdate(),interval 5 day);------------在系统当前日期减去5天

1九、字符串函数?

  concat():多个字段数据拼接。语法:select concat(字段1,字段2) from 表名;

  substr():截取数据函数。str--要操做的字符串,pos--开始截取的位置,len--截取的长度,如未指定,则截取到最后一位。

    1)select substr(str,pos);

    2)select substr(str,pos,len) ;  ---select substr(id,1,2) from student;   从student表中查询id的前两位。

  length():获取一个值的长度,通常用在字符串类型字段上的状况较多。

    1)select length('hello');       ----------获得的结果为5

    2)select length(id)from student;               -----获取学号的长度

20、内链接?

  内链接的特色:只返回知足关联的条件,两个表都存在的数据。

  select 表1.字段名,表2.字段名  from 表1,表2 where 表1.字段=表2.字段;

  或者:

  select 表1.字段名,表2.字段名 from 表1 inner join 表2 on 表1.字段=表2.字段;

2一、外部链接?

  注:先写左表,后写右表,匹配不到,自动补null。

  一、左外链接:左边的表不加限制:left outer join  匹配不到,右表为null

  二、右外链接:右边的表不加限制:right outer join 匹配不到,左表为null

  三、全外链接:全部两个表中的行都会包含在集合中,若是匹配不上,在各自的对应的位置显示null。 full outer join

  场景:显示表1全部的行,与右表匹配,若是左表的行没有匹配到,对应右表的行为null。

  语法:select 表1.字段名,表2.字段名 from 表1 left outer join 表2 on 表1.字段=表2.字段;

2二、在查询的基础上建立新表?

  select 字段名 into 新表名 from 表名;

2三、where 字句能够用的条件?

  比较运算符:=、<、>、>=等

  逻辑运算符:and、or、not

  范围运算符:between ... and ...、not between ...and...

  列表运算符:in、not in

  字符通配符:like、notlike 

相关文章
相关标签/搜索