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 的常用数据类型
数值型
浮点型
日期/时间
字符串(字符)类型
char(字节) 定长字符串 (如果数据小于 自己定的字节长度 自动补全到自己定的字节长度)
varchar(字节)变长字符串(自己定的字节为最大字节数,有多少字节写入多少字节)
创建表
创建表时 要选择 数据库。
使用CREATE TABLE 语句 新表的的名字,在关键字CREATE TABLE 之后; 表列的名字和定义,用逗号分隔;
create table 表名(定义1,定义2);
查看表 show tablse;
查看表详细信息 show create table 表名;
查看表结构 desc 数据表名;
查看某一列的信息 desc 数据表名 列名;
主键 primary key(唯一标识)
任意两行都不具有相同的主键值;
每个行都必须具有一个主键值(主键列不允许NULL值)
不更新主键列中的值;
不重用主键列的值;
不在主键列中使用可能会更改的值。(例如,如果使用一个 名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)
使用AUTO_INCREMENT 自增(auto_increment)
设置默认值(DEFAULT)(default)
更新表(ALTER TABLE) 改变表
添加字段:alter table 表名 add 要添加的列名 数字格式 默认值(添加一列)
alter table 表名 add(要添加的第一列名 数字格式 默认值,要添加的第二列名 数字格式 默认值);添加多列字段
修改字段名(列) alter table 表名 change 字段名 新字段名 数据类型
删除字段名(列):
在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 源数据表名;