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 源數據表名;