如今社會代碼橫行的年代,到處都是代碼,看到代碼自己一臉懵逼,該怎末辦,從頭再學,還是保持原態。社會已經被代碼侵佔,沒有代碼,社會將不知何去何從。
比如:
mySQL:是用於管理文件的一個軟件
- 服務端軟件
- socket服務端
- 本地文件操作
- 解析指令【SQL語句】
- 客戶端軟件(各種各樣)
- socket客戶端
- 發送指令
- 解析指令【SQL語句】
PS:
- DBMS:數據庫管理系統
- SQL語句
需要掌握的技能:
- 安裝 服務端和客戶端
- 連接
- 學習SQL語句規則;指示服務端做任意操作
其他類似軟件:
關係型數據庫:sqllite,db2,oracle,access,sql server MySQL
非關係型數據庫:MongoDB,redis
MySQL安裝
Windows:
可執行文件安裝:
while True:
下一步
壓縮包
放置任意目錄
初始化
服務端:E:\somewhere\mysql-5.7.16-winx64\bin\mysqld --initialize-insecure
# 默認用戶名 root 密碼:空
啓動服務端:
E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysqld
客戶端連接:
E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysql -u root -p
發送指令:
show databases;#查看數據庫
create database db1;創建數據庫
環境變量的配置:
E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin
mysqld 添加到系統環境變量PATH
windows服務:(製作成爲Windows服務,可開機自動運行)
E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --install
net start MySQL
E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --remove
net start MySQL
net stop MySQL
關於連接數據庫
連接:
默認:用戶root
show databases;
use 數據庫名稱; #使用數據庫
show tables; #查看數據表
select * from 表名; #查詢
select name,age,id from 表名;
mysql數據庫user表 #系統自帶(存放mysql用戶賬號信息)
use mysql;
select user,host from user;
創建用戶:
create user 'alex'@'192.168.1.1' identified by '123123';
create user 'alex'@'192.168.1.%' identified by '123123';
create user 'alex'@'%' identified by '123123';
授權:
權限 人
grant select,insert,update on db1.t1 to 'alex'@'%';
grant all privileges on db1.t1 to 'alex'@'%';
revoke all privileges on db1.t1 from 'alex'@'%';
學習SQL語句規則
操作文件夾
create database db2;
create database db2 default charset utf8; *****
show databases;
drop database db2;
操作文件
show tables;
create table t1(id int,name char(10)) default charset=utf8;
create table t1(id int,name char(10))engine=innodb default charset=utf8;
create table t3(id int auto_increment,name char(10))engine=innodb default charset=utf8; *****
create table t1(
列名 類型 null,
列名 類型 not null,
列名 類型 not null auto_increment primary key,
id int,
name char(10)
)engine=innodb default charset=utf8;
# innodb 支持事務,原子性操作(錯誤回滾)
# myisam myisam
auto_increment 表示:自增
primary key: 表示 約束(不能重複且不能爲空); 加速查找
not null: 是否爲空
數據類型:
數字:(注意區分有無符號,unsigned,signed)
tinyint
int
bigint
FLOAT
0.00000100000123000123001230123
DOUBLE
0.00000000000000000000100000123000123001230123
0.00000100000123000000000000000
decimal (精確小數表示,底層用字符串實現,推薦使用)
0.1
字符串:
char(10) 速度快()
varchar(10) 節省空間
PS: 創建數據表定長列往前放
text類型:最大字符65535
上傳文件:
文件存硬盤
db存路徑
時間類型
DATETIME
enum
set
create table t1(
id int signed not null auto_increment primary key,
num decimal(10,5),
name char(10)
)engine=innodb default charset=utf8;
清空表:
delete from t1; #自動列信息保留
truncate table t1; #自動列信息清除
刪除表:
drop table t1;
操作文件中內容
插入數據:
insert into t1(id,name) values(1,'alex');
刪除:
delete from t1 where id<6
修改:
update t1 set age=18;
update t1 set age=18 where age=17;
查看數據:
select * from t1;
外鍵:
create table userinfo(
uid bigint auto_increment primary key,
name varchar(32),
department_id int,
constraint fk_user_depar foreign key (department_id) references department(id),
)engine=innodb default charset=utf8;
create table department(
id bigint auto_increment primary key,
title char(15)
)engine=innodb default charset=utf8;