mysql中的难点_mysql难点

creat table employee(

id int primary key ,auto_increment,

name varchar(20),

birthday date,

job varchar(20),

salary double

amount money)

engine=in

主键是唯一且不为空的!

1.查看表

2.修改列名

alter table tab_name change [column] 列名 新列名 类型;

3.删除一列

alert table tb_name drop 列名

4.加一列

alter table tab_name add [column] 列名 类型;

5.查看表结构

desc tb_name

6.插入信息

insert into(' !!!!! ','~~~~~~~~~') values('hshfh',2344);

--1将所有的员工的工资改为5000

update emp set salary=5000;

--2将名字是‘zs' 的员工的工资改为5000

update empt set salary=5000

where name='zs';

--3

将wu的薪水在原有基础上增加1000元。

update emp set salar=salary+4000 where name='wu';

select操作

--1在所有学生分数上加10分特长分显示。

select name,english+10,chinese+10,math+10 from exam;

--2将wu的薪水在原有基础上增加1000元。

update emp set salar=salary+4000 where name='wu';

where字句的用法

注意

in(10,20,3)值是10或20或30

like '张pattern'

--1查找缺考数学的学生的姓名

select name from exam where Math is null;

//对总分排序按从高到低的顺序输出

select name ,(ifnull(math,0)+ifnull(chinese,0)+ifnull(english,0))

总成绩 from exam order by 总成绩 desc;

约束

2.外键约束:

(1)增加外键:

可以明确指定外键的名称,如果不指定外键的名称,mysql会自动为你创建一个外键名称。

RESTRICT : 只要本表格里面有指向主表的数据, 在主表里面就无法删除相关记录。

CASCADE : 如果在foreign key 所指向的那个表里面删除一条记录,那么在此表里面的跟那个key一样的所有记录都会一同删掉。

alter table book add [constraint FK_BOOK] foreign key(pubid) references pub_com(id) [on delete restrict] [on update restrict]

(2)删除外键

alter table 表名 drop foreign key 外键(区分大小写,外键名可以desc 表名查看);

3.主键约束:

(1)增加主键(自动增长,只有主键可以自动增长)

Alter table tb add primary key(id) [auto_increment];

(2)删除主键

alter table 表名 drop primary key

(3)增加自动增长

Alter table employee modify id int auto_increment;

(4)删除自动增长

Alter table tb modify id int;

多表设计与查询

1.内连接:查询两张表中都有的关联数据,相当于利用条件从笛卡尔积结果中筛选出了正确的结果。

select * from ta ,tb where ta.tb_id = tb.id;

select * from ta inner join tb on ta.tb_id = tb.id;

2.外连接(1)左外连接:在内连接没有的基础上增加左边有右边没有的效果

select * from ta left join tb on ta.tb_id = tb.id;

mysql> select * from ta left join tb on ta.tb_id = tb.id;

+----+------+-------+------+------+

| id | name | tb_id | id | name |

+----+------+-------+------+------+

| 1 | aaa | 1 | 1 | xxx |

| 2 | bbb | 2 | 2 | yyy |

| 3 | bbb | 4 | NULL | NULL |

+----+------+-------+------+------+

2)右外连接:在内连接的基础上增加右边有左边没有的结果

select * from ta right join tb on ta.tb_id = tb.id;

mysql> select * from ta right join tb on ta.tb_id = tb.id;

+------+------+-------+----+------+

| id | name | tb_id | id | name |

+------+------+-------+----+------+

| 1 | aaa | 1 | 1 | xxx |

| 2 | bbb | 2 | 2 | yyy |

| NULL | NULL | NULL | 3 | yyy |

+------+------+-------+----+------+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值