数据库SQL语句使用

-- 查询所有数据库

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','张三','[email protected]');

-- 可以指定列插入
 

insert into student (sn,name,qq_email) values( '1002','李四','[email protected]');
 


 -- 查,查询记录
 -- 查询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;

你可能感兴趣的:(sql,数据库)