數據庫:數據庫是存儲數據的倉庫
數據庫管理系統(DBMS):是一種操作和管理數據庫的大型軟件,
mysql:免費,開源,速度快,體積小,適用于中小型企業。
非關系型數據庫Nosql(不是沒有sql,是比關系型數據庫更加強大的數據庫):Mongodb,Redis,HBase....
關系型數據庫Rdbms :(1).表table:具有固定的列數和任意的行數。
(2).database數據庫:數據庫是一些關聯表的集合。
(3).Fied列(字段)
(4).row行
(5).primary key(主鍵),主鍵是唯一的,一個數據庫表中只能有一個主鍵。
(6).foreign key (外鍵),外鍵用于關聯兩個表。
(7).index(索引):理解為目錄
一個自動不全的mysql軟件:mycil -u root
進入數據庫:mysql -u root -p
(1)創建數據庫:create database 數據庫名稱;
(2)創建數據庫:create database 數據庫名稱 charset=utf8;
查看所有數據庫:show databases;
進入(切換)數據庫:use 數據庫名稱;
刪除數據庫:drop database 數據庫名稱;
mysql 關系型數據庫:
mysql的默認端口是:3306;
Ascll 是美國的
計算機里面有256個Ascll字符,一個Ascll在內存中站1個字節。2的8次方=256
計算機只認識二進制的字符01010101;
iso:標準iso-646
unicode:標準iso-10646
iso把unicode收購了:標準utf16
utf8:萬國碼(覆蓋了全國所有的編碼)
數據庫:數據庫是一個裝東西的容器,
存儲引擎:采用不同性能的引擎
mysql的三種存儲引擎:(1).myisam:沒有外鍵,沒有事務,是5.5版本之前的默認引擎
(2).innodb:5.5版本以后默認的存儲引擎是innodb,存在磁盤里面
(3).memory:存在內存里面
什么是 事務:要么全部執行,要么全部不執行。
什么是sql:結構化查詢語言,sql是專門為數據庫建立的操作命令集
DDL: 數據定義語言 用來定義數據庫對象:創建庫、表、列等
DML: 數據操作語言 用來操作數據表中的記錄
DQL: 數據查詢語言 用來查詢數據
DCL: 數據控制語言 用來定義訪問權限和安全級別
一本書:《浪潮之巔》
MySQL支持多種類型,大致可以分為三類
(1).數值類型:(1).int (2).double:浮點型,例如double(5,2)表示最多5位,其中必須有2位小數,即最大值為999.99;
4.2 char
(2).字符串類型:(1)char:固定長度字符串,如果輸入的不夠會自動補全.(2).varchar:可變長字符串類型。(3).text:字符串類型;(4).bold:二進制類型;
(3).時間類型:(1).date :某年某月某日;(2).time:時間類型 :某事某分某秒。(3).datetime:某年某月某日某事某分某秒。
創建學生表
創建表: 制定表結構步驟:
先進入某一個數據庫:use 數據庫名
輸入建表命令;
CREATE TABLE 表名(
列名1 列名類型 [約束],
列名2 列名類型 [約束],.....
列名N 類的類型 [約束]);
添加一列(本來我已經有4個字段,又想添加一個新的字段)
添加一個新的字段:alter table 表名 add 列名 數據類型; 例如:alter table students add score int;
查看表的字段信息(結構):desc 表名
修改一個表的字段類型:alter table 表名 modify 字段名 數據類型;例如:alter table students modify id bigint;
刪除一列:alter table 表名 drop 字段;例如:alter table students drop name;
修改表名:rename table 原表名 TO 新表名;
查詢某張表的創建細節: show create table 表名; 例如:show create table student
修改表的字符集:alter table 表名 charset utf8; 例如:alter table student charset utf8;
修改表的列名:alter table 表名 change 原字段名 新字段名 varchar(20) ;例如:alter table students change name newname varchar(20);
刪除表:drop table 表名;
DELETE 與 TRUNCATE的區別:DELETE可以刪除指定數據也能刪除所有數據 TRUNCATE只能刪除所有數據
- DELETE刪除表中的數據,表結構還在;刪除后數據還可以找回
- TRUNCATE刪除是把表直接DROP掉,然后再創建一個同樣的新表.刪除的數據不能找回.執行速度比DELETE快