MYSQL语句

基础知识:

Mysql基础

一, Mysql是数据管理系统;

一些常用的mysql 命令:

登录 mysql ?

      Mysql -u root -p

1.显示服务器上所有已有的数据库

       Show databases;

2.在服务器中创建自己的数据库

       Create database 表名

       Character set utf8;

3.如何切换到指定的数据库

       Use 表名

4.如何删除已有的数据库

       Drop database 表名

二,如何在数据中建立数据表

   数据表是一个二维表格(行,列)

   一行代表一条数据

1,每个列代表的是当前一条数据的字段如何建表?

Eg: mysql > create table 表名(

---)收货人 varchar(8),

---)发货站 varchar(30),

---)发货人 varchar(8),

---)件数  int,

---)单号 varchar(12)

---));

2, 如何删除已经建立的表?

Drop table 表名

三,sql语句语法

   1,显示数据列表

      Show databases;

   2, 切换数据库

      Use 表名

   3, 建立数据库

      Create database 表名 character set utf8;

   4, 显示当前数据中的表的信息

      Show tables;

   5, 物理删除数据库

      Drop database  表名;

   6, 物理删除数据库中的表

      Drop table 表名

主键---(primary key):唯一识别一条记录的字段;

自增---(auto-increment):某个字段不需要手动填写数据,而是通过系统分配的整数(每一条数据分配的值都是前一条数据时的增量);

非空---not null):字段设置为非空时,填写数据时要求该字段为必填项;

默认值:向表中填写数据时,字段不写入数据时 会默认填充值(0);

唯一uniqe);

表说明’(comment);

引用reference);

分组--多个分组之后剩下一个distinct);

1.插入数据

  Insert 表名 values(‘’);

{适用于全纪录插入}

注意:

 {按表中字段顺序插入}

1)insert 表名(字段1,字段二,...)values(‘字段值’,....’’)适用于对指定字段进行数据的插入操作。

2)如果是字符类型的数据要用‘’包含要插入的数据。

 

1.查看全表信息

   Select * from 表名。

1.投影:

  Select 字段一,字段二,....from 表名

2.在查询时,将字段别名

  Select id‘编号’,title‘标题’,create time‘创建时间’from 表名

3.模糊查询:

  Where tel,name like ‘?%’;(不知道后面的数据时%在前面,反之亦然)(前后都有%时会把与之相关的都显示出来)

‘——’一个下划线代表一个字符。

‘百分号%’是通配符,可以代表任意多个字符。

2.逻辑操作

  And 表示和多个条件都满足,

  Or 表示或者 一个条件满足即可,

  Not like 取反的反操作,

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

  1.Order by (排序)asc升序 desc降序

  2.group by (分组)查询时会把相同的数据划分为一组 分组可以和聚合函数同步使用。

{分组后筛选用having 不分组筛选用where}

3.子查询中in的用法

Eg:select * from users where waijian in (select id from adress_list where sex=’’ );

in)表示查询多个 包含多个 not in)不包含

补充部分:

4.(limit 限制查询结果的记录数,显示的是几条到几条的信息)

Eg:select * from adress_list 0,5;(5,表示的是从这开始是显示的几条信息)

 注意:如果在子查询中使用limit就不能使用in; 

5.between...and...在。。。之间等价于。。。

Eg:select * from score where degree between 60 and 80;                      

6.union (将两个结构相同的东西查询结果进行合并);

 

Eg:

1) SELECT * FROM ming.adress_list;  /*显示所有信息*/

2) SELECT name,position FROM ming.adress_list;  /*投影字段*/

3) SELECT name '名字', tel '电话' FROM ming.adress_list;  /*将字段别名*/

4) SELECT * FROM ming.adress_list where name='梁朝伟'; /*筛选条件查询*/

5) SELECT * FROM ming.adress_list where tel like '136%';*/ 

6) SELECT * FROM ming.adress_list where tel like '136%' and name like '%';  /*and使用*/

7) SELECT * FROM ming.adress_list where tel like '136%' or name like '%';  /*or的用法*/

8) SELECT * FROM ming.adress_list where tel not like '136%'; /*not的使用*/

9) SELECT count(*) FROM ming.adress_list; /*count统计个数*/

10 )SELECT sum(age) FROM ming.adress_list;  /*sum求和*/

11) SELECT avg(age) FROM ming.adress_list;  /*avg求平均值*/

12) SELECT max(age) FROM ming.adress_list;  /*max最大值*/

13) SELECT min(age) FROM ming.adress_list;  /*min最小值*/

14SELECT * FROM ming.adress_list order by id asc;  /*order by *

15SELECT * FROM ming.adress_list order by id desc;  /*order by降序

16SELECT position, count(*) '人数', avg(age)'平均年龄' FROM ming.adress_list group by position;

 /*group by 分组与聚合函数结合使用*/

17SELECT  position,  count(*) '人数',  avg(age)'平均年龄FROM  ming.adress_list  group by  position having avg(age)>27;

join 多表联合查询 {select users.* ,adress_list.name from users join adress_list on users.waijian=adress_list.id}

                     where 在关联以后where users,usersname='nihao'and users.password='123';