初識數據庫
什麼是DB
DataBase:數據庫,數據庫實際上就是一個文件集合,本質就是一個文件系統,數據按照特定的格式存儲到文件中,使用sql語言對數據進行增刪改查操作.
爲什麼不用IO流存儲數據
IO流文件存儲有一下弊端
1. 效率低(開發效率低,執行效率也低)
2. 數據的增刪改查非常麻煩
3. 只能保存小量數據
4. 只能存儲文本數據
什麼是DBMS
DataBaseManagementSystem:數據庫管理系統,管理數據庫文件的軟件
- 指一種操作和管理數據庫的大型軟件,用於建立,使用和維護數據庫,對數據進行統一的管理和控制,用戶通過DBMS訪問數據庫中的數據
常見:mysql oracle db2 sqlserver sqlite …
開始學習MySQL
連接數據庫
- 首先要啓動數據庫,選擇手動,可以使用命令查看服務是否啓動:
net start mysql;
- 打開終端或命令行 在終端中輸入以下命令:(進入MySQL數據庫,後面沒有分號)
mysql -uroot -p然後敲回車(輸入密碼),然後再敲回車
- 退出指令: exit;
什麼sql
Stuctured Query Language: 結構化查詢語言,使用sql語言和數據庫服務器進行交互,通過sql告訴數據庫服務器對數據進行什麼操作.
sql規範
1. 以;(分號)結尾
2. 關鍵字之間有空格,通常只有一個,但多個也可以
3. 可以存在換行
4. 數據庫名稱和表名稱區分大小寫
數據庫相關的SQL
1.查看數據庫
show databases;
2.創建數據庫
-格式: create database 數據庫名
create database mydb1;
-指定字符集: create database mydb2 character set gbk;
3.查看指定的數據庫
show create database mydb2;
4.刪除數據庫
drop database mydb1;
5.使用數據庫
use db1;
與表相關的SQL
注意:在創建表之前先選擇所要使用的數據庫。創建表sql語句的執行過程: 在終端中寫完sql語句後敲回車終端會把sql通過網絡傳輸到DBMS(mysql),DBMS對sql語句進行解析,然後對數據庫中的數據進行操作
1. 創建表
-格式: create table 表名(字段1名 字段1類型, 字段2名 字段2類型,.....);
create table stu(id int,name varchar(10),age int, chinese int,
math int,english int);
練習:創建英雄表hero 字段(id name type sal)
create table hero(id int,name varchar(10),type varchar(10),sal int);
2. 查看所有表
show tables;
3. 查看指定表詳情 和 表的字段信息
-格式:show create table 表名;
-格式:desc 表名;
4. 創建表指定引擎和字符集
create table t1(id int,name varchar(10)) engine=myisam charset=gbk;
5. 刪除表
drop table t1;
表的引擎
1. innodb:支持數據庫的高級操作,包括:事務 外鍵等
2. myisam:僅支持數據的增刪改查操作
表的修改
對db1數據庫中的person表進行修改
use db1;
create table person(id int,name varchar(10));
1. 修改表的名稱
-格式: rename table 原名 to 新名;
rename table person to t_person;
2. 修改表的引擎和字符集
-格式: alter table 表名 engine=myisam charset=gbk;
alter table t_person engine=myisam charset=gbk;
show create table t_person;
3. 添加表的字段
-最後面格式: alter table 表名 add 字段名 字段類型;
alter table t_person add age int;
desc t_person;
-最前面格式: alter table 表名 add 字段名 字段類型 first;
alter table t_person add chinese int first;
-某個字段的後面格式: alter table 表名 add 字段名 字段類型 after 字段名;
alter table t_person add math int after id;
4. 刪除字段
-格式:alter table 表名 drop 字段名;
alter table t_person drop chinese;
5. 修改字段名稱和類型
-格式:alter table 表名 change 原字段名 新字段名 字段類型
alter table t_person change age myage int;
6. 修改字段的類型和位置
-格式:alter table 表名 modify 字段名 字段類型 first/after xxx;
alter table t_person modify myage int after id;
與數據相關的SQL
對錶t_stu操作
create table t_stu(id int,name varchar(10),age int);
1. 插入數據---insert into 表名 values
-全表插入:要求插入的數據的數量和順序要和表字段的數量順序一致
格式:insert into 表名 values(值1,值2,值3....);
insert into t_stu values(1,'小曾',20);
-指定字段插入
格式:insert into 表名 (字段1,字段2...) values(值1,值2...);
insert into t_stu (id,name) values(2,'小王');
-批量插入:
insert into t_stu values(3,'悟空',23),(4,'八戒',20),(5,'沙僧',18);
insert into t_stu (id,name) values(6,'劉備'),(7,'關羽'),(8,'貂蟬');
2. 查詢數據
select * from t_stu;
select name,age from t_stu;
3. 刪除數據
delete from t_stu where name='八戒';
delete from t_stu where age is null;
4. 修改數據
update t_stu set name='張三' where id=1;
update t_stu set name='捲簾大將',age=200 where id=5;
windows電腦出現命令行中無法插入中文數據的解決方案
在建立數據庫和表的時候先設置編碼格式
小結
##數據庫相關
create database db1 character set utf8;
show databases;
show create database db1;
drop database db1;
use db1;
##表相關
create table t1 (id int,name varchar(10));
show tables;
show create table t1;
desc t1;
drop table t1;
rename table t1 to t2;
alter table t1 engine=myisam charset=gbk;
alter table t1 add age int first/after xxx;
alter table t1 drop age;
alter table t1 change age myage int;
alter table t1 modify myage int first/after xxx;
##數據相關
insert into t1 (id,name,age) values(a,b,c),(a2,b2,c2);
select id,name from t1;
update t1 set a=1,b=2 where id=1;
delete from t1 where id=1;