一、數據庫簡介
什麼是數據庫?
*數據庫就是一個文件系統,但是訪問的時候需要使用標準的SQL語句來訪問數據。
關係型數據庫
*存儲的都是實體與實體之間的關係。
常見的數據庫
*Oracle:甲骨文公司的數據庫產品,大型的收費數據庫。
*SQLServer:微軟公司的數據庫產品,中型的收費的數據庫。
*MySQL:是開源的,免費的數據庫產品,在5.x版本是免費的,6.x是收費的。
*DB2:IBM公司的數據庫產品,大型的收費的數據庫。
*SyBASE:已經退出歷史舞臺,Powerdesigner(數據庫建模工具)。
二、MySQL的卸載和安裝
MySQL的卸載:
1.先到MySQL的安裝路徑,找到my.ini的配置文件,找到兩個路徑,basedir和datadir。
2.然後卸載數據庫,再找到以上兩個路徑刪除文件夾。
MySQL的安裝:
下一步,下一步即可。
三、root密碼的重置
3.1停止mysql服務
3.2在cmd輸入一個命令,用來開啓一個MySQL服務,用於登錄的時候不需要驗證
此時出現上面的窗口,表示已經啓動了那個MySQL的服務,這個時候千萬不能關閉這個窗口。不然服務就失效了。
3.3新打開一個cmd窗口,然後輸入mysql -u root -p ,在上面的服務中,是不要密碼就可以直接進入的。
3.4輸入命令show databases;可以用來查看數據庫。
輸入命令use mysql;使用mysql數據庫。
update user set password = password('root') where user= 'root';
3.6將兩個窗口關閉
3.7任務管理器中結束mysqld的進程
3.8重啓MySQL服務
四、MySQL服務器與數據、表之間的關係
五、SQL簡介
*SQL:Structured Query Language,結構化查詢語言。
*特點:非過程性語言
*過程性語言:當前的這條語句執行需要依賴於上一條或幾條語句。
*非過程性語言:可一條語句,就會執行一個結果。
*爲加強SQL的語言能力,各廠商增強了過程性語言的特徵
*如Oracle的PL/SQL過程性處理能力。
*SQL Server、Sybase的T-SQL。
*SQL是用來存取關係數據庫的語言,具有查詢、操縱、定義和控制關係型數據的四方面功能
六、SQL分類
*DDL(數據定義語言)
*數據定義語言 Data Definition Language
*用來定義數據庫的對象,如數據表、視圖和索引等等。
*DML(數據操縱語言)
*數據操縱語言 Data Manipulation Language
*在數據庫表中更新、增加和刪除記錄
*如update、insert、delete。
*DCL(數據控制語言)
*數據控制語言 Data Control Language
*用於設置用戶權限和控制事務語言
*grant、revoke、if...else、while、begin...transaction
*DQL(數據查詢語言)
*數據查詢語言 Data Query Language
*select
七、數據庫之--創建數據庫
create database 數據庫名字 character set utf8;
案例:創建一個名稱爲mydb1的數據庫。
create database mydb1;
案例:創建一個使用utf8字符集的mydb2的數據庫。
create database mydb2 character set utf8;
八、數據庫之--查看數據庫
-- 顯示數據庫語句; show databases;
九、數據庫之--顯示數據庫定義信息
-- 顯示數據庫定義信息 show create database 數據庫名字;
十、數據庫之--數據庫刪除
drop database 數據庫名稱;
十一、數據庫之--修改數據庫
alter database if not exists 數據庫名稱 [default] character set utf8;
十二、數據庫之--切換數據庫
use 數據庫名稱;
十三、數據庫之--查看當前使用的數據庫
select database();
十四、數據表之--創建數據表
craete table 表名( 字段1 類型(長度) 約束, 字段2 類型(長度) 約束, 字段3 類型(長度) 約束 );
注意:
表名小括號,後面要有分號。
每一行字段後面要有逗號,但是最後一行沒有逗號。
數據類型後面有長度,如果是字符串類型,長度必須加。如果其他類型可以不加。默認長度。
數據類型:
字符串類型:
varchar | 長度是可變的。 |
char | 長度是不可變的。 |
大數據類型:
bolb | 二進制文件 |
text | 字符 |
數值型:
tinyint | smallint | int | bigint | float | double |
邏輯型:
bit |
日期型:
date | 只包含日期 |
time | 只包含時分秒 |
datetime | 包含日期和時分秒 |
timestap | 包含日期和時分秒,如果不傳入數據,默認選擇當前系統時間 |
案例:創建表
create table employee( id int, name varchar(20), gender varchar(10), birthday date, entry_date date, job varchar(100), salary double, resume text );
十五、數據表之--顯示所有的數據表
show tables;
十六、數據表之--單表的約束
主鍵約束:標識標記該條記錄,通過primary 可以 聲明主鍵。(默認唯一和非空)
唯一約束:值是唯一的,使用unique聲明。
非空約束:值不能爲空,not null
十七、數據表之--使用約束創建表
create table employee2( id int primary key auto_increment, name varchar(20) unique not null, gender varchar(10) not null, birthday date not null, entry_date date not null, job varchar(100) not null, salary double not null, resume text not null );
十八、數據表之--查看錶的信息
desc 表名;
十九、數據表之--查看建表語句和字符集
show create table 表名;
二十、數據表之--刪除表
drop table 數據表名稱;
二十一、數據表之--修改表
添加字段:
alter table 表名 add 字段 類型(長度) 約束;
刪除字段
alter table 表名 drop 字段;
修改類型或者約束
alter table 表名 modify 字段 類型(長度) 約束;
修改字段的名稱
alter table 表名 change 舊字段 新字段 類型(長度) 約束
修改表名
rename table 表名 to 新表名;
修改字符集
alter table 舊錶名 character set utf8;
二十二、數據之增加
添加數據
insert into 表名 (字段,字段,字段) values(值1,值2,值3);
insert into 表名 values(值1,值2,值3);
注意:
數據與字段的類型相同。
字段長度需要控制。
字符串或者日期類型需要使用''。
向user表中插入數據。
insert into user values (null,'xiaofeng','1994-10-10','2011-1-1','HR',19000,'abc'); insert into user values (null,'美美','1994-10-10','2011-1-1','HR',19000,'abc'); insert into user values (null,'小風','1994-10-10','2011-1-1','WORKER',21000,'abc'); insert into user values (null,'芙蓉','1994-10-10','2011-1-1','HR',1000,'abc'); insert into user values (null,'班長','1994-10-10','2011-1-1','HR',100,'abc');
二十三、數據之修改
update 表名 set 字段=值,字段=值 [where]
如果沒有where條件,默認更新所有的記錄。
有where的話,則更新一條或幾條。
案例:將所有員工的薪水修改爲5000元。
案例:將姓名爲班長的員工的薪水修改爲3000元。
二十四、數據之刪除
delete from 表名 [where]
案例:刪除表中名稱爲'班長'的數據
二十五、數據之查詢
select * from 表名; select 字段1,字段2 from 表名 ;
案例:查詢所有的用戶信息
案例:查詢用戶的姓名、生日信息
使用where條件過濾
select * from 表名[where]; select 字段1,字段2 from 表名[where] ;
案例:查詢芙蓉的信息
使用order by排序
案例:對用戶的生日進行排序(降序)
分組函數
count()、max()、min()、avg()、sum()
案例:求用戶信息總共多少人,總工資是多少,最高工資和最低工資是多少,平均工資是多少。