A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© doglovely 中级黑马   /  2016-4-4 11:33  /  379 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对数据库和表的操作:
database,table,create,show,alter(alert),drop由这6个单词。
use,desc (查看表结构)

对表结构的操作:

修改的关键字:
add,modify,drop,rename to,change column,
sql:crud对数据的操作。
create, read,update,delete
插入数据
insert into values set character_set_client=gbk;
select from
修改数据
update set where(条件运算符)
=,!=,》,》=,《,《=,between and,in,or,and,not,not null ,is null(不能是=null)报错
删除数据
delete truncate(删除创建)distinct(过滤重复数据)
平时删除记得加where,所以数据库都需要备份
查询数据(列控制,条件查询,模糊查询,排序,分组,分页)
select distinct english from employee;
between and ,order by desc,like

mysql遇到不识别的就转为0,select sal+comm from emp;字段不能相连,可以用concat()进行连接。
查询中列运算
I 数量类型的列可以做加、减、乘、除运算
   SELECT sal*1.5 FROM emp;
   SELECT sal+comm FROM emp;

II 字符串类型可以做连续运算
   SELECT CONCAT('$', sal) FROM emp;

III 转换NULL值
   有时需要把NULL转换成其它值,例如com+1000时,如果com列存在NULL值,那么NULL+1000还是NULL,而我们这时希望把NULL当前0来运算。
   SELECT IFNULL(comm, 0)+1000 FROM emp;
   --> IFNULL(comm, 0):如果comm中存在NULL值,那么当成0来运算。

IV 给列起别名
   你也许已经注意到了,当使用列运算后,查询出的结果集中的列名称很不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了
   SELECT IFNULL(comm, 0)+1000 AS 奖金 FROM emp;
   --> 其中AS可以省略
模糊查询:
like(关键字),_(代表一个字符),%(匹配0到n个字符)
where ename like '张_';
排序:
   order by asc ascending desc descend
默认升序,多列排序
聚合函数
  聚合函数用来做某列的纵向运算。以上的都是横向运算。
1) COUNT
  SELECT COUNT(*) FROM emp;
  --> 计算emp表中所有列都不为NULL的记录的行数
  SELECT COUNT(comm) FROM emp;
  --> 云计算emp表中comm列不为NULL的记录的行数
2) MAX
  SELECT MAX(sal) FROM emp;
  --> 查询最高工资
3) MIN
  SELECT MIN(sal) FROM emp;
  --> 查询最低工资
4) SUM
  SELECT SUM(sal) FROM emp;
  --> 查询工资合
5) AVG
  SELECT AVG(sal) FROM emp;
  --> 查询平均工资
分组查询:
不能带个人信息,查询的必须主信息,主信息都是用聚合函数来算的。
group by  子句,用于分类查询,后面跟分组列。
having
select job,count(*) from emp group by job;
select分组查询中能查询的列只有两中类型,group by后写什么,就写什么,其他的都是聚合函数。
select job,count(*),max(sal) from group by job;
当前组的最高工资。

分组前的条件用where.
select deptno,count(*) from emp where sal>15000 group by deptno;
分组后的条件having,都用聚合函数作条件:
以部门分组,查询每组记录数。条件为记录数大于3关键词:
select deptno,count(*) from emp group by deptno having count(*)>3;
select
from
where
group by
having
order by

limit子句(方言)
  LIMIT用来限定查询结果的起始行,以及总行数。
  例如:查询起始行为第5行,一共查询3行记录
  SELECT * FROM emp LIMIT 4, 3;
  --> 其中4表示从第5行开始,其中3表示一共查询3行。即第5、6、7行记录。

  select * from emp limit 0, 5;

  1. 一页的记录数:10行
  2. 查询第3页

  select * from emp limit 20, 10;

  (当前页-1) * 每页记录数
  (3-1) * 10

  (17-1) * 8, 8

DQL:查询表记录
DDL:对表结构的操作
DML:表数据操作

在数据库中所有的字符串类型,必须使用单引,不能使用双引!
日期类型也要使用单引!


约束:
1.not null 非空约束
2.unique 唯一约束
3.primary key 主键约束
auto_increment 自动增长
4.联合主键primary key();
5.外键约束。
constraint husbandid_fk foreign key(husbandid) references husband(id)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马