1. 数据库服务器:本质就是一台计算机,该计算机上安装有数据库管理软件的服务端,供客户端访问使用。
  2.  
  3. 1数据库管理系统RDBMS(本质就是一个C/S架构的套接字),关系型数据库管理系统。
  4. 库:(文件夹)-----》数据库
  5. 表:(文件)实际上就是一堆按照一定格式的数据。
  6. 记录:
  7. Name=‘feng
  8. 2数据库管理系统/软件分类:
  9. 关系型:
  10. 有表结构,存取数据前必须先定义表结构,存数据必须按照字段的类型或者约束来,
  11. 典型代表:MySQL oracle db2 SQL server
  12. 非关系型:
  13. 存取数据都是采用keyvalue的形式,
  14. 代表:MongoDBRedis memcache
  15. Mysql:默认本机IPport3306
  16.  
  17. 客户端连接到服务端:Mysql -h 127.0.0.1 -P 3306 -uroot -p
  18. 本机登录可以省略: -h 127.0.0.1 -P 3306

数据库有关概念

有关数据库操作:

一 系统数据库:

  1. information_schema 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
  2. performance_schema MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
  3. mysql 授权库,主要存储系统用户的权限信息
  4. test MySQL数据库系统自动创建的测试数据库

二 创建数据库:

  1. 1 语法(help create database)
  2.  
  3. CREATE DATABASE 数据库名 charset utf8;
  4. 2 数据库命名规则:
  5.  
  6. 可以由字母、数字、下划线、@、#、$
  7. 区分大小写
  8. 唯一性
  9. 不能使用关键字如 create select
  10. 不能单独使用数字
  11. 最长128

三数据库相关操作:

  1. 1 查看数据库
  2. show databases;
  3. show create database db1;
  4. select database();
  5.  
  6. 2 选择数据库
  7. USE 数据库名
  8.  
  9. 3 删除数据库
  10. DROP DATABASE 数据库名;
  11.  
  12. 4 修改数据库
  13. alter database db1 charset utf8;

有关表的操作:

一 存储引擎介绍:

  1. mysql中建立的库===>文件夹
  2.  
  3. 库中建立的表===>文件
  4.  
  5. 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png
  6.  
  7. 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。
  8.  
  9. 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方
  10. 法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和
  11. 操作此表的类型)
  12.  
  13. Oracle SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql
  14. 数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据
  15. 自己的需要编写自己的存储引擎

SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。

mysql常用引擎介绍:

  1. MariaDB [(none)]> show engines\G #查看所有支持的存储引擎
  2. MariaDB [(none)]> show variables like 'storage_engine%'; #查看正在使用的存储引擎

