韩忠康 5天玩转mysql_玩转MySQL数据库5天就够了(2)

一、MySQL概述

1、MySQL体系结构图

2、与数据库相关的几个名词数据库:database

数据表:table

字段:field(列信息)

记录:record(行信息)注:1)一个MySQL数据库实例,可以同时创建多个database数据库

​ 2)一个database数据库可以同时拥有多个table数据表

​ 3)每个表都有自己的表头信息,如ID、Name、Gender、Addtime,称为field字段

​ 4)每个表可以拥有多个记录,如Tom、King、Kylie、Jennie等个人信息

通过以上信息,我们可以得出,数据记录是如何保存和存储在数据库里的,即:

数据(记录record) —> 数据表(table) —> 数据库(database)

那么由此可知,想要存放一条记录,那么必须得先有==数据库—>数据表—>数据记录==

二、MySQL语句

1、什么是SQL语句

SQL 是 Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言,由 IBM 在 20 世纪 70 年代开发出来,作为 IBM 关系数据库原型 System R 的原型关 系语言,实现了关系数据库中的信息检索。

20 世纪 80 年代初,美国国家标准局(ANSI)开始着手制定 SQL 标准,最早的 ANSI 标准于 1986 年完成,就被叫作 SQL-86。标准的出台使 SQL 作为标准关系数据库语言的地位得到了 加强。SQL 标准目前已几经修改更趋完善。

正是由于 SQL 语言的标准化,所以大多数关系型数据库系统都支持 SQL 语言,它已经发展 成为多种平台进行交互操作的底层会话语言。

2. SQL语句的分类DDL(Data Definition Languages)语句:

数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter、rename、truncate。DML(Data Manipulation Language)语句:

==数据操纵语句==,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、update等。DCL(Data Control Language)语句:

数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。DQL(Data Query Language)语句:

数据查询语句,用于从一个或多个表中检索信息。主要的语句关键字包括 select

3. MySQL中如何求帮助亘古不变的官档man文档

man文档可以对mysql的一些基本工具及后台命令求帮助,比如:

[root@db01 ~]# man mysql

[root@db01 ~]# man mysql_install_db

[root@db01 ~]# man mysqldump

[root@db01 ~]# man mysqldMySQL的命令行求帮助

mysql> help;

mysql> ?

mysql> help create table;

根据内容进行查找帮助

mysql> ? contents

Account Management

Administration

Data Definition

Data Manipulation

Data Types

Functions

Functions and Modifiers for Use with GROUP BY

Geographic Features

Language Structure

Storage Engines

Stored Routines

Table Maintenance

Transactions

Triggers

寻求账户管理的帮助(一级一级的向内部查)

mysql> ? Account Management

mysql> ? CREATE USER

三、数据库操作

1、创建数据库

创建db1库

create database db1;

创建db1库并指定默认字符集

create database db1 default charset gbk;

如果存在不报错(if not exists)

create database if not exists db1 default character setutf8;

说明:不能创建相同名字的数据库!

2、查看数据库

查看所有数据库:

mysql> show databases;

3、更新数据库

所谓的更新数据库,主要是更新数据库的字符集。

更改db1库的默认字符集

alter database db1 default character setgbk;

alter database db2 default charset utf8;

注:数据库名称不能更新,只能删除后在重新创建。

4、删除数据库

删除db1库

drop database db1;

四、数据表操作

1、创建数据表

第一步:选择数据库

选择数据库

mysql> use db1;

第二步:创建数据表

create table 表名 (字段1,字段2,...)

create table 表名 (字段1 数据类型(字符长度),字段2,...)

create table 表名 (字段1 数据类型(字符长度) 约束条件,字段2,...)

案例:创建数据包

create table t1(

id int not null auto_increment primary key,

name varchar(40) not null,

age tinyint unsigned default 0,

mobile char(11),

remark varchar(255)

);

备注:

not null,当前字段插入或更新数据时不能为空

auto_increment,自动增长,插入时设置为null即可

primary key,主键,要求此字段的每个值必须唯一

unsigned,无符号型,说白了就是必须为0或正整数

default,默认值,不写默认就是这个值

2、字段类型(了解)

☆ 整数型

☆ 小数型

① 定点类型(精确值)=> DECIMAL和NUMERIC

DECIMAL和NUMERIC 类型的存储精确的数值数据。使用这些类型时,重要的是要保留精确的精度,例如使用货币数据。在MySQL中, NUMERIC被作为DECIMAL来应用,所以下面的举例DECIMAL同样适用于 NUMERIC 。

price DECIMAL(5,2)

在上面的例子中,薪水字段的类型为decimal,表示精确的数字。其中,5代表精度,2代表刻度。

精度表示数值存储的有效位数,刻度表示小数点后面可存储的位数。

DECIMAL(5,2)能够存储五位数和两位小数的任何值,因此可以存储在price列中的值的范围-999.99是 999.99

