本質是一個文件,按照必定的格式存儲數據,能夠對數據進行操做。php
歷史:java
層次結構模型 數據庫管理系統mysql
IMSsql
網狀結構模型 數據庫管理系統數據庫
IDSoracle
關係型結構 數據庫管理系統函數
後關係型(對象關係型)數據庫管理系統sqlserver
NoSql(往死裏學,高薪)學習
關係型結構數據庫管理系統編碼
oracle oracle 不開源收費 跨平臺 非互聯網大型公司 用的比較多
DB2 IBM 不開源收費 跨平臺
Sybase Sybase 不開源收費 跨平臺
sqlserver 微軟 不開源收費 不跨平臺
mysql oracle 開源 不一樣版本收費 跨平臺 互聯網公司用的比較多
RDBMS:Relationship DataBaseManagementSystem
DataBase:數據庫
table:
卸載
(1):記住安裝路徑
(1)計算機--右鍵管理--服務和應用程序-服務 -右鍵中止/啓動
(2)net stop mysql
net start mysql
(1)mysql -uroot -proot
(2)mysql --user=root --password=root
(3)C:\Users\Administrator>mysql -uroot -p
Enter password: ****
(4)用mysql自帶的命令窗口登陸
(5)mysql --user=root --password=1234 --host=127.0.0.1 --port=3306
退出:exit
重置密碼:
1.打開窗口並關掉mysql的服務
2.mysqld --console --skip-grant-tables
3.不要關閉窗口從新打開新窗口
mysql -uroot (回車)
use mysql;
update user set password=password('新密碼') where user='root';
update user set password=password('root') where user='root';
4.關閉兩個窗口
5.打開窗口 啓動服務 新密碼登錄
專門針對數據庫的語言,對數據庫進行CRUD
c:create
r:retrieve
u:update
d:delete
DDL:Database Definition Language(數據庫定義語言)
定義(建立)相應的數據庫 或者表
DML:Database Management Language(數據管理語言)
增刪改
DQL:Database Query Language(數據庫查詢語言)
查詢操做
DCL:Database Control Language(數據庫控制語言)
權限管理
create(建立,定義) alter(修改) drop(刪除)
(2)create database da2 character set utf8;
(3)create database 庫的名字 character set utf8 collate utf8_general_ci ;
查看庫的編碼:
查看能夠設置的編碼格式:show character set;
(3) create database 庫的名字 character set utf8 collate utf8_general_ci ;
修改數據庫的編碼: alter database 庫名 character set 編碼
建立表:最後一行不能夠加逗號,其餘必須加
查看當前所在的庫:
select database();
修改標的名稱:alter table 表名 rename to 新表名;
查看當前表的結構:desc 表名;
添加字段:alter table 表名 add 字段名 類型
修改字段:alter table 表名 change 舊字段的名字 新字段的名字 類型;
修改字段的類型:alter table 表名 modify 字段的名字 新類型 ;
刪除字段: alter table 表名 drop 字段名;
int 至關於java中的int
tinyint 至關於java中 byte
smallint 至關於java中的short
bigint 至關於java中的long
boolean:0表示false ,非零表示true
浮點(4,2); 長度是四 小數點後佔兩位。
float double decimal (金錢)
date 表示年月日
time 時分秒
datetime 年月日時分秒
timestamp 時間戳 年月日時分秒
datetime與tiemstamp的區別:
(1) datetime 範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
timestamp範圍:範圍是'1970-01-01 00:00:00'到2037年
(2) datetime 默認爲null
timestamp 默認爲當前時間
必須指定長度
char與varchar的區別:
char:長度固定不變(效率高)
varchar:長度能夠改變
TINYTEXT 大長度爲255(2(8)–1)字符的TEXT列。
TEXT[(M)] 最大長度爲65,535(2(16)–1)字符的TEXT列。
MEDIUMTEXT 最大長度爲16,777,215(2(24)–1)字符的TEXT列。
LONGTEXT 4,294,967,295或4GB(2(32)–1)字符的TEXT列
TINYBLOB 最大長度爲255(2(8)–1)字節的BLOB列。
BLOB[(M)]最大長度爲65,535(2(16)–1)字節的BLOB列
MEDIUMBLOB最大長度爲16,777,215(2(24)–1)字節的BLOB列。
LONGBLOB最大長度爲4,294,967,295或4GB(2(32)–1)字節的BLOB列
(1)insert into 表名 values (value1,。。。。。valuen);
(2) insert into 表名 (字段名,。。。字段n) values (value1,。。。。。valuen);
若是插入數據直插入其中幾列的時候,要寫字段名,但只用寫要插入的字段名便可,後面的value值與前面的字段名對應便可。
update 表名 set 字段名 = 值 (更新全部的數據)
update 表名 set username = 'sss' where id=xx; (更新知足條件的)
delete from 表名 ; (刪除全部的數據)
delete from 表名 where 條件 ; (刪除知足條件的數據)
truncate 與delete的區別:
(1)delete命令刪除的數據將存儲在系統回滾段中
truncate命令刪除的數據是不能夠恢復的
(2)truncate以後的自增字段從頭開始計數
delete的仍保留原來的最大數值
(1)用sql修改編碼
(查看相應的編碼格式) show variables like '%char%';
set character_set_client = gbk;
set character_set_results = gbk;
(2)修改配置文件
[client]
port=3306
[mysql]
default-character-set=gbk
一、as:取別名 (as能夠省略): select course as english from tal;
二、去重複:distinct : select distinct course from stu;
not , or ,in , between and ,
select * from stu where score in (70,81,59);
select * from stu where not course='php';
_:匹配一個字符。
%:多個字符進行匹配
select * from stu where name like '%i%';
select * from stu where name like '_i__';
select * from stu where score is null;
select * from stu where score is not null;
ifnull(字段,0) (若是是字段是null的話 就用0來處理)
select id ,name ,course,ifnull(score,0) from stu;
彙集函數(彙集 函數不對null進行操做):
對一列數據進行操做。
count()//統計
sum()//求和
max() //最大
min()//最小
avg()//平均
用ifnull處理空值
select min(ifnull(score,0)) from stu;
(別名)
select round( avg(ifnull(score,0)),2) 平均成績 from stu;
平均成績是別名
having與where的區別:
通常 where用於具體的某條件 ,having後面跟 函數。
select course,sum(score) from stu group by course having sum(score)>100;
主鍵(惟一非空):primary key
惟一(能夠爲空):unique
非空:not null
默認:default
方法一:
create table p1( id int primary key, username varchar(32) );
方法二:
create table p2( id int, username varchar(32), primary key(id) );
方法三:
create table p3( id int, username varchar(32) ); alter table p3 add primary key (id);
create table d(
id int ,
username varchar(32) default '雞蛋'
);