数据库简介

概念  什么是数据库?简单来说,数据库就是存储数据的“仓库”, 但是,光有数据还不行,还要管理数据的工具,我们称之为数据库管理系统!

数据库系统 = 数据库管理系统 + 数据库 + 数据库管理员

DataBase System (DBS)= DataBase Management System (DBMS) + DataBase(DB) + DataBase Administrator(DBA)

数据库:  对大量的信息进行管理的高效的解决方案,按照数据结构来组织、存储和管理数据的载体!

关系型数据库  MySQL

关系型”的含义

所谓的关系型数据库,就是基于关系模型的数据库,一个关系模型就对应着一张二维表,而一张二维表也往往对应着现实世界中的一个实体集!

什么是实体与实体集?

实体是观念世界中描述客观事物的一个概念,可以是具体的事物,比如一个人,一本书,一部手机等,也可以是抽象的事物,比如一种感受、一个订单等!

同一类实体的所有的实例就构成了一个实体集,简单来说,实体集就是实体的集合,而每个实体都是该实体集的一个实例!实体与实体集之间的关系有点类似于数学上的元素与集合之间的关系!

非关系型数据库  MongoDB

特点:

1, 使用键值对保存和表示数据库(有点类似于数组中键值对)

2, 保存数据的介质是内存,所以数据库运行的效率比关系型数据库要高很多(关系型数据库保存数据库的介质是磁盘)

3, 运行的时候,会进行数据同步(将内存中的数据写入到磁盘)

因为运行在内存,所以安全性不如关系型数据库

SQL语言  是一种关系型数据库操作语言,也是一种数据库编程语言

概念  SQL:Structured Query Language,结构化查询语言!

DDL  Data Definition Language,数据定义语言!  主要是用来定义和维护数据库的各种操作对象,比如库、表、索引、视图  主要的操作关键字有:create、drop、alter等

DML  Data Manipulation Language,数据操作语言其中,“查询”部分,有可以叫作DQL

DQL  Data Query Language,数据查询语言!  关键字:select

DCL  Data Control Language,数据控制语言  主要是对数据库进行统一管理和统一控制,比如并发控制,存取控制,安全控制等;具体的有数据库的权限管理(创建用户,给用户分配权限,回收权限等),数据的备份与恢复等!

MySQL的软件架构

MySQL是基于C/S架构的,也就是说,要想访问MySQL服务器,必须先有MySQL客户端!

MySQL安装完之后,分成了两个部分:一个是服务器端软件,还有一个客户端软件!

所以,要想正常的使用MySQL服务器,要完成两个步骤:

1, 开始MySQL服务器

2,客户端连接服务器

开启MySQL服务器

有以下的几种方式:

1, 通过windows管理的方式进行开启

window+R打开命令行,输入services.msc,打开本地服务,找到MySQL打开

2, 通过dos命令行开启

window+R打开命令行,输入cmd , 输入net start mysql打开,输入net stop mysql停止

3,直接找到安装目录下的bin目录下的mysqld.exe来打开

客户端连接服务器

MySQL的注释符

单行注释:

#

-- 注释内容 ,注意,其中—与注释内容之间有一个空格!

多行注释:

/*  注释内容  */

数据库操作

创建数据库(增)  关键字:create  语法形式:create database 数据库名[数据库选项]  数据库选项主要有两个:一个是字符集,一个是校对规则,不写就表示用默认!

查看数据库(查)  关键字:show  语法形式:show databases;查看所有的数据库。 show create database 数据库名;  查看指定的数据库

删除数据库(删)  关键字:drop  语法形式:drop database 数据库名;

注意:删除数据库一定要慎重!因为整个数据库文件(包括里面所有的数据表以及表中所有的数据)都会被删除,过程默认不可逆!

