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最小值*/
14)SELECT * FROM ming.adress_list order by id asc; /*order by 升序*
15)SELECT * FROM ming.adress_list order by id desc; /*order by降序
16)SELECT position, count(*) '人数', avg(age)'平均年龄' FROM ming.adress_list group by position;
/*group by 分组与聚合函数结合使用*/
17)SELECT 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';