mysql我的易错易忘重点

数据库(database)的好处

(1)实现数据持久化
(2)数据结构化,易于查询和管理
(3)数据的共享性高,冗余度低,易于扩充
(4)由DBMS统一管理和控制,易于维护

数据库的概念

数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。

一些基础命令

create database W;

create table customer(id varchar(20),age int; name varchar(20));

desc W;

select * from  W;

select id,name,sex from

insert into w(id name) values(1,'bod');

update w set name='bod' where id = 1;

delete from w where id = 1;

show tables;

desc customer;

create database from; (忘了要写啥了再改)

SQL语言 的分类

DQL 数据查询语言 select

DML 数据操纵语言 insert update delete 数据的操作

DDL 数据定义语言 create alter drop 库和表的操作

DCL 数据控制语言 commmit rollback

常见的六大约束

NOT NULL非空

PRIMARY KEY 主键

DEFAULT默认

FOREIGN KEY外键

UNIQUE唯一

CHECK检查

视图

create view (视图名)

as

(试图内容)

创建存储过程

delimiter $$(符号)

create procedure myro1()   ——存储过程名字()

begin

select * from beauty where id > 5;  ——(存储内容,分号不能忘)

end $$(存储符号不能忘)

查询操作的排序

where -> group by -> having -> order by

除了数字都要加 ‘’

DML:数据操纵语言

插入:
insert into 表()values()  or  insert into 表() select 数据 union
更新:
update ...set ...where 
删除:
delete from..... or   truncate table.....

DDL数据定义语言

库的操作

创建库:
create database......
删除库:
drop database.....

表的操作:

创建表:
create table......
修改表(属性类似于):
alter table....操作......操作如(rename,change column,modify column,add column,drop column等)
删除表:
drop table......
复制表:
create table ....like....(只复制结构)

 create table ...... select * from ........(复制结构和数据)

二种删除方式的区别【面试题】

1、TRUNCATE不能加WHERE条件,而DELETE可以加WHERE

2、TRUNCATE效率较高

3、TRUNCATE不能删除多表,而DELETE可以

4、删除带标识列字段的表时,TRUNCATE 删除后再插入,标识列的值从1开始

DELETE删除后再插入,标识列的值从断点处开始

5、TRUNCATE删除后,不能回滚;DELETE删除可以回滚

datetime和timestamp的区别

(1)Timestamp支持的时间范围较小,取值范围

19700101080001——2038年的某个时间

Datetime的取值范围:1000-01-01 ——9999—12-31

(2)timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区

(3)timestamp的属性受Mysql版本和SQLMode的影响很大

分类

浮点型:

float(M,D)

double(M,D)

定点型:

decimal(M,D)

定点型和浮点型区别

定点型的精度表示更高,比较适合处理货币运算

datetime和timestamp的区别

字节 时间范围 是否受时区和版本等影响

datetime 8 1000——9999 不受

timestamp 4 1970-2038 受

D和M 参数

D表示小数位数,如果不够用0补齐,如果超过则四舍五入

M表示整数位数+小数位数,整数部分如果超过,则报错,显示为临界值

M和D 对于浮点型或定点型都可以省略

但浮点型默认的精度为插入数值的精度,而定点型默认的精度为M=10,D=0

hift + f3 切换大小写
我们是通过修改的方式把约束删除的
不管是添加;删除;还是修改 ,当字段出现的时候字段的类型一定要出现
流程控制90%在存储过程begin end中使用

事务的ACID(acid)属性

(1) 原子性(Atomicity)

原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

(2)一致性(Consistency)

事务必须使数据库从一个一致性状态变换到另外一个一致性状态。

(3)隔离性(Isolation)

事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

(4)持久性(Durability)

持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响

存储过程:

事先经过编译并存储在数据库中的一段sql语句的集合。

使用好处:
1、简化应用开发人员的很多工作
2、减少数据在数据库和应用服务器之间的传输
3、提高了数据处理的效率

这个问题的分析过程:

2. 查询平均工资最低的部门信息
先查部门的平均工资->把部门的平均工资当成一表->查找最低工资
-> 然后根据最低工资 找到最低工资的部门id -> 查询部门信息

5. 查询平均工资高于公司平均工资的部门有哪些?

SELECT avg(salary) a FROM employees
SELECT department_id, avg(salary) b FROM employees

where department_id is not null

GROUP BY department_id

having b > (

  SELECT avg(salary) a FROM employees

)
SELECT DISTINCT department_id FROM employees e

inner join (

  SELECT department_id dep, avg(salary) b FROM employees

  where department_id is not null

  GROUP BY department_id

  having b > (

  SELECT avg(salary) a FROM employees

)

) d

on e.department_id = d.dep

6. 查询平均工资最高的部门的 manager 的详细信息: last_name, department_id, email, salary

经典俄罗斯套圈(中间省略了一层,做的话就能看出来)
查寻部门平均工资 ----> 根据部门平均工资 ,把它如当成一虚表,查询平均工资最高的工资---->把 ######部门平均工资当成虚表,from 平均工资表-where 最高工资表 ,找到department_id ---->根据部门id ######找到相应的详细信息
SELECT department_id,avg(salary) FROM employees

WHERE department_id is not null

GROUP BY department_id
SELECT max(msalary) FROM (

  SELECT department_id,avg(salary) msalary FROM employees

WHERE department_id is not null

GROUP BY department_id

)a
SELECT department_id FROM (

  SELECT department_id,avg(salary) msalary FROM employees

WHERE department_id is not null

GROUP BY department_id

) b

WHERE msalary = (

SELECT max(msalary) FROM (

  SELECT department_id,avg(salary) msalary FROM employees

WHERE department_id is not null

GROUP BY department_id

) a

)
SELECT last_name, department_id, email, salary from employees

WHERE employee_id = (

SELECT manager_id from departments WHERE department_id =(

SELECT department_id FROM (

  SELECT department_id,avg(salary) msalary FROM employees

WHERE department_id is not null

GROUP BY department_id

) b

WHERE msalary = (

SELECT max(msalary) FROM (

  SELECT department_id,avg(salary) msalary FROM employees

WHERE department_id is not null

GROUP BY department_id

) a

)

)

)

部门的有效信息

select last_name,department_id,email,salary,manager_id from employees where manager_id = (

  select manager_id from departments where department_id = (

    select department_id from employees

    where department_id is not NULL

    group by department_id

    having avg(salary) = (

        select max(dsalary) from (

            select avg(salary) dsalary,department_id from employees

            where department_id is not NULL

            group by department_id

            having dsalary > (

              select avg(salary) from employees

            )

        ) a

    )

  )

)

delimiter $$

create procedure myro1()

begin

select * from beauty where id > 5;

end delimiter

create procedure myro1()

begin

select * from beauty where id > 5;

end $$

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