数据库入门

注:部分内容出自微信公众号: 狂神说

一.数据库

1.什么是数据库

数据库 ( DataBase , 简称DB )
概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 "仓库"
作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余..

数据库的分类:
1.关系型数据库(SQL)
	MySQL , Oracle , SQL Server , SQLite , DB2 , ...
    关系型数据库通过外键关联来建立表与表之间的关系
2.非关系型数据库(NOSQL)
	Redis , MongoDB , ...
	非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

什么是DBMS?
数据库管理系统 ( DataBase Management System )
数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据
MySQL就是一个数据库管理系统.

2.MySQL简介

1.概念 : 是现在流行的开源的,免费的 关系型数据库
2.历史 : 由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
3.特点 : 
	免费 , 开源数据库
	小巧 , 功能齐全
	使用便捷
	可运行于Windows或Linux操作系统
	可适用于中小型甚至大型网站应用

3.常用基本数据库操作命令

mysql -uroot -proot连接数据库
		注意 : -p后面不能加空格,否则会被当做密码的内容,导致登录失败 !
update user set password=password('123456')where user='root'; 修改密码
flush privileges; 刷新数据库
show databases; 显示所有数据库
use name;打开某个数据库
show tables; 显示数据库mysql中所有的表
describe user; 显示表mysql数据库中user表的列信息
create database name; 创建数据库,名称为name
use databasename; 选择数据库的使用

exit; 退出Mysql
? 命令关键词 : 寻求帮助
-- 表示注释

4.结构化查询语言的分类

1.DDL: 数据定义语言,创建和删除数据库和表等; 命令 create drop alter
2.DML: 数据操作语言,对数据库对象中的数据进行增加 删除 跟新 ;命令 insert delete update
3.DQL: 数据查询语言,用于查询数据 ;命令 select
4.DCL: 数据控制语言,用于管理数据库权限以及修改数据  grant commit rollback

5.数据库的操作

创建数据库: create database [if not exists] 数据库名称;括号内的表示判定条件,可写可不写,系统默认会判断
删除数据库: drop database [if exists] 数据库名称;
查看所有数据库:show databases;
使用数据库: use 数据库名称;

下图为Sqlyog创建数据库的操作,依次为创建数据库的名称 编码格式 校对不区分大小写

在这里插入图片描述

6.关于表的操作

语法:
create table [if not exists] 表名(
	字段名1 数据类型 [属性][索引][注释],
	字段名2 数据类型 [属性][索引][注释],
	......
	字段名n 数据类型 [属性][索引][注释]
)[表类型][表字符集][注释];

注意:
1.字段名就是列名,数据类型就是列类型
2.多个字段之间用隔开,最后一个不用,

7.数据类型

(1).数值类型

在这里插入图片描述

(2).字符串类型

在这里插入图片描述

(3)日期和时间型数值类型

在这里插入图片描述

(4)NULL值

NULL:理解为"没有值"或"未知值"
		不要用NULL进行算术运算 , 结果仍为NULL

8.字段属性

(1)UnSigned

无符号的
声明该数据列不允许负数 

(2)ZEROFILL

0填充的
不足位数的用0来填充 ,默认是000,如int(3),5则为005

(3)Auto_InCrement

1.自动增长的,每添加一条数据,自动在上一个记录数上加 1(默认)
2.通常用于设置主键 , 且为整数类型
3.可定义起始值和步长
		当前表设置起始值(AUTO_INCREMENT=100) : 只影响当前表
		SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

(4)NULL和NOT NULL

默认为NULL , 即没有插入该列的数值
如果设置为NOT NULL , 则该列必须有值

(5)DEFAULT

用于设置默认值
例如,性别字段,默认为"男" , 否则为 "女" ; 若无指定该列的值 , 则默认值为"男"

二.案例

目标 : 创建一个school数据库
	创建学生表(列,字段)
	学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
	创建表之前 , 一定要先选择数据库


-- 目标 : 创建一个school数据库
-- 创建学生表(,字段)
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-- 创建表之前 , 一定要先选择数据库

CREATE DATABASE school;
USE school;
 /* id为三位 不为空 从1开始自动增长
    ENGINE设置引擎,DEFAULT CHARSET=utf8设置默认编码格式为utf8	
  */
CREATE TABLE IF NOT EXISTS student2(
  id INT(3) NOT NULL AUTO_INCREMENT COMMENT '姓名',
  upassword VARCHAR(20) NOT NULL DEFAULT '123456',
  uname VARCHAR(30) NOT NULL DEFAULT '匿名',
  usex VARCHAR(2) NOT NULL DEFAULT '男',
  birthday DATETIME DEFAULT NULL,
  address VARCHAR(100) DEFAULT NULL,
  email VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY(id)
)ENGINE=INNODB DEFAULT CHARSET=utf8

-- 显示表结构
DESC student2;
-- 查询数据库
SELECT * FROM student2

-- 查询数据库的定义
SHOW CREATE DATABASE school;

-- 查询数据表的定义
SHOW CREATE TABLE student2;

在这里插入图片描述

三.修改表(ALTER TABLE)

1.修改数据表的名字

语法:
alter table 旧表名 rename as 新表名

2.往表里添加字段(列)

alter tableb 表名 add 字段名 列名[属性]

3.修改字段

1.alter table 表名 modify 列名 数据类型
2.alter table 表明 change 旧列名 新列名 数据类型

4.删除字段

alter table 表名 drop 字段名
-- 重命名表
ALTER TABLE student2 RENAME AS student3

DESC student3

-- 增加一个字段
ALTER TABLE student3 ADD nickname VARCHAR(30)

-- 修改字段
ALTER TABLE student3 MODIFY nickname VARCHAR(100) DEFAULT '豹子头' NOT NULL
SELECT * FROM student3

ALTER TABLE student3 CHANGE nickname nickname2 VARCHAR(200) NOT NULL

-- 删除字段
ALTER TABLE student3 DROP nickname2

DESC student3

在这里插入图片描述

四.删除数据表

语法:
drop table [if exists] 表名

注意:
1.if exists为可选,判断是否存在该数据表
2.如果删除不存在的数据表会报错

如:DROP TABLE IF EXISTS student

五.注释

  -- 单行注释
/*...*/多行注释

六.数据表的类型

1.MySql数据表类型

MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等...
常见的MyISAM和InnoDB 类型

经验 ( 适用场合 )  :
	适用 MyISAM : 节约空间及相应速度
	适用 InnoDB : 安全性 , 事务处理及多用户操作数据表

在这里插入图片描述

2.数据表的存储位置

MySQL数据表以文件方式存放在磁盘中
	包括表文件 , 数据文件 , 以及数据库的选项文件
	位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .

注意 :

* . frm -- 表结构定义文件
* . MYD -- 数据文件 ( data )
* . MYI -- 索引文件 ( index )
InnoDB类型数据表只有一个 *.frm文件 , 以及上一级目录的ibdata1文件
MyISAM类型数据表对应三个文件 :

3.设置数据表字符集

我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :
创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;
如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定

七.其他

1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!
2. 每个库目录存在一个保存当前数据库的选项文件db.opt。
3. 注释:
  多行注释 /* 注释内容 */
  单行注释 -- 注释内容       (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等))
4. 模式通配符:
  _   任意单个字符
  %   任意多个字符,甚至包括零字符
  单引号需要进行转义 \'
5. CMD命令行内的语句结束符可以为 ";", "\G", "\g",仅影响显示结果。其他地方还是用分号结束。delimiter 可修改当前对话的语句结束符
6. SQL对大小写不敏感 (关键字)
7. 清除已有语句:\c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值