手记

创建数据库 表(基本操作)

1.数据库 (mysql redis mongodb) 我们要学的

2.DBMS (data base management system) 数据库管理系统

mysql:

GRANT ALL PRIVILEGES ON . TO 'root'@'ip地址' IDENTIFIED BY '密码' WITH GRANT OPTION;

远程操控

quit 退出数据库

mysql -h ip地址 -u root

default_storage_engine 默认存储引擎

memor 内存 (存储引擎)

mysql -h root -u 进入

创建数据库:

create schema 数据库名;

create database 数据库名;(数据库创建,没声明字符集 默认为latin1)

create database 数据库名 charset="字符集";(创建数据库并设置字符集)

数据库不能重名 如果重名会报错:create database 数据库名 if not exists charset="字符集";(如果没有这个数据库,就创建 ,如果有不报错)

显示

show databases;显示所有的数据库。

默认数据库:   mysql - 用户权限相关数据

test - 用于用户测试数据

information_schema - MySQL本身架构相关数据

performance_schema - 主要用于存储数据库服务性能参数

use 数据库名;选择数据库。(database changed 表示成功选择了数据库)

select database();查看当前所在数据库

查看当前数据库编码格式 。 show variables like "character_set_database";

删除

删除数据库 drop database 数据库名;

当我们使用上面的命令删除数据库,如果指定的数据库不存在,将产生如图所示的异常信息。

为了解决这一问题,可以在DROP DATABASE语句中使用IF EXISTS从句来保证只有当数据库存在时才执行删除数据库的操作。

drop database if exists 数据库名称;

修改数据库的语句的语法格式如下:

ALTER {DATABASE | SCHEMA} [数据库名] [DEFAULT] CHARACTER SET [=] 字符集 | [DEFAULT] COLLATER [=] 较对规则名称

数据库中储存引擎和数据类型

show engines;查看mysql中支持的全部存储引擎。

SHOW VARIABLES LIKE 'default_storage_engine'; 查询默认的存储引擎。

mysql 中默认的存储引擎是 innodb

InnoDB存储引擎:用于事务处理应用程序,具有众多特性,包括ACID。事务支持,支持外键。同时支持崩溃修复能力和并发控制。 ACID:

  • 原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

  • 一致性(Consistency):一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。

  • 隔离性(Isolation):隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统

  • 持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

mysql 的常用数据类型

数值型

[图片上传失败...(image-d634fd-1533656361182)]

  • 浮点型

[图片上传失败...(image-64e151-1533656361182)]

  • 日期/时间

  • 字符串(字符)类型

[图片上传失败...(image-ce172-1533656361182)]

char(字节) 定长字符串 (如果数据小于 自己定的字节长度 自动补全到自己定的字节长度)

varchar(字节)变长字符串(自己定的字节为最大字节数,有多少字节写入多少字节)

创建表

创建表时 要选择 数据库。

使用CREATE TABLE 语句 新表的的名字,在关键字CREATE TABLE 之后; 表列的名字和定义,用逗号分隔;

create table 表名(定义1,定义2);

查看表 show tablse;

查看表详细信息 show create table 表名;

[图片上传失败...(image-a5436a-1533656361182)]

查看表结构 desc 数据表名;

[图片上传失败...(image-444484-1533656361182)]

查看某一列的信息 desc 数据表名 列名;

[图片上传失败...(image-3c98ba-1533656361182)]

主键 primary key(唯一标识)

  • 任意两行都不具有相同的主键值;

  • 每个行都必须具有一个主键值(主键列不允许NULL值)

  • 不更新主键列中的值;

  • 不重用主键列的值;

  • 不在主键列中使用可能会更改的值。(例如,如果使用一个 名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)

使用AUTO_INCREMENT 自增(auto_increment)

设置默认值(DEFAULT)(default)

更新表(ALTER TABLE) 改变表

添加字段:alter table 表名 add 要添加的列名 数字格式 默认值(添加一列)

alter table 表名 add(要添加的第一列名 数字格式 默认值,要添加的第二列名 数字格式 默认值);添加多列字段

[图片上传失败...(image-78af78-1533656361181)]

修改字段名(列) alter table 表名 change 字段名 新字段名 数据类型

[图片上传失败...(image-3e1cc1-1533656361181)]

删除字段名(列):

在MySQL的ALTER TABLE中,使用DROP col_name子句可以删除指定字段。下面将通过一个具体实例演示如何删除字段。

alter table drop 列名:删除指定的字段

修改表名:

alter table 老的表名 rename as 新的表名;

rename table 数据表名1 to 数据表名2;

删除表:

drop table 表名;

drop table if exists 表名;

复制表:

create table if not exists 数据表名 like 源数据表名;



作者:试翼腾渊
链接:https://www.jianshu.com/p/11bacda45e4b


0人推荐
随时随地看视频
慕课网APP