10.26-MySQL基础
数据库
数据库介绍
1. 数据库定义
通俗:存放数据的仓库
简单:电子化的文件柜
定义:数据库(DateBase 简称DB)是一个软件产品,按照数据结构来组织、储存和管理数据的,建立在计算机设备上的仓库
2. 数据库特点
数据共享
数据一致性和可维护性
安全性
完整性控制
并发控制
数据恢复
3. 主流数据库产品
关系型数据库
MySql:一个小型的关系型数据库管理系统
特点:体积小、速度快、总体拥有成本低、开放源代码
Oracle:甲骨文的数据库产品,它是第一个商品化的数据库管理系统
DB2:IBM公司的关系型数据库管理系统,有很多版本,运行在掌上产品到大型机等等不同的终端机器上。
Sybase:美国Sybase公司的关系型数据库管理系统,较早采用客户端\服务器结构数据库厂商,运行在Unix或Windows NT平台上
Sql server:微软产品,运行在WindowsNT平台上,支持客户端/服务器结构的数据库,采用标准SQL语言。
Access:微软发布的关系型数据库管理系统,它强调把数据库引擎的图形用户界面和软件开发工具结合
非关系型数据库
Redis
SQL语言
关系型数据库
描述两个元素之间的关联或对应关系,使用关系模型把数据组织到二维表中
关系:一对一、一对多、多对多
表设计
遵循三大范式
数据表
表是一个二维结构,由行和列组成
横向为行(Row),也叫记录
纵向为列(Column),也叫字段
一个关系型数据库由多个数据表组成,数据表是关系型数据库的基本储存结构
SQL定义
结构化查询语言:Structured Query Language
作用:专门用于与数据库进行通讯的语言;用于存取、查询、更新与管理数据(增删改查)
关系型数据库均支持SQL语言,但可能存在细微差距
SQL划分
数据定义语言
Data Definition Language
简称DDF
负责数据库对象(table)的定义,主要强调数据结构相关
常用语句
create
创建数据库对象(创建表结构)alter
修改表结构drop
删除表结构(彻底删除)truncate
清空表数据,保留表结构
数据操作语言
Data Manipulation Language
DML
主要用于实现对表中数据进行增加、修改、删除操作,主要强调数据相关
常用语句
insert
增加数据update
更新数据delete
删除数据
事务处理语言
Transaction Processing Language
TPL
主要结合DML使用,用于确认/取消操作
常用语句
commit
确认提交rollback
回滚取消savepoint
保存点
数据查询语言
Data Query Language
DQL
主要用于实现数据查询操作
常用语句
select
查询操作
数据控制语言
Data Control Language
DCL
主要用于权限的授予与回收
常用语句
creat user
创建用户grant
授予权限revoke
回收权限
总结
数据库(DB)->关系型数据库(MySQL)->二维表(table)->SQL语言->SQL划分
SQL划分
DDL结构->DML数据->DQL查询
->TPL事务->DCL权限
MySQL数据库介绍
MySql是最流行的关系型数据库管理软件之一,开发的首选数据库
特点:支持多线程处理、支持大型数据库、为多种编程语言提供API、多种数据库链接途径
show databases;
查看数据库
dorp database 库名;
删除指定的库
create datebase 库名 default character set utf-8;
新建库并指定编码集
create table 表名(
字段名 数据类型,
字段名 数据类型
);
desc 表名
; 查看表结构
show columns from 表名;
select now from dual();
获取系统时间
select now();
同上
dual
表示的是一个特殊的测试表,在MySQL中可以省略
常用数据类型
数值
int
double(m,n)
其中,m
表示总位数,n
表示小数点位数
字符串
必须加引号 单引号/双引号
char(n)
定长字符串n
代表字符个数varchar(n)
变长字符串
date 日期部分 \\年月日
datetime 日期时间 \\年月日时分秒
表结构操作
创建表结构
语法
create table 表名(
字段名 数据类型,
字段名 数据类型
);
注意: 表名不可重复!
最后一个字段后面没有逗号
例子
//创建部门表(dept_li)
//数据:
//deptno dname location
//10 '研发部' '南京'
create table dept_li(
deptno int,
dname varchar(8),
location varchar(10)
);
//查看表结构
desc dept_li;
show columns from dept_li;
修改表结构
//增加字段
alter table 表名 add 字段名 数据类型;
//部门表中增加"描述"字段 des varchar(20)
alter table dept_li add des varchar(20);
//修改字段
alter table 表名 modify 字段名 新类型;
//修改描述字段 varchar(20)->char(10)
alter table dept_li modify des char(10);
//修改字段名并修改字段类型
alter table dept_li change des abc varchar(10);
//删除字段
alter table 表名 drop 字段名
//删除描述字段
alter table dept_li drop abc;
删除表结构
//仅清空表数据,保留结构
truncate table dept_li;
//彻底删除表,常用
drop table dept_li;
练习
创建员工表 emp_li
字段名:
员工号 empno
员工姓名 ename
员工职位 position
员工薪水 salary
员工奖金 bonus
入职日期 hiredate
领导的员工号 leader
部门号 deptno
create table emp_li(
empno int,
ename varchar(10),
position varchar(10),
salary double,
bonus double,
hiredate date,
leader int,
deptno int
);
表数据操作
增加数据
语法
//方式一:全部字段
insert into 表名 values(值1,值2);
//例子:往部门表中添加记录
insert into dept_li values(10,'研发部','南京');
insert into dept_li values(20,'行政部','苏州');
//方式二:指定字段 值按照指定字段一一对应
insert into dept_li(deptno,dname,location)
values(30,'市场部','无锡');
insert into dept_li(deptno,dname)
values(40,"后勤部")
commit;//默认就已经确认提交了
//如果不想自动提交,可以使用下面的命令
set autocommit=0;
//查询部门表数据
select deptno,dname,location from dept_li;
注意
由于创建数据库时编码为UTF-8,而中文系统的默认编码为GBK,这会造成编码不一致导致报错。
可以使用下面的命令修正
show variables like 'char%';
set names gbk;
//当前会话有效
更新数据
语法
update 表名 set 字段=新值;
update 表名 set 字段=新值,字段=新值 where 条件;
//如果语句中没有where则表示更新表中所有记录
//更新部门表中40号部门,修改地址为"杭州"
update dept_li set location='杭州' where deptno=40;
delete from 表名;
delete from 表名 where 条件;
//如果语句中没有where表示删除表中所有记录
//插入数据 50 '策划部'
insert into dept_li values(50,'策划部',null);
insert into dept_li(deptno,dname)
values(50,'策划部');
//删除50号部门
delete from dept_li where deptno=50;
总结
insert
两种写法
字符串必须加引号
update
语法
是否带有条件
delete
是否具有条件
最后更新于