mysql所有引擎介绍:

  1. #InnoDB 存储引擎
  2. 支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。其
  3. 特点是行锁设计、支持外键,并支持类似 Oracle 的非锁定读,即默认读取操作不会产生锁。 MySQL 5.5.8 版本开始是默认的存储引擎。
  4. InnoDB 存储引擎将数据放在一个逻辑的表空间中,这个表空间就像黑盒一样由 InnoDB 存储引擎自身来管理。从 MySQL 4.1(包括 4.1)版本开始,可以将每个 InnoDB 存储引擎的 表单独存放到一个独立的 ibd 文件中。此外,InnoDB 存储引擎支持将裸设备(row disk)用 于建立其表空间。
  5. InnoDB 通过使用多版本并发控制(MVCC)来获得高并发性,并且实现了 SQL 标准 4 种隔离级别,默认为 REPEATABLE 级别,同时使用一种称为 netx-key locking 的策略来 避免幻读(phantom)现象的产生。除此之外,InnoDB 存储引擎还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead) 等高性能和高可用的功能。
  6. 对于表中数据的存储,InnoDB 存储引擎采用了聚集(clustered)的方式,每张表都是按 主键的顺序进行存储的,如果没有显式地在表定义时指定主键,InnoDB 存储引擎会为每一 行生成一个 6 字节的 ROWID,并以此作为主键。
  7. InnoDB 存储引擎是 MySQL 数据库最为常用的一种引擎,FacebookGoogleYahoo 公司的成功应用已经证明了 InnoDB 存储引擎具备高可用性、高性能以及高可扩展性。对其 底层实现的掌握和理解也需要时间和技术的积累。如果想深入了解 InnoDB 存储引擎的工作 原理、实现和应用,可以参考《MySQL 技术内幕:InnoDB 存储引擎》一书。
  8.  
  9. #MyISAM 存储引擎
  10. 不支持事务、表锁设计、支持全文索引,主要面向一些 OLAP 据库应用,在 MySQL 5.5.8 版本之前是默认的存储引擎(除 Windows 版本外)。数据库系统 与文件系统一个很大的不同在于对事务的支持,MyISAM 存储引擎是不支持事务的。究其根 本,这也并不难理解。用户在所有的应用中是否都需要事务呢?在数据仓库中,如果没有 ETL 这些操作,只是简单地通过报表查询还需要事务的支持吗?此外,MyISAM 存储引擎的 另一个与众不同的地方是,它的缓冲池只缓存(cache)索引文件,而不缓存数据文件,这与 大多数的数据库都不相同。
  11.  
  12. #NDB 存储引擎
  13. 2003 年,MySQL AB 公司从 Sony Ericsson 公司收购了 NDB 存储引擎。 NDB 存储引擎是一个集群存储引擎,类似于 Oracle RAC 集群,不过与 Oracle RAC share everything 结构不同的是,其结构是 share nothing 的集群架构,因此能提供更高级别的 高可用性。NDB 存储引擎的特点是数据全部放在内存中(从 5.1 版本开始,可以将非索引数 据放在磁盘上),因此主键查找(primary key lookups)的速度极快,并且能够在线添加 NDB 数据存储节点(data node)以便线性地提高数据库性能。由此可见,NDB 存储引擎是高可用、 高性能、高可扩展性的数据库集群系统,其面向的也是 OLTP 的数据库应用类型。
  14.  
  15. #Memory 存储引擎
  16. 正如其名,Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。它非常适合于存储 OLTP 数据库应用中临时数据的临时表,也可以作为 OLAP 数据库应用中数据仓库的维度表。Memory 存储引擎默认使用哈希 索引,而不是通常熟悉的 B+ 树索引。
  17.  
  18. #Infobright 存储引擎
  19. 第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 OLAP 的数据库应用。其官方网站是 http://www.infobright.org/,上面有不少成功的数据 仓库案例可供分析。
  20.  
  21. #NTSE 存储引擎
  22. 网易公司开发的面向其内部使用的存储引擎。目前的版本不支持事务, 但提供压缩、行级缓存等特性,不久的将来会实现面向内存的事务支持。
  23.  
  24. #BLACKHOLE
  25. 黑洞存储引擎,可以应用于主备复制中的分发主库。
  26.  
  27. MySQL 数据库还有很多其他存储引擎,上述只是列举了最为常用的一些引擎。如果 你喜欢,完全可以编写专属于自己的引擎,这就是开源赋予我们的能力,也是开源的魅 力所在。

