學習
0.Mysql 介紹 1.是用於管理文件的一個軟件 1.服務端軟件 -socket服務端 -本地文件操做 -解析指令 2.客戶端軟件 -socket客戶端 -發送指令 -解析指令 PS:數據庫管理系統DBMS 2.相似軟件 sqllite,db2,oracle,access,sql,server,Mysql,MongDB,redis 分類:關係型數據庫:sqllite,db2,oracle,access,sql,server,Mysql 非關係型數據庫:MongDB,redis1.Mysql 安裝 windows: 1.下載安裝包 2.防止任意目錄 3.初始化:\bin\mysqld --initialize-insecure 4.啓動服務端 5.客戶端鏈接 \bin\mysqld -u root -p 6.發送指令: 1.show databases 2.create databases db1 7.環境變量的配置 ...\bin 8.windows服務 ...\bin\mysqld --install ...\bin\mysqld --remove 命令:net start mysqld net stop mysqld2.關於鏈接 1.文件夾-文件-數據行 數據庫- 表 - 行 2.鏈接 1.默認用戶:root 2.建立用戶:create user 'username'@'IP' identified by 'password' 3.受權:grant authority on database.tablename to ‘username’@‘IP’ 移除權限:revoke authority from database.tablename to ‘username’@‘IP’ 顯示權限:show grants for 'username’@‘IP’ 3.命令: 1.show databases 2.use db1 3.show tables 4.select * from tablename3.學習MySQL語句規則 1.操做數據庫(文件夾) 1.create database db1 default charset utf8; 2.show databases; 3.drop database db1; 2.操做表(文件) 1.show tables 2.create table t1(id int null,name char(10))engine=innodb default charset=utf8 3.create table t2( id int auto_increment primary key, name char(10) )engine=innodb default charset=utf8 -innodb 支持事務,原子性操做 -myisam 不支持,但處理速度較快 -auto_increment 自增 -primary key 約束(不能重複且不能爲空);加速查找 -not null 不爲空,null 可爲空 -數據類型 int char 數字類型: int;tinyint;bigint(數據長度不一樣) float;double;decimal(float,double 不精準的小數)(decimal 底層採用字符串存儲小數,準確) 字符串類型:char(長度),varchar(長度) (char查找速度快;varchar節省空間) 優化技巧:建立數據表,定長列,放前面 text 更長的字符串 長傳文件:存 時間類型:datetime enum 枚舉 set 4.清空表 delete table t2; key不清空 truncate table t2; 5.刪除表 drop table t1; 3.操做數據(行) 插 insert into t2(id,name) values(1,'alex'); 刪 delete from t2 where id<6 改 updata t2 set name='shuangwai' where name='alex' 查 select * from t2; 4.外鍵 1.create table student( sid int auto_increment primary key, sname varchar(32), gender char(8), class_id int, constraint fk_stu_class foreign key (`class_id`) references class (`cid`) )engine=innodb default charset=utf8; 2.create table teacher( tid int auto_increment primary key, tname varchar(32) )engine=innodb default charset=utf8; 3.create table course( cid int auto_increment primary key, cname varchar(32), teach_id int, constraint fk_cou_teac foreign key (`teach_id`) references teacher (`tid`) )engine=innodb default charset=utf8; 4.create table score( sid int auto_increment primary key, student_id int, course_id int, number int, constraint fk_score_stu foreign key (`student_id`) references student (`sid`), constraint fk_score_cou foreign key (`course_id`) references course (`cid`) )engine=innodb default charset=utf8;