特殊注意:

DECIMAL(M)和DECIMAL(M,0)是相等的,存储长度取决于M的值,默认情况下M值为10.刻度为0表示没有小数。

② 浮点类型(近似值)=> FLOAT和DOUBLE

FLOAT和DOUBLE类型代表近似数字数据值。MySQL对于单精度值使用四个字节,对于双精度值使用八个字节。 FLOAT单精度浮点数精确到约7位小数,DOUBLE双精度浮点数精确到大约15位小数 。FLOAT类型会随着数值的增大精度会减小。

FLOAT(M,D),其中,M表示存储的有效位数,D代表小数点后面的位数;即整数位数+小数部分不能超过M值。

colum1 FLOAT(7,4)

上面例子中,如果你插入为999.00009到cloum1列,那么mysql在存储时会四舍五入变为999.0001插入。

③ 对比总结

☆ 字符串类型

① CHAR类型

CHAR类型的字符串为定长.长度范围是0到255之间的任何值.占用定长的存储空间,不足的部分用空格填充;读取时删掉后面的空格。

存储空间:CHAR(M)类型的存储空间和字符集有关系,一个中文在utf8字符集中占用3个bytes、gbk占用2个bytes、数字和字符统一用一个字符表示。

存储机制:在不够M长度时,MySQL在存储数据时,需要填充特殊的空格.

举个栗子:

name CHAR(M),M表示字符数

② VARCHAR类型

VARCHAR是变长存储,仅使用必要的存储空间。

存储空间:VARCHAR(M)类型的存储空间和字符集有关系,一个中文在utf8字符集中占用3个bytes、gbk统一占用2个bytes、数字和字符一个字符表示。

存储机制:VARCHAR(M)字段存储实际是从第二个字节开始存储,然后用1到2个字节表示实际长度,剩下的才是可以存储数据的范围,因此最大可用存储范围是65535-3=65532字节;

第一个字节标识是否为空.(长度小于255字节,使用一个字节来表示长度;大于255字节使用两个字节来表示长度)。

③ TEXT类型

长度超过VARCHAR最大长度的字符,都可以使用TEXT类型进行保存。

☆ 日期时间类型

日期时间类型字段定义主要看需要哪种格式!

3、查看数据表

查看所有表

mysql> show tables;

4、更改数据表

更改表属性(修改字段、修改引擎)

增加一列成为第一列

alter table t1 add id int first;

在age后面增加一列叫sex

alter table t1 add sex enum('男','女','保密') after age;

删除age这个列

alter table t1 drop age;

修改列名和数据类型

alter table t1 change id ID bigint;

修改列的数据类型

alter table t1 modify ID int;

查看数据库有哪些存储引擎

show engines;

修改表的存储引擎

alter table t1 engine MyISAM;

查看修改存储引擎是否成功

show create table t1;

修改表的默认字符集

alter table t1 default charset=utf8;

更改表名称:

移动表到另一个库里并重命名

rename table db01.t1 to db02.t11;

或者

alter table db01.t1 rename db02.t11;

只重命名表名不移动

rename table tt1 to tt2;

或者

alter table tt1 rename tt2;

5、删除数据表

drop table 表名;

五、数据操作

1、添加数据

以下是往表里插入数据的几种不同方法

insert into 表名 set字段1=xx,字段2=xx;

insert into t1 setid=3,name='li';

insert into 表名 values(值1,值2),(值1,值2)

insert into t1 values(1,'zhang'),(2,'wang');

insert into 表名 (指定字段1,指定字段2) values(字段1值,字段2值);

insert into t2 (id,name) values(3,'li');

insert into t1 select* from t2;

insert into t1(name) selectname from t2;

说明:

1.插入的数据来自于另外一张表

2.一定要保证两张表的结构一致(插入表里字段数和后面表查找出来的字段要相匹配)

3.两张表结构完全一致;或者人造让两边字段一致

2、查询数据

查询表里所有记录

select* from t1;

3、更新数据

update 表名 set字段1=新值,字段2=新值,... where条件;

案例:

update t1 setname='harry' whereid=1;

update t1 setname='jack',id=33 whereid=3;

update t1 setid=222,name='wanger' whereid=2;

4、删除数据

删除表里所有的记录

delete from 表名;

delete from t1;

truncate 表名;

根据条件删除

delete from t1 whereid>3;

注意:

truncate不能加where条件删除数据;只能全部删除表里的所有记录。

5、delete与truncate

- delete:删除数据记录

- 数据操作语言(DML)

- 在事务控制里,DML语句要么commit,要么rollback

- 删除大量记录速度慢,只删除数据不回收高水位线

- 可以带条件删除

- truncate:删除所有数据记录

- 数据定义语言(DDL)

- 不在事务控制里,DDL语句执行前会提交前面所有未提交的事务

- 清里大量数据速度快,回收高水位线(high water mark)

- 不能带条件删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值