斯O

2020-06-01   阅读量: 784

MYSQL基本语句

扫码加入数据分析学习群

-- 查看系统中有哪些数据库

show databases;

-- 创建test数据库

create database 数据库名;

-- 选择进入数据库

use 数据库名;

-- 删除数据库(慎用)

-- drop database 数据库名;

-- 创建数据表

-- create table 表名(字段名1 字段类型1,字段名2 字段类型2,...);

-- 查看当前数据库中有哪些表

-- show tables;

-- 查看表结构

-- desc 表名;

-- 删除数据表(慎用)

-- drop table 表名;

-- 创建带有约束条件的表(因为两张表中有主外键约束,所以需要先创建主键所在的dept,再创建外键所在的emp)

create table dept(

deptno int primary key,

dname varchar(15),

loc varchar(10)

);

create table emp(

empno int primary key auto_increment,

ename varchar(15) unique,

job varchar (10) not null default '-',

mgr int,

hiredate date,

sal float default 0,

comm float,

deptno int,

foreign key (deptno) references dept(deptno)

);

-- 修改表名

-- alter table 原表名 rename 新表名;

-- 修改字段名

-- alter table 表名 change 原字段名 新字段名 数据类型 [自增/非空/默认] [字段位置];

-- 修改字段类型

-- alter table 表名 modify 字段名 字段类型;

-- 添加字段

-- alter table 表名 add 字段名 字段类型;

-- 修改字段的排列位置:

-- alter table 表名 modify 字段名 字段类型 first;

-- alter table 表名 modify 字段名 字段类型 after 参照的字段名;

-- 删除字段

-- alter table emp drop 字段名;

-- 插入数据:字段名与字段值的数据类型、个数、顺序必须一一对应,两种输入方式。

insert into dept(deptno,dname,loc) values (10,'accounting','new york'),(20,'research','dallas');

insert into dept values (30,'sales','chicago'),(40,'operations','boston');

-- 批量导入数据(路径中不能有中文,‘\’在编程语言中是转义符,需要将‘\’改为‘\\’或‘/’)

-- 先有部门,才能存储每个部门的员工信息,所以先添加dept的部门信息,再导入emp的员工信息

-- 首先获取安全路径

show variables like '%secure%';

-- 再操作如下:

load data infile "C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee.csv"

into table emp

fields terminated by ','

ignore 1 lines;

select * from emp; -- 检查导入数据内容

select count(*) from emp; -- 检查导入数据总行数

-- 更新数据

-- set sql_safe_updates=0; -- 设置数据库安全权限

-- 10号部门的员工的基本工资+1000

update emp set sal=sal+1000 where deptno=10;

update emp set sal=sal+1000 ;

-- 删除数据

-- 删除30号部门的员工信息

delete from emp where deptno=30;

delete from emp;

-- 清空数据

truncate emp;

-- 单表查询(虚拟结果集)

select * from emp ;

-- 查询指定列:查询emp表中ename,job,sal

select ename,job,sal from emp ;

-- 设置别名:查询每位员工调整后的薪资(基本工资+1000)

select ename,job,sal+1000 薪资 from emp ;

-- 练习:查询每位员工的年薪(基本工资*12):empno,ename,年薪

select ename,empno,sal*12 年薪 from emp ;

-- 查询不重复的数据:查询emp表中有哪些部门

select distinct deptno from emp ;

-- 条件查询

-- 查询基本工资大于等于2000小于等于3000的员工信息

select *

from emp

where sal between 2000 and 3000;

select *

from emp

where sal>=2000 and sal<=3000;

-- 查询10号部门和20号部门中sal低于2000的员工信息

select *

from emp

where sal<2000 and deptno in(10,20);

select *

from emp

where sal<2000 and (deptno=10 or deptno=20);

-- 练习:查询salesman的所属部门:姓名,职位,所在部门

select ename,job,deptno

from emp

where job="salesman";

-- 空值查询

-- 查询mgr为空的记录

select *

from emp

where mgr is null;

-- 练习:查询comm不为空的记录

select *

from emp

where comm is not null;

-- 模糊查询

-- 查询姓名以a开头的员工信息

select *

from emp

where ename like "a%";

-- 查询姓名中包含a的员工信息

select *

from emp

where ename like "%a%";

-- 查询姓名中第二个字符为a的员工信息

select *

from emp

where ename like "_a%";

-- 练习:查询员工姓名中不包含s的员工信息

select *

from emp

where ename not like "%s%";

-- 查询结果排序

-- 单字段排序:查询所有员工信息按sal降序(desc)显示

select *

from emp

order by sal desc;

-- 多字段排序:查询所有员工信息按deptno升序(asc)、sal降序显示

select *

from emp

order by deptno asc,sal desc;

select *

from emp

order by sal desc ,deptno asc;

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
27.3122 2 2 关注作者 收藏

评论(0)


暂无数据

推荐课程