MySQL入门指南(一):MySQL介绍、数据库创建、表的增删改、视图

数据库介绍

数据库的分类
  1. 层次数据库
    类似xml的文本结构。
  2. 网状数据库
  3. 关系数据库
    MySQL,SQL server,oracle等,下面主要介绍它
关系数据库

SQL: Struct Query Language(结构化查询语言),它是一个"国际化标准"。各种关系数据库都是实现该标准的一种产品。

数据库本质和表现

本质:将大量的"数据值"通过数据库管理系统进行复杂但逻辑结构清晰有序的存储,效率高的惊人。
表现:存储在指定文件夹中。

关系数据库常见术语

数据data,数据库database,数据库管理系统dbms,表(数据表)table,字段field,行row,列column,记录record

数据库系统基本结构
数据库关系结构
MySQL系统级操作

注意:如果使用MAMP集成环境,并希望在终端操作数据库,请先配置静态环境变量,在根目录下找到.profile(没有时创建),之后打开文件复制这句话export PATH=/opt/local/bin:/opt/local/sbin:/Applications/MAMP/Library/bin:$PATH保存,重启服务

登录命令:mysql -h服务器地址 -u登录名 -P端口号 -p密码

登录命令

备份数据库:mysqldump -h服务器地址 -u登录名 -p密码 要保存的数据库名>路径+要保存为的文件名

恢复数据库:mysql -h服务器地址 -u登录名 -p密码 要恢复的数据库名<数据库路径+文件名

基础语法规定

注释:

  1. 单行注释:#注释内容
  2. 单行注释: -- 注释内容
  3. 多行注释:/注释内容/

大小写问题
MySQL语言本身不区分大小写,但在某些区分大小写的操作系统中,数据库名和表名会区分大小写。推荐使用"下划线命名法":单词都用小写字母,单词之间用"_"分开。

php中操作数据库的基本代码和流程

基本流程
  1. 连接数据库:$mylink = mysqli_connect("localhost",'root','root',"tempdb3");
    坑:mysql_connect在 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。
  2. 执行sql命令:$result = $mylink->query("几乎任何sql语句")
    返回的结果通常分两种情况进行处理
    2.1 如果无返回数据的语句
    2.1.1 如果$result为true,表示执行成功
    2.1.2 如果$result为false,表示执行失败
    2.2 如果是有返回数据的语句
    2.2.1 如果$result为false,表示执行失败
    2.2.2 否则,执行成功,需要继续从结果中取出数据并显示出来

数据定义语句

创建数据库

creat database [if not exists] 数据库名 [charset 字符集] [collate 字符排序规则];
说明:

  1. if not exists:用于判断是否存在该数据库名,如果存在则不执行该语句。
  2. 字符集:数据存储到数据库中时用的编码名称
  3. 字符排序规则通常不设置,即使用默认排序规则
修改数据库

alter database 数据库名 character set =新字符集 collate=新校对集;

删除数据库

drop database 数据库名;

其他数据库相关语句

选择进入某数据库:use 数据库名;
显示所有数据库: show datebases;
显示某个数据库的"创建语句":show create database 数据库名

字段类型

字段类型
通用定义形式

定义一个字段的时候的类型的写法,比如:
creat table tab1 (f1 数据类型);

数据类型:类型名 [(长度)][unsigned][zerofill]
zerofill:填充0,是指如果一个数字的长度不够指定长度的时候可以在左边补充0,如果用zerofill则是无符号类型(表示范围正数*2,无负数)

整数类型
整数类型表示范围
小数类型

float:非精确
double:非精确
decimal:定点型,精确数,需要设定长度,形式为:decimal(总长,小数位数)

时间日期类型

date:年月日
time:时分秒
datetime:年月日时分秒
year:可以是4位数字或4位纯数字字符串,也可以是2位整数或2位纯数字字符串
timetamp:时间戳
写入数据库时,直接的时间日期数据,应该用单引号引起来

字符串类型

varchar:可变长度字符串类型,最多能存储2^16个字节,设定长度为最长长度,不足不用补空格
char:定长字符串类型,最多存储256个字符,不足补空格,溢出的无法存储

2个二进制文本
binary:类似char,存文本的二进制数据
varbinary:类似varchar,存文本的二进制数据

2个大文本
text:存储超大文本,varchar不够用它,与char和varchar效率低
blob:可以存储超大二进制数据,用于存储图片这种二进制数据

