mysql增删改查语句

来源:互联网 发布:淘宝售前客服用语 编辑:程序博客网 时间:2024/05/17 08:46
数据库(表)设计3范式:
第一范式(1NF):
原子性,让每个数据不可再分;
第二范式(2NF):
唯一性(每行数据不重复),消除部分依赖;
定义主键,就做到唯一性;部分依赖就是其他字段只依赖主键的“部分字段”。
第三范式(3NF):
独立性,消除传递依赖。
主键--->字段A,字段B,字段C...
又出现:字段A-->字段B
此时就出现了传递依赖:
主键--->字段A-->字段B
这种情况需要消除!
经验总结:只要做到一种数据存储在一个表中,就基本可以实现3范式的要求。
数据操作语言:
插入数据(增):
insert  into  表名  (字段1,字段2,....) values (值a1,值a2,....),(值b1,值b2,....),(...);
replace  into  表名  (字段1,字段2,....) values (值a1,值a2,....),(值b1,值b2,....),(...);
insert  into  表名  set  字段1=值1,字段2=值2, .....;
insert  into  表名 (字段1,字段2,....)  select  字段1,字段2,....  from 表名2;
load  data(载入数据)语法:
载入一个纯文本的纯数据文件;其中每一行数据以换行符为分割,一行中的数据项(字段值),以“tab”符号位分割符;
删除数据(删):
delete  from  表名  where 条件  【order by排序】 【limit 数量】
修改数据(改):
update  表名  set  字段1=值1,字段2=值2, ..... where 条件  【order by排序】 【limit 数量】


注意:
不管是insert语句,还是update语句,对于“直接值”,字符串类型和时间类型,都需要使用单引号引起来。


基本查询
基本语法形式
select  [all | distinct] 字段或表达式列表  【from子句】【where子句】【group by子句】【having】
【order by子句】  【limit子句】
字段或表达式列表
字段必然是来源于“数据源”(表);
每个字段或表达式,都可以对其“取别名”: XX  as 别名
from子句:就是数据源;
where子句:是对数据源的每一行数据进行的某种条件筛选;
算术运算符,比较运算符,逻辑运算符
is运算符:空值和布尔值的判断
is  null,   is  not  null,   is  true,   is  false
between运算符:范围判断:
XX  between  值1  and  值2;
in运算符:给定确定数据的范围判断:
XX  in  (值1,值2, .... )
like运算符:对字符串进行模糊查找:
XX  like  ‘要查找的字符’
要查找的字符  要想发挥作用,就必须依赖于以下两个特殊字符:
% :代表任意个数的任意字符
_ :代表一个任意字符
group by 子句:分组
什么叫做分组?
就是对若干条“原始数据行”,以某种标准(字段值),来进行“分类”。则分完了之后,自热,就会构成以该字段值为特征的“小组”,每个小组一定是具有相同的该字段的值;
但,注意:
分组之后,只有组信息,而且,每一组,在结果集中,就是一行;
具体来说,有如下信息可用(就是出现在select的输出部分):
1,分组依据字段本身;
2,每一组的“数量信息”:用count(*)来取得;
3,数值型字段的以下几个“统计值”(聚合计算值):
max(XX),  min(XX),  avg(XX),  sum(XX);
having子句:
类似where的作用和使用语法,但其只针对groupby分组之后的“组信息”进行筛选;
order  by 子句:对前述数据以某种指定的方式进行排序(ASC,DESC);
limit子句:
对前述数据,以指定的行号开始取出多少行;行号是从0开始算起的连续的整数数字,跟数据本身中的字段值没有关系。
对整个select语句的一些总结
0 0
原创粉丝点击