Mysql数据库笔记整理(一)

一、数据库介绍
1)数据库定义
理解:存放数据的仓库(增、删、改、查)
定义:数据库(Datebase 简称DB)是一个软件产品
数据库按照数据结构组织、存储和管理数据的,建立在计算机存储设备上的仓库。

2)数据库特点
a.数据共享

b.数据一致性和可维护性
安全性
完整性
并发控制

c.数据恢复

3)主流数据库产品(了解)
Oracle:甲骨文公司(Oracle)的数据库产品,
他是世界上第一个商品化的关系型数据库管理系统

Mysql:小型的关系型数据库管理系统,开发者瑞典Mysql AB公司,
现属于Oracle旗下产品(收购)。
特点:体积小、速度快、总体拥有成本低、开放源码

Sql servel:微软推出的一款关系型数据库管理系统,
运行在Windows NT平台上支持客户端/服务器模式的数据库,
采用标准的SQL语言。

DB2:美国IBM公司开发的一款关系型数据库管理系统,DB2有很多版本,
可以运行在掌上产品到大型机不同的终端机器上

Sysbase:美国Sysbase公司推出的一款关系型数据库,
是一种基于UNIX或Windows NT平台上客户端/服务器环境下的大型数据库

Access:微软发布的关系型数据库管理系统,把数据库引擎的图形用户界面
和开发工具结合在一起的数据库管理系统。

二、SQL介绍
1)关系型数据库
描述两个元素间的关联或对应关系,使用关系模型把数据组织到二维表当中。

//学生信息管理系统
学生表:学号、姓名…
课程表:课程号、课程名…
成绩表:学号、课程号、成绩…

2)二维表(Table)
表是一个二维结构,由行和列组成。
横向的数据称为行(Row),也叫记录(Record),用于表示实体数据。—某一个具体的实例对象
纵向的数据称为列(Colunm),也叫字段(Filed),用于表示实体拥有的属性。—每一个具体实例拥有的属性

PS:
一个关系型数据库是由多个表组成的,表是关系型数据库的基本存储结构。

3)SQL语言
SQL是结构化查询语言(Structured Query Language)
专门用于与数据库通信的语言,用于存取、查询、更新和管理关系型数据库。

ps:所有的关系型数据库都是使用相同或相似的SQL语言

SQL特点:(了解)
一体化(增删改查)
简单易学(使用英语,比较见名知意)
操作方式灵活(命令行操作,嵌入编程语言中操作)
通用(几乎所有的关系型数据库都支持)

4)SQL划分(重点)
1.数据定义语言:DDL(Date Definition Language)
负责数据库对象(例:表)的定义
常用语句:[针对表结构而言]
create:创建数据库对象(创建表结构)
alter:修改数据库对象(修改表结构)
drop:删除数据库对象(删除表结构)—彻底的删除
truncate:清空表数据保留表结构

2.数据操纵语言:DML(Date Manipulation Language)
实现对表中数据增加、更新、删除
常用语句:[针对表数据而言]
insert:增加数据
update:更新数据
delete:删除数据

3.数据查询语言:DQL(Date Query Language)
实现对表中数据查询操作
常用语句:
select:查询数据

ps:查询是重点(基础查询、高级查询)

4.数据控制语言:DCL(Date Control Language)
实现权限的授予与回收
常用语句:[权限相关]
grant:授予权限
revoke:回收权限
create user:创建用户

5.事务处理语言TPL(Transaction Processing Language)
跟DML数据操纵语言结合使用,用于进行确认或取消操作
常用语句:
commit:确认操作
rollback:回滚操作
savepoint:保存点

ps:
数据库->关系型数据库->表->SQL语言

三、Mysql数据库
Mysql是最流行的关系型数据库管理系统之一,小型网站开发的首选数据库

1)特性
开源免费、支持多线程处理、支持大型数据库使用、为多种编程(java、c)提供API、有多种数据库的连接途径

2)Mysql的下载
Mysql官网:http://www.mysql.com
Oracle官网:http://www.oracle.com

ps:
版本很多,课堂用5.5

3)Mysql安装
参考下发资料

ps:注意编码的选择:utf-8

四、Mysql客户端操作
1)打开
Mysql–>命令行方式–>控制台界面

2)登录
用户名:root(默认)
密码:1234(课堂)

3)查看数据库
show databases;

4)创建数据库(设置默认编码)
create database 数据库名
default character set utf8;

如:
create database jsd
default character set utf8;

5)使用指定的数据库
use数据库名;

如:
use jsd;//非常重要

6)查看表
show tables;

7)创建表
create table 表名(
字段名 类型,
字段名 类型
);

8)查看表结构
desc 表名;

show columns from 表名;

9)查看系统当前时间
select now() from dual;

select now();

ps:
控制台中复制
编辑->标记(选中)->复制(Enter键)

dual表是Oracle提供的最小的工作表,只有一行一列,
具有某些特殊功能,往往用于测试使用,mysql数据库也可以使用

