130 lines
3.1 KiB
SQL
130 lines
3.1 KiB
SQL
show databases;
|
|
|
|
drop database user_info;
|
|
|
|
create database if not exists nengdie;
|
|
|
|
use nengdie;
|
|
|
|
show create database nengdie;
|
|
|
|
drop table if exists user_info;
|
|
|
|
create table user_info (
|
|
user_id smallint(5) primary key auto_increment,
|
|
age tinyint(3) not null,
|
|
gender varchar(10) default 'male',
|
|
email varchar(20),
|
|
phone_number varchar(20) unicode
|
|
);
|
|
|
|
describe user_info;
|
|
show create table user_info;
|
|
|
|
# modify column data format
|
|
alter table user_info modify phone_number varchar(25);
|
|
|
|
alter table user_info change gender gender varchar(8) default 'male' after phone_number;
|
|
|
|
alter table user_info rename user_info1;
|
|
show tables;
|
|
drop table user_info1;
|
|
|
|
alter table user_info add user_name varchar(30) after user_id;
|
|
|
|
describe user_info;
|
|
|
|
# DML
|
|
insert into user_info (age, user_name,gender, email, phone_number)
|
|
values
|
|
(20,'wdd','male','wdd@qq.cm','123456'),
|
|
(18,'cxc','male','cxc@163.com','13911'),
|
|
(12,'die','male','die@qq.com','234325');
|
|
|
|
select * from user_info;
|
|
|
|
delete from user_info where user_id=3;
|
|
|
|
insert into user_info (age, user_name,gender, email, phone_number)
|
|
values
|
|
(12,'die','male','die@qq.com','234325'),
|
|
(18,'fangfang','female','fang@qq.com','123');
|
|
|
|
update user_info set user_name='fang' where user_id=5;
|
|
|
|
|
|
#DQL
|
|
select user_id,user_name from user_info;
|
|
|
|
select user_name,email from user_info where user_id=4;
|
|
|
|
select user_id,email from user_info where user_info.user_name like '%c';
|
|
|
|
update user_info set phone_number=null where user_id=5;
|
|
select * from user_info;
|
|
|
|
select user_name,age,gender from user_info where phone_number is null ;
|
|
|
|
select user_name, email from user_info where age=18 and user_info.gender='male';
|
|
|
|
select gender,count(*) as count_num from user_info group by gender;
|
|
|
|
# DQL high level
|
|
## union
|
|
|
|
select * from user_info where user_info.gender='female'
|
|
union
|
|
select * from user_info where user_info.user_name like '%c';
|
|
|
|
drop table if exists fav_thing;
|
|
create table fav_thing (
|
|
fav_id tinyint(4) primary key auto_increment,
|
|
fav_thing varchar(150),
|
|
fav_user_id smallint(5) not null,
|
|
constraint fk_fav_user foreign key fav_thing(fav_user_id) references user_info(user_id)
|
|
);
|
|
|
|
describe fav_thing;
|
|
|
|
insert into fav_thing (fav_thing, fav_user_id)
|
|
VALUES
|
|
('reading',1),
|
|
('fighting',5);
|
|
|
|
select * from fav_thing;
|
|
|
|
## inner join
|
|
select * from user_info
|
|
inner join
|
|
fav_thing ft on user_info.user_id = ft.fav_user_id;
|
|
|
|
select * from user_info
|
|
inner join fav_thing;
|
|
|
|
select * from fav_thing
|
|
inner join user_info;
|
|
|
|
## left outer join
|
|
## 查询所有的user对应的fav_thing
|
|
select * from user_info
|
|
left join
|
|
fav_thing ft on user_info.user_id = ft.fav_user_id;
|
|
|
|
select * from fav_thing
|
|
left join user_info ui on ui.user_id = fav_thing.fav_user_id;
|
|
|
|
select * from user_info
|
|
cross join
|
|
fav_thing ft on user_info.user_id = ft.fav_user_id;
|
|
|
|
select * from fav_thing
|
|
cross join user_info ui on ui.user_id = fav_thing.fav_user_id;
|
|
|
|
## full outer join
|
|
select * from user_info
|
|
full join fav_thing ft on full.user_id = ft.fav_user_id;
|
|
|
|
select * from fav_thing
|
|
full join user_info ui on ui.user_id = full.fav_user_id;
|
|
|