网站的建设及推广白石洲网站建设
-- 查询所有数据库
show databases; 
-- 创建数据库,数据库名为mydatabase
create database mydatabase; 
 -- 如果没有名为 mydatabase的数据库则创建,有就不创建
create database if not exists mydatabase; 
-- 如果没有名为 mydatabase的数据库则创建,有就不创建,数据库字符编码设置为utf8mb4
create database if not exists mydatabase character set utf8mb4; 
-- 使用数据库
use mydatabase; 
-- 删除名为mydatabase的数据库
drop database mydatabase; 
-- 如果有名为 mydatabase的数据库则删除,没有就不删除
drop database if exists mydatabase; 
-- 查看mydatabase数据库的表结构
desc mydatabase; 
-- 创建表,comment用于字段说明,创建一个表有id,name,gender,age,class字段
create table mytable(id int not null ,name varchar(20) not null comment '姓名',gender varchar(2) not null comment '性别',age int not null comment '年龄',class varchar(20) not null comment'班级'
); 
-- 删除名为mytable的表
drop table mytable; 
-- 如果存在则删除mytable表,不存在就不删除
drop table if exists mytable; 
-- 数据库主要有增删查改等操作
-- 创建一个学生表student,字段有id ,sn, name,qq_meail
create table student (id int ,sn int comment '学号',name varchar (20) comment '姓名' ,qq_email varchar(32) comment 'qq邮箱'
); 
-- 增,插入数据
insert into student (id,sn,name,qq_email) values (1,'10000','张三','123456@qq.com'); 
-- 可以指定列插入
  
insert into student (sn,name,qq_email) values( '1002','李四','234567@qq.com'); 
  -- 查,查询记录
  -- 查询student表里所有字段
  -- 一般不用这种全列查询,因为全列查询效率低
 select * from student; 
  -- 查询student表里的指定列 sn,name,qq_email
 select sn,name,qq_email from student; 
  
  -- 查询字段也可以进行表达式运算
 select sn+10,name,qq_email from student; 
  -- 再比如,插查询字段为id, name, chninese,english,math三门成绩相加
 select id,name,chinese+english+math from student; 
  -- 数据库约束
  
  -- NULL约束,当字段设置为not null,那么这一列就不能为空
 create table student (id int  not null ,name varchar(32) not null,age int not null); 
  
  -- unique约束:指定字段的某列是唯一的,不可以重复的
  -- 创建一个学生表,id为主键自增,sn设置为唯一的unique
 drop table if exists student ;create table student(id int not null primary key auto_increment,sn int unique comment '学号',name varchar(32) not null comment '名字'); 
  -- default约束:规定没有给列赋值时可以给一个默认值
 -- 当name不知道时设置默认为'未知'
  
drop table if exists student;create table student (id int not null primary key auto_increment,sn int unique comment '学号',name varchar(32) default  '未知' comment '名字'); 
  -- 主键约束
  -- id为主键且设为自增
 drop table if exists student;create table student (id int not null primary key auto_increment,sn int  comment '学号',name varchar(32) comment '名字'); 
  
  -- 外键约束:外键约束用来关联表之间的关系,可以用来关联其他表的主键
  -- 添加外键约束语法  foreign key (字段名) references (主表的列)
  
1.查询与过滤
题目:现在运营想要查看用户信息表中所有的数据,请你取出相应结果
select*from user_profile; 
 
题目:现在运营同学想要用户的设备id对应的性别、年龄和学校的数据,请你取出相应数据
select device_id,gender,age,university from user_profile; 
题目:现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。
select  distinct university from user_profile; 
题目:现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。
-- LIMIT n OFFSET m:从第m+1条开始,取n条数据
select device_id from user_profile limit 2 offset 0; 
题目:现在你需要查看前2个用户明细设备ID数据,并将列名改为 'user_infos_example',,请你从用户信息表取出相应结果。
select device_id as user_infos_example from user_profile limit 2 offset 0; 
题目:现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。
select device_id,university from user_profile where university='北京大学'; 
题目:现在运营想要针对24岁以上的用户开展分析,请你取出满足条件的设备ID、性别、年龄、学校。
select device_id,gender,age,university from user_profile where age>=24; 
题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。
select device_id,gender,age from user_profile where age>=20 and age<=23; 
题目:现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据
select device_id,gender,age,university from user_profile where university!='复旦大学'; 
题目:现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户的设备ID,性别,年龄,学校的信息。
select device_id,gender,age,university from user_profile where age is not null; 