10)查看编码设置
show variables like ‘%character%’;

//设置编码统一
set names gbk;//当前会话有效—即当前打开的窗口

五、Mysql常用数据类型
1)数值类型
int:占4个字节
float(m,d):占4个字节
double(m,d):占8个字节,m表示数字的总位数,d表示数字的小数位数
数字小数位数(小数位会自动四舍五入处理)

如:
double(5,3)->表示最大数99.999

2)字符类型
char(n):定长字符串,n表示字符长度,当长度不足n的时候则补空格(方便查询)—浪费空间
varchar(n):变长字符串,n表示字符长度,实际几个字符,就占多大空间,当长度不足n的时候不补空格(节省空间)

ps:
字符:不区分中英文
字符串类型必须加引号(单、双引号都可以)

3)日期类型
date:日期数据
datetime:日期和时间数据

六、表的结构操作(DDL)
1)创建表结构
create table 表名(
字段名 类型,
字段名 类型
);

ps:注意点
a.关键字create table
b.表名不能重复
c.字段之间用逗号隔开,最后一个字段不需要加逗号
d.字段可以添加默认值default

//创建部门表(dept_zhang)
分析:
部门号:10 20 30 deptno–int
部门名称:‘研发部’‘行政部’ dname–varchar(6)
部门地址:‘南京’‘苏州’ location–varchar(8)

//创建
create table dept_zhang(
deptno int,
dname varchar(6),
location varchar(8)
);

//查看表结构
desc dept_zhang;

show columns from dept_zhang;

ps:表可以重命名
rename table 原名字 to 新名字;

2)修改表结构
//增加字段
语法:
alter table 表名 add 字段名 类型;
例:
给部门增加一个’描述’字段(des varchar(10))
alter table dept_zhang add des varchar(10);

//修改字段(字段类型及长度、字段名)
语法:
–改类型和长度
例:
给部门表中’描述’字段varchar(10)–char(20)
alter table dept_zhang modify des char(20);
ps:
如果表中无数据,修改字段类型及长度可以任意修改。
但当表中有数据,修改有可能会失败(比如说长度范围由大变小)。

修改字段名(了解)
alter table dept_zhang change des dd varchar(10);

//删除字段
语法:
alter table 表名 drop 字段名;
例:
删除部门表中的’描述’字段
alter table dept_zhang drop dd;

3)删除表结构
//彻底删除,删除数据同时删除表结构
drop table 表名;—常用
drop table dept_zhang;

//清空表数据保留表结构
truncate table 表名;
truncate table dept_zhang;

总结:
create:创建表结构
alter: 修改表结构(add增加字段、modify修改字段类型及长度、change修改字段名、drop删除字段)
drop:删除表结构
truncate:清空数据保留表结构

七、表数据操作(DML)
ps:语法必须记住!!!!!
1)增加数据
语法:
//方式一:全部字段,按照表结构一一对应给值
insert into 表名 values(值1,值2,…);
例:
往部门表中插入一条记录
insert into dept_zhang values(10,‘销售部’,‘南京’);

insert into dept_zhang values(20,‘行政部’,‘苏州’);

//查看部门表中数据
select deptno,dname,location from dept_zhang;

//方式二:指定字段,给值按照指定字段一一对应给值
insert into 表名(字段1.字段2) values(值1,值2);
例:
继续往部门表中插入数据
insert into dept_zhang(deptno,dname,location) values(30,‘销售部’,‘合肥’);

insert into dept_zhang(deptno,dname,location) values(40,‘市场部’,‘杭州’);

ps:
mysql控制台默认自动提交
//设置不自动提交
set autocommit=0;
commit;//手动提交

2)更新数据
语法:
update 表名 set 字段名=值;//修改全部

update 表名 set 字段名=值 where 条件;//修改一个

update 表名 set 字段名1=值1,字段名2=值2 where 条件1,条件2;//修改多个,用逗号隔开
ps:
如果没有where则表示更新表中的全部记录
例:
更新部门表中40号部门,部门地址由’杭州’改为’淮安’
update dept_zhang set location=‘淮安’ where deptno=40;//带有条件的更新

3)删除数据
语法:
delete from 表名;
delete from 表名 where 条件;

ps:
如果没有where则表示删除表中的全部记录

//插入数据
insert into dept_zhang values(50,‘后勤部’,null);
insert into dept_zhang(deptno,dname) values(60,‘后勤部’);

//删除50号部门
delete from dept_zhang;//全部数据删除
delete from dept_zhang where deptno=50;//带有条件的删除

补充:
删除数据(两者效果相同)
//DML 确认提交(默认自动提交),若未提交可以回滚 ,可以带where条件
delete from 表名;
//DDL 立即生效 清空表数据
truncate table 表名;

分析员工表:
员工号:empno
员工名:ename
职位:position
薪水:salary
奖金:bonus
入职日期:hiredate
员工领导:leader
部门号:deptno

分析每个字段对应的数据类型及长度,完成表结构创建并插入数据

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值