MySQL基础第一天

数据库:  存储数据的介质。

数据库的发展史:

第一代数据库:  层次模型,网状模型。

层次模型和网状模型都是属于导航结构。

第二代数据库: 关系型数据库。

 表和表之间都是独立的,他们是通过公共字段进行关   联的。

 优点: 查询表数据时效率高,对于数据的约束强。

 缺点: 当进行多表查询的时候,效率较低。

 数据库系统(DBS)是由数据库(DB)+数据库管理系统(DBMS)组成的。

 老何有话说:  关系型数据库管理系统(RDBMS)  relationship(关系)

   SQL语言  structured query language(结构化查询语言),他是所有关系型数据库共用的语言。

     数据库服务器的开启和关闭:

通过服务选项对数据库开启和关闭。

通过cmd命令提示符对数据库服务器开启和关闭。

数据库的四种客户端:

 mysql自带的客户端。(只能够登陆自己本地的超级管理账号)

 mysql的网页客户端(phpMyadmin)。

 mysql的可视化界面客户端(mysql-front,navicat)。

 mysqlcmd客户端。

-h 主机

-P 端口号

-u 用户名

-p 密码

如果登陆的是自己本地的主机,-h可以省略不写,如果登陆的是3306端口号,-P可以省略不写。

如果密码想以暗文的模式进行登陆,-p以后直接回车,再进行输入密码,这时候,密码就会以暗文的模式进行输入。

数据库的基本原理。

数据库管理系统管理多个数据库,数据库对应多张表格,每个表格从结构上划分,分为行和列,如果从数据上进行划分,分为记录和字段。

数据冗余:

数据表格中字段的重复部分称之为冗余。

如果想减少冗余,那么我们可以创建一个关联表。减 少冗余的代价是表和表之间关联增加,降低查询的效率。

冗余只能够减少,不能够避免。

 数据的完整性:  数据的正确性+数据的准确性。

 

数据的操作:

增加一个数据库

create database [if not exists] 数据库名称 [charset=字符集][collote=校验级]

数据库的起名:

1. 只能由字母,数字和下划线组成

2. 不能够用纯数字起名

3. 不能以关键词作为数据库的名称

  如果起名不符合以上要求,那么需要在数据库名称的左右两边加上一个反引号(`

创建一个数据库就相当于在data文件夹的下面创建一个文件夹,刚刚新建完数据库以后,文件夹中只有一个后缀名是opt的文件,里面是数据的字符集,以及数据库的校验级。

 可以通过打开my.ini,搜索datadir,可以找到data文件的位置。

查询一个数据库

 show databases;

 安装完数据库以后,数据库管理系统会自带4 数据库。

information_schema : 存储的表数据,表索引等等 内容。

 performance_schema : 存储的是数据库的一些    性能参数。

 mysql : 存储的是一些用户信息。

 test :  测试用的数据库,给用户试手练习 的。

 

查询创建数据库的语句:

show create database 数据库名称  

 

修改一个数据库:

alter database 数据库名称 charset=字符集编码;

 

删除一个数据库

 drop database 数据库名称

 

表的操作

   创建一个表:

create table [if not exists] 表名(

字段名称  数据类型  [not null] [default] [primary key][auto_increment][unique key][comment],

字段名称  数据类型  [not null] [default] [primary key][auto_increment][unique key][comment],

字段名称  数据类型  [not null] [default] [primary key][auto_increment][unique key][comment]

)[charset=字符集编码][engine=引擎]

表和对应文件的关系:

由引擎决定,如果是默认的innodb引擎,那么就是一对一的关系,创建的是一个frm文件,代表表结构,表索引和表数据都是存储在data文件夹中的ibdata1中。

如果是myisam 引擎,那么就是一对三的关系,创建一个表格,同时生产三个文件,分别是:
frm : 表结构

                             MYI : 表索引

     MYD : 表数据

innodb的优点:

1.   不容易产生垃圾碎片

2.   支持存储结构,触发器等内容

3.   更新操作时效率高

 myisam的优点:

 1. 易操作,方便

 2. 查询时效率高

 

 查询表格的语句:

show tables 显示所有的表格

show create table 表名\G  显示创建表格的语句

desc 表名 显示表结构

 

  修改表格:

增加一个字段:

alter table 表名 add 字段名 数据类型 附加属性

alter table 表名 add 字段名 数据类型 附加属性 frist

alter table 表名 add 字段名 数据类型 附加属性 after 字段名

 修改一个字段:(modify , change)

alter table 表名 modify 字段名 数据类型 附加属性

alter table 表名 change 字段名 新字段名  数据类型 附加属性

 删除一个字段:(drop)

alter table 表名 drop 字段名

 修改引擎:

alter table 表名 engine=引擎

     重命名表格:

alter table 表名 rename to 新表名

 

删除表格:

drop table [if exists] 表名

对于数据的操作:

 新增一条记录:

insert into 表名(添加字段) value()

1.   添加字段的顺序和插入值的顺序必须要一一对应

2.   添加字段的顺序和原表中字段的顺序不需要一一对应

3.   如果添加字段的数量正好等于表格中字段的数量,那么添加字段可以省略不写

4.   如果给自动增长列添加一个自动增长的值,那么赋值为null

5.   如果给带有默认值的字段添加一个默认值,那么赋值为default

修改记录:

update 表名 set 字段名=[where 条件]

删除记录:

delete from 表名[where 条件]

 查看记录:

select 字段1,字段2 from 表名

如果需要查看所有字段的值,那么可以直接用*代替

字符集编码:

show character set 查看数据库中所有的字符集

字符集编码在数据存储时或者数据传输时需要使用。

数据存储时使用字符集编码:

创建数据库和创建表格时,可以对数据库,表格,字段进行字符集设置。

   数据传输时使用字符集编码:

cmd客户端的字符集编码是gbk,并且不能够修改。

使用 show variables like ‘character_set_%’可以查看字符集编码设置的相关信息,重点关注clientresults

client 服务器端接收客户端数据时的字符集编码

使用set character_set_client=gbk可以将其修改为gbk,这样默认值为中文或者插入中文数据不会报错。

results 服务器返回给客户端数据的字符集编码

使用 set character_set_results=gbk 可以将其修改为gbk,这样返回中文数据时,不会出现一个乱码的问题。

set names gbk ,可以同时修改client,results,connection三者的字符集编码。

 

set是属于会话模式,每当退出mysql时,重新登陆时会自动还原,所以每次登陆数据库时,第一时间输入一个set names gbk

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值