2个有关"选项"的文本存储形式
enum:枚举,类似于OC的枚举.名称 enum('选项1','选项2','选项3','选项4'),本质存储的其实是数字
set:专门用于存储类型表单中的"多选项"的值,名称 set('选项1','选项2','选项3','选项4'),本质存储的数字是1,2,4,8,16···这样的数字,即每个选项代表二进制中对应的哪一位1,如果插入非2次方的数据,例如7,则为1+2+4,选项1,选项2,选项3。

表定义语句

创建表

基本形式:
create table [if not exists] 表名(字段列表,[约束或索引列表]) [表选项列表]
字段列表如果是多个,中间用逗号隔开
字段基本形式:字段名 类型[字段修饰属性]

表选项:
表选项就是对一个表的有关属性的设定,通常都不需要。如果不设定,有默认值。

有以下几个可用:
comment = '表的注释';

charset = 字符编码名称;//跟数据的字段编码设定一个意思。
字符编码设定的范围及继承关系:

  1. 系统级设定:安装时确定了
  2. 库级设定:建库时设定
  3. 表级设定:charset就是表级设定
  4. 字段级设定:作为字段属性出现

auto_increment = 起始整数;//自增长类型值初值,默认是1

engine = "表的存储引擎名";

  1. 存储引擎就是将数据存入硬盘的方式方法


    存储引擎对比

字段属性:

not null:不为空,表示不能为null,不写默认为空
auto_increment:int类型字段的值可以"自增长",即其值无须"写入",而会自动获得并添加
primary key:主键,一个表只能有一个主键,是唯一键的强化,不能重复,并且不能使用null,并且可以作为任意一行数据的"关键值",大多数表使用id并自增长类型作为主键
unique key:唯一键,该字段所有行行的值不可以重复
default:一个字段在没有插入数据的时候自动使用值
comment:字段注释

//范例
create table tab1(
id int auto_increment primary key not null,
f1 float unique,
f2 decimal(20,5) default 12.3,
f4 varchar(20) comment'这是一个注释'
);
执行结果

索引:
索引是一个"内置表",该表的数据是对某个真是表的某个字段的数据做了"排序"之后的存储形式。
作用:极大提高表查找速度,效率类似二分查找,但会降低增删改的速度,对创建表来说,建立索引非常简单:key(字段1,字段2····)unique key(字段1,字段2····)primary key(字段1,字段2····)fulltext(字段1,字段2····)

//范例
create table tab2(
id int auto_increment not null,
f1 float,
f2 decimal(20,5) default 12.3,
f4 varchar(20) comment'这是一个注释',
primary key(id),/*其实和写在字段上作为属性意义一样,但是出现在这里叫做主键索引,出现的场合不同叫法不同而已*/
unique key(f1),/*同上*/
key(f2)
);

约束:
约束是一种限定数据以符合某种要求的形式(机制)

约束主要有:
primary key:主键索引,主键属性,主键约束其实作用一样
unique key:唯一索引,唯一属性,唯一索引其实作用一样
foreign key:外键约束,此值其实是其他表的主键,所以不能修改。foreign key (字段名1,字段名2,···)references 表名2(字段名1,字段名2,···)

外键图示

修改表

通常创建表做的事,修改表也能做到,大体来说可以做到:

  1. 增删改字段
  2. 增删索引
  3. 增删约束
  4. 修改表选项

详细操作看手册

修改表的基本形式
alter table 表名 修改语句;
删除表
删除表的基本形式
drop table [if exists] 表名;
标的其他操作

显示所有表:show tables
显示表结构:desc 表名
显示表的创建语句:show create table 表名
从已有表复制表结构:create table [if no exist] 新表名 like 原表名

视图

视图可以看做是一个"临时存储的数据所构成的表"(非真实表),其实本质上只是一个select语句,只是将该select语句(通常比较复杂)进行一个"包装",并设定了一个名字,之后把这个名字当做一个表来使用。如果一个select 语句比较复杂,又在多个页面需要使用它,则可以将它做成一个视图,方便使用。如果某个数据表中的某些字段不想给别人看(不同公司之间的数据业务交换的时候),但有需要给别人看的时候,则可以将它做成一个视图。

视图创建形式
/**创建*/
create view 视图名[(列名1,列名2,···)] as 一条复杂的select语句;
/*修改*/
alter view 视图名 [(列名1,列名2,···)] as select 语句;
/*删除*/
drop view [if exists] 视图名;
视图的使用

其实就是当做一个查询表来用(通常只用于select)

select * from 视图名 where 条件 order by···
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容