悠悠202

2020-06-15   阅读量: 1508

Mysql

MySQL基础(一)

扫码加入数据分析学习群

【数据库操作语言】

DDL:数据定义语言,创建、修改、删除数据库中的对象(库、表、视图、索引),如create、alter、drop

DML:数据操作语言,操作表中的记录,如insert、update、delete

DQL:数据查询语言,查询记录,如select

DCL:定义数据库访问权限和安全级别,如grant、revoke

ctrl+enter:执行快捷键

【数据类型】

int:整数型,默认长度11位

float:单精度浮点型,float(10,2)——最长10位,包含2位小数

decimal:十进制小数型,用于金额、价格等,默认decimal(10,0)—10位,包含0位小数

char:固定长度字符串型,1-255,默认char(1)

varchar:可变字符串型,1-255,必须指定长度

text:长文本字符串型,最长65535

date:日期型,'yyyy-mm-dd'

time:时间型,'hh:mm:ss'

datetime:日期时间型,'yyyy-mm-dd hh:mm:ss'

timestamp:时间戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之间

【约束条件】

primary key:主键约束,可在建表语句任意部分,联合主键primary key(A,B)

foreign_key:外键约束,只能在建表语句结尾,如foreign key 字段名 references 主表 主键字段

not null:非空约束

unique:唯一约束

auto_increment:自动增长约束,仅限主键列

default:默认约束,如defult 0

【MySQL基础语句】

-- 查看可用数据库
show databases;

-- 创建数据库mytest
create database mytest;

-- 选择进入数据库
use mytest;

-- 删除数据库(慎用)
drop database mytest;
-- 创建数据表
create table department(depid int,dname varchar(10),loc varchar(10));

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

-- 查看表结构
desc department;

-- 删除数据表(慎用)
drop table department;

--创建带约束的表
create table dept(
deptno int primary key,
dname varchar(10),
loc varchar(10));

create table employee(
empid int primary key auto_increment,
ename varchar(10) unique,
mgr int,
job varchar(10) not null,
hiredate date,
sal float default 0,
comm float,
deptno int,
foreign key(deptno) references dept(deptno));

-- 修改表名
alter table employee rename emp;

show tables;
-- 修改字段名
alter table emp change empid empno int;

-- 修改字段类型
alter table emp modify sal decimal default 0;

-- 添加字段
alter table emp add address varchar(20) not null default '-';

desc emp;
-- 修改字段的排列位置:
alter table emp modify address varchar(20) first;
alter table emp modify address varchar(20) after sal;

-- 删除字段
alter table emp drop address;
desc emp;
-- 删除主键
alter table emp drop primary key;

-- 插入数据:字段名与字段值的数据类型、个数、顺序必须一一对应
insert into dept(deptno,dname,loc) values (10,'accounting','new york'),(20,'research','dadeptllas');
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;

-- 更新数据
-- 设置数据库安全权限
-- set sql_safe_updates=0;
-- set sql_safe_updates=1;
update emp set sal=sal+1000 where deptno=10;

-- 删除所有内容,保留表结构,可以加where
delete from emp where deptno=10;
-- 清空数据,保留表结构,不能加where,效率高于delete
truncate emp;

-- 单表查询(虚拟结果集)
select * from emp;

-- 设置别名:查询每位员工调整后的薪资(基本工资+1000),并导出保存至文件t.csv
select *,sal+1000 as 调薪 from emp
into outfile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/t.csv'
fields terminated by ',';

-- 查询不重复的数据:查询emp表中有哪些部门
select distinct deptno,job from emp;

18.6615 3 5 关注作者 收藏

评论(1)

悠悠202
2020-06-20

ok

0.0000 0 0 回复

推荐课程