mysql引擎使用指南:

  1. 方法1:建表时指定
  1. MariaDB [db1]> create table innodb_t1(id int,name char)engine=innodb;
  2. MariaDB [db1]> create table innodb_t2(id int)engine=innodb;
  3. MariaDB [db1]> show create table innodb_t1;
  4. MariaDB [db1]> show create table innodb_t2;
  1. 方法2:在配置文件中指定默认的存储引擎
  1. /etc/my.cnf
  2. [mysqld]
  3. default-storage-engine=INNODB
  4. innodb_file_per_table=1
  1. 查看
  1. [root@egon db1]# cd /var/lib/mysql/db1/
  2. [root@egon db1]# ls
  3. db.opt innodb_t1.frm innodb_t1.ibd innodb_t2.frm innodb_t2.ibd
  1. 练习
  1. 创建四个表,分别使用innodbmyisammemoryblackhole存储引擎,进行插入数据测试
  2.  
  3. MariaDB [db1]> create table t1(id int)engine=innodb;
  4. MariaDB [db1]> create table t2(id int)engine=myisam;
  5. MariaDB [db1]> create table t3(id int)engine=memory;
  6. MariaDB [db1]> create table t4(id int)engine=blackhole;
  7. MariaDB [db1]> quit
  8. [root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
  9. db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm
  10.  
  11. #memory,在重启mysql或者重启机器后,表内数据清空
  12. #blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

二表操作介绍:

1 表:表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

其中ID name age sex 成为字段。

2 创建表:

  1. #语法:
  2. create table 表名(
  3. 字段名1 类型[(宽度) 约束条件],
  4. 字段名2 类型[(宽度) 约束条件],
  5. 字段名3 类型[(宽度) 约束条件]
  6. );
  7.  
  8. #注意:
  9. 1. 在同一张表中,字段名是不能相同
  10. 2. 宽度和约束条件可选
  11. 3. 字段名和类型是必须的
  1. MariaDB [db1]> insert into t1 values
  2. -> (1,'egon',18,'male'),
  3. -> (2,'alex',81,'female')
  4. -> ;
  5. MariaDB [db1]> select * from t1;
  6. +------+------+------+--------+
  7. | id | name | age | sex |
  8. +------+------+------+--------+
  9. | 1 | egon | 18 | male |
  10. | 2 | alex | 81 | female |
  11. +------+------+------+--------+
  12.  
  13. MariaDB [db1]> insert into t1(id) values
  14. -> (3),
  15. -> (4);
  16. MariaDB [db1]> select * from t1;
  17. +------+------+------+--------+
  18. | id | name | age | sex |
  19. +------+------+------+--------+
  20. | 1 | egon | 18 | male |
  21. | 2 | alex | 81 | female |
  22. | 3 | NULL | NULL | NULL |
  23. | 4 | NULL | NULL | NULL |
  24. +------+------+------+--------+

实际操作

3 表的常用操作:

  1. 语法:
  2. 1. 修改表名
  3. ALTER TABLE 表名
  4. RENAME 新表名;
  5.  
  6. 2. 增加字段
  7. ALTER TABLE 表名
  8. ADD 字段名 数据类型 [完整性约束条件…],
  9. ADD 字段名 数据类型 [完整性约束条件…];
  10. ALTER TABLE 表名
  11. ADD 字段名 数据类型 [完整性约束条件…] FIRST;
  12. ALTER TABLE 表名
  13. ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
  14.  
  15. 3. 删除字段
  16. ALTER TABLE 表名
  17. DROP 字段名;
  18.  
  19. 4. 修改字段
  20. ALTER TABLE 表名
  21. MODIFY 字段名 数据类型 [完整性约束条件…];
  22. ALTER TABLE 表名
  23. CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
  24. ALTER TABLE 表名
  25. CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

有关数据的操作:

1 插入数据:insert

  1. 1. 插入完整数据(顺序插入)
  2. 语法一:
  3. INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
  4.  
  5. 语法二:
  6. INSERT INTO 表名 VALUES (值1,值2,值3…值n);
  7.  
  8. 2. 指定字段插入数据
  9. 语法:
  10. INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);
  11.  
  12. 3. 插入多条记录
  13. 语法:
  14. INSERT INTO 表名 VALUES
  15. (值1,值2,值3…值n),
  16. (值1,值2,值3…值n),
  17. (值1,值2,值3…值n);
  18.  
  19. 4. 插入查询结果
  20. 语法:
  21. INSERT INTO 表名(字段1,字段2,字段3…字段n)
  22. SELECT (字段1,字段2,字段3…字段n) FROM 2
  23. WHERE …;

2 更新数据:update

  1. 语法:
  2. UPDATE 表名 SET
  3. 字段1=值1,
  4. 字段2=值2,
  5. WHERE CONDITION;
  6.  
  7. 示例:
  8. UPDATE mysql.user SET password=password(‘123’)
  9. where user=’root and host=’localhost’;

3 删除数据:delete

  1. 语法:
  2. DELETE FROM 表名
  3. WHERE CONITION;
  4.  
  5. 示例:
  6. DELETE FROM mysql.user
  7. WHERE password=’’;
  8.  
  9. 练习:
  10. 更新MySQL root用户密码为mysql123
  11. 删除除从本地登录的root用户以外的所有用户

数据库服务器:本质就是一台计算机,该计算机上安装有数据库管理软件的服务端,供客户端访问使用。

1数据库管理系统RDBMS(本质就是一个C/S架构的套接字),关系型数据库管理系统。

库:(文件夹)-----》数据库

表:(文件)实际上就是一堆按照一定格式的数据。

记录:

Name=‘feng’

2数据库管理系统/软件分类:

关系型:

有表结构,存取数据前必须先定义表结构,存数据必须按照字段的类型或者约束来,

典型代表:MySQL oracle  db2  SQL server

非关系型:

存取数据都是采用key:value的形式,

代表:MongoDB,Redis  memcache

Mysql:默认本机IP,port:3306

