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 |
+------+------+-------+----+------+