您好,登錄后才能下訂單哦!
下面一起來了解下入門MySQL數據庫需要掌握的基礎知識,相信大家看完肯定會受益匪淺,文字在精不在多,希望入門MySQL數據庫需要掌握的基礎知識這篇短內容是你想要的。
使用yum包進行安裝
yum install mysql-server mysql -y
在mysql官網上下載windows版本的mysql(MySQL Community Server)安裝包
下載地址:https://dev.mysql.com/downloads/mysql/
下載完畢后需要添加mysql的環境變量
a) 初始化:
mysqld --initialise-insecure (--user=mysql)
b) 啟動服務端:
mysqld
c) 連接客戶端:
mysql -u root -p
d) 創建mysql數據庫:
create database sjingx;
e) 制作MySQL的windows服務:
mysql install(創建mysql服務)
mysql remove(刪除mysql服務)
f) 創建好MySQL服務的開啟與關閉
net start mysql(開啟mysql服務)
net stop mysql(關閉mysql服務)
a) 創建用戶
b) 授權
c) 數據庫的導入和導出
mysqldump -u 用戶名 -p 密碼 數據庫名稱 > 導出文件路徑
information_schema: 虛擬庫,不占用磁盤空間,存儲的是數據庫啟動后的一些參數,如用戶表信息、列信息、權限信息、字符信息等
performance_schema: MySQL 5.5開始新增一個數據庫:主要用于收集數據庫服務器性能參數,記錄處理查詢請求時發生的各種事件、鎖等現象
mysql: 授權庫,主要存儲系統用戶的權限信息
test: MySQL數據庫系統自動創建的測試數據庫
語法:
create database 數據庫名 charset utf8;
create database db1 charset utf8;(創建數據庫db1,編碼格式為UTF8)
show create database sjingx;(查看數據庫sjingx信息)
show databases;(查看所有數據庫)
alter database db1 charset gbk;(修改數據db1的編碼格式為GBK)
drop database db1;(刪除數據庫)
1)創建表
語法:
create table 表名( 字段名1 類型[(寬度) 約束條件], 字段名2 類型[(寬度) 約束條件], 字段名3 類型[(寬度) 約束條件] ); #注意: 1. 在同一張表中,字段名是不能相同 2. 寬度和約束條件可選 3. 字段名和類型是必須的
示例:
create table t1( id int, name varchar(50), sex enum('male','female'), age int(3) ); # 查看db1庫下所有表名 show tables; select id,name,sex,age from t1; select * from t1; select * from t1; # 往表中插入數據 insert into t1 values(1,'alex','male',20); # 往id字段插入數據 insert into t1(id) values(2),(3);
2)查看表結構
# 查看表結構,可簡寫為desc 表名 mysql> desc t1; +-------+-----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(50) | YES | | NULL | | | sex | enum('male','female') | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-----------------------+------+-----+---------+-------+ # 查看表詳細結構,可加\G mysql> show create table t1\G; *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `id` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `sex` enum('male','female') DEFAULT NULL, `age` int(3) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8
3)修改結構表
語法:
1. 修改表名: alter table 表名 rename 新表名; 2. 增加字段: alter table 表名 add 字段名 數據類型[完整性約束條件...], add 字段名 數據類型[完整性約束條件...]; alter table 表名 add 字段名 數據類型 [完整性約束條件…] FIRST; alter table 表名 add 字段名 數據類型 [完整性約束條件…] AFTER 字段名; 3. 刪除字段 alter table 表名 drop 字段名; 4. 修改字段 alter table 表名 modify 字段名 數據類型 [完整性約束條件...]; alter table 表名 change 舊字段名 新字段名 舊數據類型 [完整性約束條件…]; alter table 表名 change 舊字段名 新字段名 新數據類型 [完整性約束條件…];
示例:
1. 修改存儲引擎 mysql> alter table service -> engine=innodb; 2. 添加字段 mysql> alter table student10 -> add name varchar(20) not null, -> add age int(3) not null default 22; mysql> alter table student10 -> add stu_num varchar(10) not null after name; //添加name字段之后 mysql> alter table student10 -> add sex enum('male','female') default 'male' first; //添加到最前面 3. 刪除字段 mysql> alter table student10 -> drop sex; mysql> alter table service -> drop mac; 4. 修改字段類型modify mysql> alter table student10 -> modify age int(3); mysql> alter table student10 -> modify id int(11) not null primary key auto_increment; //修改為主鍵 5. 增加約束(針對已有的主鍵增加auto_increment) mysql> alter table student10 modify id int(11) not null primary key auto_increment; ERROR 1068 (42000): Multiple primary key defined mysql> alter table student10 modify id int(11) not null auto_increment; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 6. 對已經存在的表增加復合主鍵 mysql> alter table service2 -> add primary key(host_ip,port); 7. 增加主鍵 mysql> alter table student1 -> modify name varchar(10) not null primary key; 8. 增加主鍵和自動增長 mysql> alter table student1 -> modify id int not null primary key auto_increment; 9. 刪除主鍵 a. 刪除自增約束 mysql> alter table student10 modify id int(11) not null; b. 刪除主鍵 mysql> alter table student10 -> drop primary key;
4)復制表
復制表結構+記錄 (key不會復制: 主鍵、外鍵和索引) mysql> create table new_service select * from service; 只復制表結構 mysql> select * from service where 1=2; //條件為假,查不到任何記錄 Empty set (0.00 sec) mysql> create table new1_service select * from service where 1=2; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> create table t4 like employees;
5)刪除表
drop table 表名; # 清空表,auto_increment = 0 truncate 表名;
1)數值類型
整型作用:存儲年齡,等級,id,各種號碼
浮點型作用:存儲薪資,身高,體重,體質參數
2)日期類型
作用:存儲用戶注冊時間,文章發布時間,員工入職時間,出生時間,過期時間
3)字符串類型
char和varchar(char)
4)枚舉和集合類型
1)約束條件not null與default
not null 非空
default 默認值
zerofill:如果插入int(4),你插入1,顯示0001
unsigned:不能為負數,當你插入負數就顯示為0
create table t1( id int(11) unsigned zerofill ); create table t1( id int, name char(6), sex enum('male','female') not null default 'male' );
2)約束條件unique
unique約束唯一標識數據庫中的每條記錄
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 約束擁有自動定義的 UNIQUE 約束。
請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
單列唯一:
方式一: create table department( id int, name char(10) unique ); 方式二: create table department( id int, name char(10), unique(name) );
聯合唯一:
create table services( id int, name char(15), port int, unique(id), unique(name,port) );
3)約束條件primary key
約束:not null unique 不為空且唯一
存儲引擎innodb:對于innodb存儲引擎來說,一張表內必須有一個主鍵
# 單列主鍵 create table t1( id int primary key, name char(16) ); # 會自動呢找一個不唯一且為空的字段為主鍵 create table t1( id int not null unique, name char(16) ); # 復合主鍵 create table t1( id char(15), port int, primary key(id,port) )
4)約束條件auto_increment
create table t1( id int primary key auto_crement, name char(15) ); # 了解 show variables like 'auto_inc%'; 查看與auto_inc模糊查詢 # 步長 auto_increment_increment默認為1 # 起始偏移量 auto_increment_offset默認為1 # 設置步長 set session auto_increment_increment=5; set global auto_increment_increment=5; # 設置起始偏移量(起始偏移量<=步長) set global auto_increment_offset=3;
5)約束條件foregin key 用來建立表之間的關系
可以發現下表中的部門和部門信息重復 id | name | sex | dep_name | comment |
---|---|---|---|---|
1 | alex | male | 技術部 | 技術 |
2 | sjingx | male | 技術部 | 技術 |
3 | wuxx | female | 財務部 | 錢 |
4 | liunx | male | 生成部 | 生產 |
5 | python | male | 技術部 | 技術 |
forrgin key的作用:方便管理,節省磁盤空間
示例:
user_info表 id | name | sex | dep_id |
---|---|---|---|
1 | alex | male | 1 |
2 | sjingx | male | 1 |
3 | wuxx | female | 2 |
4 | liunx | male | 3 |
5 | python | male | 1 |
dep表 id | name | comment |
---|---|---|
1 | 技術部 | 技術 |
2 | 財務部 | 錢 |
3 | 生成部 | 生產 |
# 先建被關聯的表 create table dep( id int, name char(16), comment char(50) ); # 再建關聯的表 create table user_info( id int primary key, name char(10), sex enum('male','female'), dep_id int, foreign key(dep_id) references dep(id) on delete cascade on update cascade ); on delete cascade刪除同步:被關聯一刪除,關聯的表也刪除了 on update cascade更新同步:同上 # 先往被關聯表插入記錄 # 在往關聯表插入記錄 # 刪除
看完入門MySQL數據庫需要掌握的基礎知識這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。