數據庫
"""
一、什麼是數據庫:管理數據的系統 - 安裝某種管理數據的系統 - 管理的對象本質是文件
二、存儲數據的位置:內存、硬盤
三、什麼是系統:運行在硬件基礎上,管理其餘軟件
"""
# 數據庫的組成
"""
庫:存放多張表 - 文件夾
表:包含多條相同結構的記錄 - 文件
記錄:包含多個key-value鍵值對的一條數據 - 二進制數據
字段:描述信息 - 信息自己 == key-value - 二進制數據
stu
id name age gender
1 Bob 18 男
2 Tom 17 女
...
teacher
...
"""
數據庫的分類
# 1)關係與非關係
# 關係:數據庫中表與表之間有聯繫 - mysql
# 非關係:沒有表概念 - redis、mongodb(介於關係與非關係)
# 2)內存與硬盤
# 硬盤:數據能夠永久存儲 - mysql、mongodb
# 內存:數據的存取效率極高 - redis、memcache
# 3)sql與nosql
# sql:數據庫操做經過sql語句
# nosql:數據庫操做就是key-value形式(value就是一條記錄)
# stu - {'name': 'Bob', 'age': 18}
# stus - [{'name': 'Bob', 'age': 18}, {'name': 'Tom', 'age': 18}]
# name - 'Jerry'
卸載
"""
前提)啓動終端,輸入 mysql,若是不是提示 不是內部或外部命令,表明已安裝數據庫
1)直接連入
i 搜索:服務,檢索mysql服務,有
中止服務,並移除服務 - 啓動管理員終端:mysqld --remove
ii 搜索:服務,檢索mysql服務,無 (mysql使用命令啓動)
中止服務,啓動管理員終端
tasklist | findstr mysql
taskkill /pid 進程pid /f
2)鏈接超時
搜索:服務,檢索mysql服務,移除服務便可
3)移除環境變量
總結:若是能連入,先中止服務 | 若是添加了服務,就移除服務 | 取消環境變量配置
"""
安裝
"""
一、解壓免安裝版本(5.6 - 沒有初始密碼)
二、配置環境變量:數據庫絕對路徑下的bin
三、配置服務:
啓動管理員終端:mysqld --install [nmysql]
"""
鏈接數據庫
1)遊客登錄(不必定能登入,登入了也啥都不能幹)
>: mysql
2)帳號密碼登陸
>: mysql -u root -p
再輸入密碼,沒有任何提示,沒有密碼直接回車
3)鏈接指定服務器的mysql
>: mysql -h ip地址 -P 端口號 -u 帳號 -p
回車後敲入密碼
eg:
>: mysql -hlocalhost -P3306 -uroot -p
4)退出數據庫
>: quit
>: exit
用戶信息查看
1)查看當前登陸的用戶
mysql>: select user();
2)root權限下能夠查看全部用戶信息
mysql>: select * from mysql.user;
mysql>: select * from mysql.user \G
mysql>: select user,password,host from mysql.user;
3)root登陸下,刪除遊客(操做後要重啓mysql服務)
mysql>: delete from mysql.user where user='';
4)root登陸下,修改密碼(操做後要重啓mysql服務)
mysql>: update mysql.user set password=password('12345678') where host='localhost';
5)沒有登陸
>: mysqladmin -u用戶名 -p舊密碼 -h域名 password "新密碼"
eg>: mysqladmin -uroot -p12345678 -hlocalhost password "root"
6)root登陸下,建立用戶
mysql>:grant 權限們 on 數據庫名.表名 to 用戶名@主機名 identified by '密碼';
數據庫的基本操做
1)查看已有數據庫
mysql>:show databases;
2)選擇某個數據庫
mysql>:use 數據庫名
3)查看當前所在數據庫
mysql>:select database();
4)建立數據庫
mysql>:create database 數據庫名 [charset=編碼格式];
eg>: create database owen;
eg>: create database zero charset=utf8;
eg>: create database tank;
5)查看建立數據庫的詳細內容
mysql>:show create database 數據庫名;
eg>: show create database owen;
6)刪除數據庫
mysql>: drop database 數據庫名;
eg>: drop database tank;
表的基本操做
前提:先選取要操做的數據庫
1)查看已有表
mysql>:show tables;
2)建立表
mysql>:create table 表名(字段們);
eg>: create table student(name varchar(16), age int);
eg>: create table teacher(name varchar(16), age int);
3)查看建立表的sql
mysql>:show create table 表名;
eg>: show create table student;
4)查看建立表的結構
mysql>:desc 表名;
5)刪除表
mysql>: drop table 表名;
eg>: drop table teacher;
記錄的基本操做
1)查看某個數據庫中的某個表的全部記錄,若是在對應數據庫中,能夠直接查找表
mysql>: select * from [數據庫名.]表名;
注:*表明查詢全部字段
2)給表的全部字段插入數據
mysql>: insert [into] [數據庫名.]表名 values (值1,...,值n);
eg:若是給有name和age兩個字段的student表插入數據
1條>:insert into student values ('Bob', 18);
多條>:insert into student values ('張三', 18), ('李四', 20);
指定庫>:insert owen.student values ('張三', 18), ('李四', 20);
3)根據條件修改指定內容
mysql>: update [數據庫名.]表名 set 字段1=新值1, 字段n=新值n where 字段=舊值;
eg:> update student set name='王五', age='100' where name='張三';
注:i) 能夠只修改部分字段 ii) 沒有條件下,全部記錄都會被更新
eg:> update student set name='呵呵';
4)根據條件刪除記錄
mysql>: delete from [數據庫名.]表名 where 條件;
eg:> delete from student where age<30;