Mysql

1.mysql


DB 容器,DBMS 软件

数据库特征 :数据结构化 数据独立性 实现数据共享 减少数据冗余

desc显示表结构

select deptno,dname from dept

null 表示未赋值 不是空格或零 任何包含空值的算数表达式的结果都为null

解决空值用 ifnull(ex1,ex2) 如果第一个字段为空 则返回第二个 否则返回第一

as 列别名  select distinct job from emp  用关键字来消除重复行

where指句放在form之后 用来限定显示的数据列

> = < !=(不等于) 比较字符串日期用单引

where hiredate BETWEEN‘1981-01-01’ AND ‘1981-12-31 between 在两者之间

in 圈定范围 WHERE  mgr IN (7902, 7566, 7788)

模糊查询 like %代表零或任意更多的字符 _代表一个字符%与_可混用

出现与这两个字符一样的用escape 除掉 WHERE  jobLIKE 'MAN@_%' ESCAPE '@';

is null 判断是否为空

and (和,多个条件需要同时满足) 

or(或者 多个条件满足其中一个) 

not(不是 反选 ) 小括号运算级永远优先

order by 排序语句 asc 升序 desc 降序 必须放在整体语句最后 在limit前

分页语句 limit    limit [start,]length;

start=(当前页码-1)*每页条数

CEIL(x) FLOOR(x) ROUND(x,y):四舍五入到第y位

TRUNCATE(x,y):截取到小数点后y位

CHAR_LENGTH(str):返回字符个数 LENGTH(str):返回字节个数

CONCAT_WS(x,s1,s2,…sn):用x做分隔符,把s1到sn拼接起来 简单字符串拼接

TIMEDIFF(expr1, expr2):返回两个日期相减相差的时间数;

DATEDIFF(expr1, expr2):返回两个日期相减相差的天数

DATE_ADD(date,INTERVAL expr unit):日期加上一个时间间隔值

假设员工入职半年后转正,请查询出员工转正日期:

select DATE_ADD(hiredate,INTERVAL 6 month) from emp

DATE_SUB(date,INTERVAL expr unit):日期减去一个时间间隔值;做减运算

case when 流程控制函数 计算分段式税率 看到这要想到那到练习题

IF(expr1,expr2,expr3)

如果expr1 是TRUE 则 IF()的返回值为expr2;否则返回值则为 expr3

笛卡尔积 表现形式为多张表关联之后有多余重复的数据

解决方式 等值连接 利用相同字段连接 写在where子句中

多表及非等值连接 在where中增加条件 可以使用更多where指句

自身连接 把自己和自己的分身连接起来 用等值连接

sql99写法的自然连接 from emp e NATURAL join dept d 无法判断用哪些字段连

左外 右外连接 left(right) outer join ——————on 

from emp e LEFT OUTER JOIN emp m on e.mgr=m.empno;

聚合函数 只适用于select指句中 max()min()avg()sum()count()

分组函数 group by 写在where from 指句后 多列分组用,分开

如果where里面带有聚合函数,要用having子句,having子句写在group by后面

书写顺序 select--from --where--group by--having-- (limit)order BY

执行顺序: from--where-group by -having-select-order by

子查询 可以嵌套在where having from子句中 要用括号 比较运算符右面

主键 primary key 不能重复 不能为null 可以是联合主键

外键 foregin key 外键与其他表的主键连接

唯一性unique  默认值default  varcher 可变程度字符串 char 不可变长度

int integer数值类型  datetime year

存储引擎 engine=innodb

编码方式 charset=utf-8 

自整长 AUTO_INCREMENT 放在主键后

枚举类型 enum(单选) set(多选)

drop table 表名 删除表

alter table 表名  添加(add)列名 数据类型  长度 列属性; 修改(modify) 删除表(drop) 结构

插入 insert into 表名(字段列表可选项,各字段用逗号分隔(可带可不带 )) values(每个字段的值,中间用逗号分隔)

修改 update 表名 set 字段名1=字段值1,.....字段名n=字段值n

删除 delete from 表名 where 条件 可以回滚 不是放空间 与truncate不同

事务:也称工作单元,是由一个或多个SQL语句所组成的操作序列,这些SQL语句作为一个完整的工作单元,要么全部执行成功,要么全部执行失败。在数据库中,通过事务来保证数据的一致性。

事务特征 –原子性(Atomicity)

•事务就像“原子”一样,不可被分割,组成事务的DML操作语句要么全成功,要么全失败,不可能出现部分成功部分失败的情况。

–一致性(Consistency)

•一旦事务完成,不管是成功的,还是失败的,整个系统处于数据一致的状态。

–隔离性(Isolation)

•一个事务的执行不会被另一个事务所干扰。比如两个人同时从一个账户从取钱,通过事务的隔离性确保账户余额的正确性。

–持久性(Durability)

•也称为永久性,指事务一旦提交,对数据的改变就是永久的,不可以再被回滚。

begin开始一个事务

执行 插入 修改 删除

rollback事务回滚

commit 事务提交

set autocommit =0

视图 保存的查询 可以隐藏字段 保证安全 放置汇总数据

create view 视图名 as 子查询  drop view 视图名

索引 提高检索数据的速度

创建和维护索引需要耗费时间 索引需要占用物理空间 增加、删除和修改数据时速度降低

普通索引 唯一索引 主键索引 组合索引 全文索引

CREATE  INDEX  索引名  ON  表名  (属性名  [ (长度)]  [ ASC | DESC] );

ALTER  TABLE  表名  ADD  索引名(属性名  [ (长度)]  [ ASC | DESC]);

DROP  INDEX  索引名  ON  表名 ;

    DDL:数据定义语言(create drop)

    DML:数据操作语句(insert update delete)

    DQL:数据查询语句(select )

    DCL:数据控制语句,进行授权和权限回收(grant revoke)

    TPL:数据事务语句(commit collback savapoint)

数据库三范式:

    第一范式:1NF是每一列属性都是不可再分的属性值,确保每一列的原子性

两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据

    第二范式:2NF是在满足第一范式的前提下,非主键字段不能出现部分依赖主键;也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

    第三范式:3NF是在满足第二范式的前提下,非主键字段不能出现传递依赖,比如某个字段a依赖于主键,而一些字段依赖字段a,这就是传递依赖。解决:将一个实体信息的数据放在一个表内实现。

CHAR和VARCHAR的区别:

    CHAR和VARCHAR类型在存储和检索方面有所不同

    CHAR列长度固定为创建表时声明的长度,长度值范围是1到255

    当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • 手动不易,转发请注明出处 --Trance 数据库系统命令: (1).查看存储过程状态:show pro...
    Trance_b54c阅读 1,663评论 0 8
  • MySQL数据库 非关系型数据库的优势: 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不...
    riverstation阅读 870评论 0 0
  • 作者:烨竹 数据库的基本操作 登陆MySQL数据库服务:mysql -h服务器地址 -P端口号 -u用户名 ...
    DragonRat阅读 1,372评论 0 7
  • 数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和I...
    半瓶阳光o_o阅读 581评论 0 2
  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 1,071评论 0 1