MySQL学习总结(1) — 数据库概念、MySQL简介、数据库语言、 创建数据库
1.数据库概念
-
数据库(DataBase,DB):
长期存放在在计算机内,按照数据结构组织、存储和管理数据的仓库。
-
作用:保存、并安全管理数据(增删改查等),减少数据冗余度,数据共享等。
-
数据库分类:
-
关系型数据库(SQL):
以二维表格来存储数据,表格与表格之间的数据关系用字段引用来表示。关系型数据库通过外键关联来建立表与表之间的关系。
目前主流的有:MySql(存储数据量小,处理数据的速度要求一般时选择)、Oracle(数据量大,处理数据速度要快,做中大型项目时选择)、SQL Server(Java程序员不用)、SQLite(嵌入式数据库,手机、平板使用的数据库)、DB2(大型数据库) …
-
非关系型数据库(NOSQL):
非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。
目前主流的有:Redis(面向高性能并发读写的key-value数据库)、MongoDB(面向海量数据访问的文档型数据库)
-
-
数据库管理系统(Database Management System,DBMS):
数据库管理软件,科学组织和存储数据,高效地获取和维护数据
2. MySQL数据库
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言,结构化查询语言(SQL)进行数据库管理。
其体积小,速度快,总体拥有成本低,尤其是开放源码这一特点,使得许多企业选择了MySQL作为数据库。
MySQL是现下流行且免费的开源数据库。
-
MySQL的历史:
MySQL的历史最早可以追溯到1979年,由瑞典MySQL AB 公司开发。2018年,MySQL被Sun公司收购。2009年,SUN又被Oracle收购。所以MySQL目前属于 Oracle 旗下。
-
MySQL的特点:
- 免费、开源数据库
- 体积小、速度快、成本低、功能齐全
- 可运行于window或linux操作系统
- 可适用于中小型甚至大型网站应用
-
SQLyog软件:
SQLyog是可手动操作,管理MySQL数据库的软件工具
特点 : 简洁 , 易用 , 图形化
3. 数据库语言
-
概念:
数据库语言是给用户提供的语言,包括两个子语言:数据定义语言和数据操纵语言。SQL语言就是一个集数据定义和数据操纵子语言为一体的典型数据库语言。
-
结构化查询语句SQL:
名称 说明 命令 数据定义语言
(Data Definition Language,DDL)定义和管理数据对象,如数据库,数据表等 CREATE、DROP、ALTER 数据操纵语言
(Data Manipulation Language,DML)用于操作数据库对象中所包含的数据 INSERT、UPDATE 数据查询语言
(Data Query Language,DQL)用于查询数据库数据 SELECT 数据控制语言
((Data Control Language,DCL))用于管理数据库的语言,包括管理权限及数据更改 GRANT、COMMIT、ROLLBACK -
数据库基本操作命令:
-
操作数据库之前,首先需要连接数据库,连接数据库的操作为:
打开DOS命令行窗口(以管理员身份运行),输入连接数据库语句:
mysql -u用户名 -p用户密码
-
基本的数据库操作命令:
操作命令 说明 create database [if not exists] 数据库名; 创建数据库 use 数据库名; 打开数据库 show 数据库名; 查看数据库 flush privileges; 刷新数据库 drop database [if exists] 数据库名; 删除数据库 exit 退出Mysql # 注释 ? 帮助
-
4. 创建数据库
创建数据库和数据表属于DDL语言。
-
SQLyog创建数据库的步骤:
-
打开SQLyog软件,点击新建,然后输入用户名和密码,点击连接。
-
在询问窗口输入创建数据库的命令语句:
create database [if not exists] 数据库名;
-
然后使用数据库。输入命令语句:
use 数据库名;
-
创建数据表和对应字段,语法:
create table [if not exists] `表名`( '字段名1' 列类型 [属性][索引][注释], '字段名2' 列类型 [属性][索引][注释], #... '字段名n' 列类型 [属性][索引][注释] )[表类型][表字符集][注释];
-
-
数据值和列类型:
-
数值类型:
数值类型 说明 取值范围 存储需求 tinyint 非常小的数据 有符号:-2^7 – 2^7-1
无符号:0 – 2^8-11字节 int 标准整数 有符号:-2^31 – 2^31-1
无符号:0 – 2^32-14字节 float 单精度浮点数 4字节 double 双精度浮点数 8字节 -
字符串类型:
字符串类型 说明 最大长度 char[(M)] 固定字符串,检索快但浪费空间,0<=M<=255 M字符 varchar[(M)] 可变字符串,0<=M<=255 变长度 text 文本串 2^16-1日期和时间类型: -
日期和时间性数值类型:
类型 说明 DATE YYYY-MM-DD,日期格式 TIME hh:mm:ss,时间格式 DATETIME YYYY-MM-DD hh:mm:ss
-
-
数据字段属性:
属性 说明 Unsigned 无符号的,声明该数据列不用需负数。 Auto_InCrement 自动增长的,每添加一条语句,自动在上一个记录数上加1(默认),通常用于设置主键,且为整数类型。 NULL和NOT NULL 默认为NULL , 即没有插入该列的数值。如果设置为NOT NULL,则该列必须有值 DEFAULT 默认的,用于设置默认值 -
案例:
创建一个schools数据库,创建学生表(列,字段),学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email。
-
说明:
1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符! 2. 每个库目录存在一个保存当前数据库的选项文件db.opt。 3. 注释: 单行注释 # 注释内容 多行注释 /* 注释内容 */ 单行注释 -- 注释内容 (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等)) 4. 模式通配符: _ 任意单个字符 % 任意多个字符,甚至包括零字符 单引号需要进行转义 \' 5. CMD命令行内的语句结束符可以为 ";", "\G", "\g",仅影响显示结果。其他地方还是用分号结束。delimiter 可修改当前对话的语句结束符。 6. SQL对大小写不敏感 7. 清除已有语句:\c