#数据库的基本操作与mysql语句

一.数据库的基本操作

1、InnoDB存储引擎:默认引擎,最常用的。

InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键;InnoDB是默认的

MySQL引擎 InnoDB特点:

支持事务处理,支持外键,支持崩溃修复和并发控制。如果需要对事务的

完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如

果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚

(rollback)。

2、MyISAM存储引擎:(了解)

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓 储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。

MyISAM特点: 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么

选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

3、MEMORY内存型引擎(了解)

MEMORY存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问

MEMORY特点: 所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写

速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所

以,这类数据库只使用在相对较小的数据库表。

4、Archive(归档引擎)

如何选择引擎:如果要提供提交、回滚、并要求实现并发控制,InnoDB是一个好的选择;如果数据表

主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率;如果只是临时存放数据,数据量不

大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎;MySQL中使用该引

擎作为临时表,存放查询的中间结果;如果只有INSERT和SELECT操作,可以选择Archive,Archive支

持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可

以使用Archive。

mysql> show engines;    //查看存储引擎

修改搜索引擎

mysql> ALTER TABLE 表名 ENGINE=引擎;

看mysql当前默认的存储引擎:

mysql> show variables like '%storage_engine%';

查看Mysql服务器上的版本

mysql> select version();

创建时候指定引擎
mysql> create table t1(id int,manager char(10)) engine =innodb;
了解:**

1.什么是外键:外键的主要作用是保持数据的一致性、完整性。

2.什么是索引:索引相当于书中的目录,可以提高数据检索的效率,降低数据库的IO。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的

3.什么是事务:事务是由一步或几步数据库操作这系列操作要么全部执行,要么全部放弃执行。程序和 事务是两个不同的概念。

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性 (Durability)。这四个特性也简称ACID性。

(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一 样。事务是应用中不可再分的最小执行体。(最小了,不可再分了)

(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。(说罢了就是白狗变成了黑狗,不能出现斑点狗!)

(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。(说白 了,就是你做你的,我做我的!)

(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储 器中,通常是保存进物理数据库。(说白了就是一条道跑到黑)

4.什么是行锁定与锁表:可以将一张表锁定和可以单独锁一行的记录。为了防止你在操作的同时也有别人在操作。

二.sql语句

SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言(对记录的操作): 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DCL语句 数据库控制语言(和权限有关): 例如控制用户的访问权限GRANT、REVOKE
DQL语句 数据库查询语言: 查询数据SELECT

程序连接数据库的文件

A. ODBC --------- PHP<.php>
B. JDBC ----------- JAVA <.jsp>

库----相当于一个目录,存放数据的
库里面存放的表, 相当于是文件。
每一行叫做记录,除第一行。
每一列叫一个字段。列上面的第一个叫字段名称。
创建一个库:---->查看库--->进入这个库----->创建表----->查看表:查看表名,表的字段(表结构),表里面的内容(表记录),查看表的状态----->修改表:添加字段,删除字段,修改字段----->修改记录(更新记录),添加记录,删除记录。各种查询,删除表,删除库。

1.创建库 
mysql> create database 库名; 

2.查看数据库 
mysql> show databases; 

3.进入数据库 
mysql> use 库名 

4.查看当前所在的库 
mysql> select database();

创建表

语法: 
create table 表名( 
           字段名1 类型[(宽度) 约束条件], 
           字段名2 类型[(宽度) 约束条件], 
           字段名3 类型[(宽度) 约束条件] 
)[存储引擎 字符集]; 
==在同一张表中,字段名是不能相同 
==宽度和约束条件可选 
==字段名和类型是必须的 
==================================================================================
1.创建表:
创建表 create table t1(id int,name varchar(20),age int); 
                     字段 类型 字段 类型(长度),  字段 类型 
mysql> create table t1(id int,name varchar(50),sex enum('m','f'),age int); 
2.查看有哪些表 
mysql> show tables; 
3.查看表结构: 
mysql> desc t1; 
4.查看表里面的所有记录: 
语法: select 内容 from 表名; 
mysql> select * from t1; 
*:代表所有内容 
5.查看表里面的指定字段: 
语法:select 字段,字段 from 表名; 
mysql> select name,sex from t1; 
6.查看表的状态 
mysql> show table status like '表名'\G   ---每条SQL语句会以分号结尾,想看的清楚一些以 
\G结尾,一条记录一条记录显示。(把表90度向左反转,第一列显示字段,第二列显示记录)使用的\G就不 
用添加分号了 
7.修改表名称 
方式一、语法:rename table 旧表名 to 新表名; 
mysql> rename table t1 to t2; 
Query OK, 0 rows affected (0.00 sec) 
方式二、语法:alter table 旧表名 rename 新表名; 
mysql> alter table t2 rename t3; 
8.使用edit(\e)编辑------了解 
mysql> \e #可以写新的语句,调用的vim编辑器,在里面结尾的时候不加分号,保存退出之后在加“;” 
-> ; 
9.删除表 
mysql> drop table 表名; 
10.删除库 
mysql> drop database 库名;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容