客户端连接到服务端:Mysql -h 127.0.0.1 -P 3306 -uroot -p

本机登录可以省略: -h 127.0.0.1 -P 3306

MySQL库操作,表操作,数据操作。的更多相关文章

  1. mysql 库,表,数据操作

    一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MyS ...

  2. mysql 库、表、数据的增删改

    数据库定义 语法形式 (1)创建数据库 create database [if not exists ] 数据库名 [charset 字符集] [collate 字符排序规则]; if not exi ...

  3. MySQL表的创建和表中数据操作

    这篇文章主要介绍在navicat的命令界面操作mysql.主要涉及建立表结构,和对表中数据的增加删除修改查询等动作.站在一个新手角度的简单mysql表结构和数据操作. ☆ 准备工作 1,保证自己的电脑 ...

  4. {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作

    MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...

  5. MySQL 库、表、记录、相关操作(3)

    MySQL 库.表.记录.相关操作(3) 单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数 ...

  6. day 36 MySQL的库、表的详细操作

    MySQL的库.表的详细操作   MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset u ...

  7. MySQL库和表的操作

    MySQL库和表的操作 库操作 创建库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 可以由字母.数字.下划线.@.#.$ 区分大小写 唯 ...

  8. MySQL的库、表的详细操作

    目录 MySQL的库.表的详细操作 一 库操作 二 表操作 MySQL的库.表的详细操作 本节目录 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset ...

  9. mysql第四篇:数据操作之多表查询

    mysql第四篇:数据操作之多表查询 一.多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment ...

  10. [MySQL数据库之表的详细操作:存储引擎、表介绍、表字段之数据类型]

    [MySQL数据库之表的详细操作:存储引擎.表介绍.表字段之数据类型] 表的详细操作 存储引擎 mysql中建立的库======>文件夹 库中建立的表======>文件 用来存储数据的文件 ...

随机推荐

  1. 访问者模式-Visitor Pattern

    1.主要优点 访问者模式的主要优点如下: (1) 增加新的访问操作很方便.使用访问者模式,增加新的访问操作就意味着增加一个新的具体访问者类,实现简单,无须修改源代码,符合“开闭原则”. (2) 将有关 ...

  2. Scrapy 爬虫日志中出现Forbidden by robots.txt

    爬取汽车之家数据的时候,日志中一直没有任何报错,开始一直不知道什么原因导致的,后来细细阅读了下日志发现日志提示“Forbidden by robots.txt”,Scrapy 设置文件中如果把ROBO ...

  3. Spring Cloud Stream

    Spring Cloud Stream是Spring Cloud的组件之一,是一个为微服务应用构建消息驱动能力的框架. 1.导入引用 <dependency> <groupId> ...

  4. API - .addClass()

    比较简单的一个方法,  jQuery官网中.addClass()有两种参数: 1 .addClass( className )   /* className 为一个或多个(多个时用空格分隔) css ...

  5. Asp.Net Grieview Eval 绑定数据 调用JS事件

    <asp:TemplateField ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp: ...

  6. Tensorflow之基于MNIST手写识别的入门介绍

    Tensorflow是当下AI热潮下,最为受欢迎的开源框架.无论是从Github上的fork数量还是star数量,还是从支持的语音,开发资料,社区活跃度等多方面,他当之为superstar. 在前面介 ...

  7. iphone越狱安装python2.7

    cydia  添加源地址:http://apt.so/whitefur 选择python 进行安装 打开ssh连接后输入python 显示python2.7.3 安装成功

  8. 黄聪:PHP如何实现延迟一定时间后自动刷新当前页面、自动跳转header("refresh:1;url={$url}");

    //1秒后自动跳转 header("refresh:1;url={$url}"); exit; //1秒后自动刷新当前页面header("refresh:1;" ...

  9. PHP 数据运算类型都有哪些?

    四种标量类型:布尔型 boolean $bo=TRUE; $bo=FALSE;整型 integer  $bo=1; $bo=-12;浮点型 float/double  $bo=1.001; $bo=3 ...

  10. 关于java分布式系统开关功能设计(服务升降级)

    首先讲一下开关的由来,例如东京在6月18日做店庆促销活动,在交易下单环节,可能需要调用A.B.C三个接口来完成,但是其实A和B是必须的,C只是附加的功能(例如在下单的时候做一下推荐),可有可无,在平时 ...