修改数据库(改)  关键字:alter  语法形式:alter database 数据库名 新的库选项;(alter database 数据库名 default charset 字符集;

注意:数据库的名称不可以修改!只能修改库选项信息!

数据表操作

首先,所有的数据表都应该属于某一个具体的数据库!所以,有关数据表的任何操作都需要先指定其所属的数据库!

1, 显示的指定数据库  就是在任何有关数据表的操作的时候,都要在表的前面加上库名,形式为:库名.表名

2, 指定默认的数据库  也是最常用的方法,就是事先进入到某个数据库的操作环境,语法为:use 库名;

创建数据表(增)

语法:表选项信息不写及默认

create table 表名(
字段1 字段1类型,
字段2 字段2类型,
字段3 字段3类型,
字段n 字段n类型
)表选项信息;

注意:

表不能脱离字段存在!字段也不能脱离表存在,所以,所有的表的操作都是表和字段同时操作!

查看数据表(查)  关键字:show

查看所有的数据表:show tables;

模糊查询:关键字:like  通配符:_可以代表任意的单个字符,%可以代表任意的字符!

比如查看php开头的:show tables like 'php%';

查看具体某个数据表:show create table 数据表名;

查看表的结构:desc 数据表名;

删除数据表(删)   关键字:drop    语法:drop table 表名;

-- 比较完整的语法
drop table if exists 表名;
-- 其他完整的语法
create database if not exists 库名;
drop database if exists 库名;

create table if not exists 表名(字段列表);
drop table if exists 表名;

修改数据表(改)  语法:alter table 旧表名 rename to 新表名;

数据表中有哪些是可以修改的?  表名、表选项、列定义(又有很多,比如增加一列,删除一列,修改列类型等)

注意:虽然数据表中可以修改的地方有很多,命令也有很多,但是都可以分成上级命令+下级命令来记忆,其中的上级命令都是一样的:

alter  table  表名  而各个下级命令的关键字又不一样!

 修改表名  上级命令:alter table 表名  下级命令关键字:rename

修改列定义  有可以分成很多操作,比如:增加字段,删除字段,重命名字段,修改字段类型,修改字段的排序等

其中,上级命令还是:alter table  表名下级命令的关键字:增加:add  删除:drop  重命名:change  修改:modify

修改表选项    语法:alter table 表名 default charset 字符集;

数据操作

插入数据(增)  关键字:insert  语法形式:insert into 表名(字段列表) values(值列表);

注意:1, 这里的字段列表可以是全部字段,也可以是部分字段(也就是只插入部分数据,其他的默认为null,表示什么都没有)

2, 字段列表与值列表应该是一一对应的,字段列表中的顺序可以和表中的顺序不一样,但是必须与值列表后面的顺序一样就行了!

3,当为全部的字段插入数据的时候,字段列表可以省略的,此时的值列表就必须按数据表中的顺序一一对应!

4,也可以一次插入很多条数据,中间以逗号隔开

查询数据(查)  关键字:select  语法:select *|字段列表 from 表名[查询条件];

注意:

1,当查询所有的字段的时候,可以用*代替

2,查询条件可以省略,默认就是查询所有的记录,相当于where 1;

删除数据(删)  关键字:delete  语法:delete from 表名[删除条件];

注意:这里的删除条件往往不会省略,如果省略掉,默认的就是删除了表中的全部的记录!

修改数据(改)  关键字:update  语法:update 表名 set 字段1=新值1,字段2=新值2……[修改条件];

注意:和删除数据一样,这里的修改条件也往往是必须的!

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

  1. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  2. MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it

    MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it 博客分类: 数据库 MySQLJava ...

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

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

  4. mysql 导出表结构和表数据 mysqldump用法

    mysql 导出表结构和表数据 mysqldump用法 命令行下具体用法如下:   mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据mysq ...

  5. SQL跨数据库复制表数据

    SQL跨数据库复制表数据   不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库.. ...

  6. MySQL用sql复制表数据到新表的方法

    用sqlyog无法直接复制出一个不同表名的表来,只能copy到其他库上同名的表. 在MySQL数据库中,应该如何用sql将表数据复制到新表中呢? 本人通过试验测试成功了,而且相当简单易懂,速度也非常快 ...

  7. MySQL创建数据库并插入数据

    启动MySql 启动服务:sudo service mysql start 登陆:mysql -u root 新建数据库 CREATE DATABASE <数据库名>; 在大多数SQL系统 ...

  8. MySQL 中国省市区SQL表数据

    MySQL 中国省市区SQL表数据   1.查省SELECT * FROM china WHERE china.Pid=02.查市SELECT * FROM chinaWHERE china.Pid= ...

  9. mysql left join 右表数据不唯一的情况解决方法

    mysql left join 右表数据不唯一的情况解决方法 <pre>member 表id username1 fdipzone2 terry member_login_log 表id ...

  10. MySQL处理数据库和表的常用命令

    MySQL处理数据库和表的常用命令 [导读] 学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一 ...

随机推荐

  1. Install Debian note

    environment: already install xp,win7 and win8PE, left 87G space to install Debian, this space not fo ...

  2. 基于android平台的出题软件---- 每日30题

    本app共编写了3个activity,1.Mainactivity作为主界面.2.surface,用来显示随机出的题.3.showresult,用来打印所有做过的题(含结果),一个类function用 ...

  3. JSBinding+Bridge.Net:框架代码与逻辑代码的关系

    在JSB+Bridge工程中你可以同时维护Cs版本和Js版本的游戏. 框架代码:简称framework,表示那些不进行热更的代码.注意,这包括你自己写的代码,也包括引用的Dll,比如UnityEngi ...

  4. 【转载】 Java 7之基础 - 强引用、弱引用、软引用、虚引用

    原文地址:http://blog.csdn.net/mazhimazh/article/details/19752475 1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一 ...

  5. PHP递归重新排序无限级分类数组

    public static function Menus($id,$spac=0){ /* $data = array( 1 => array('id' => 1,'name' => ...

  6. 自己动手制作CSharp编译器

    在你喜欢的位置(如F盘根目录)新建一个文件夹,并命名为“CSharp开发环境”.找到或下载C#编译器组件(csc.exe和cscui.exe),并放在先前建立的文件夹中.该组件的一般位置在C盘的.NE ...

  7. Verilog HDL那些事_建模篇笔记(实验八:键盘解码)

    1.PS2接口与协议时序图 对于PS2的接口来说,需要额外关注的是PIN5与PIN1,一个是时钟,一个是数据.PS2协议对数据的移位是“CLOCK下降沿”有效,其CLOCK的频率通常在10KHz左右. ...

  8. asp.net教程:GridView导出到Excel或Word文件

    asp.net教程:GridView导出到Excel或Word文件</ br> 在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户) ...

  9. LeetCode "468. Validate IP Address"

    it is all about corner-cases... class Solution(object): def validIP4(self, IP): def validNum4(s): tr ...

  10. ionic 启用sass

    转入ionic项目目录,命令行下执行:ionic setup sass 提示编译器未装: You have specified Ionic CI to set up sass.However, you ...