免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

入門MySQL數據庫需要掌握的基礎知識

下面一起來了解下入門MySQL數據庫需要掌握的基礎知識,相信大家看完肯定會受益匪淺,文字在精不在多,希望入門MySQL數據庫需要掌握的基礎知識這篇短內容是你想要的。

創新互聯公司是一家專業提供嵐山企業網站建設,專注與網站設計制作、成都網站制作、H5技術、小程序制作等業務。10年已為嵐山眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。

一、MySQL介紹

二、MySQL安裝

1. linux安裝mysql

使用yum包進行安裝

yum install mysql-server mysql -y

2. windows安裝mysql

在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服務)

3. OS X安裝mysql
4. 基本管理

a) 創建用戶

b) 授權

c) 數據庫的導入和導出

mysqldump -u 用戶名 -p 密碼 數據庫名稱 > 導出文件路徑

三、庫操作

1. 系統數據庫

information_schema: 虛擬庫,不占用磁盤空間,存儲的是數據庫啟動后的一些參數,如用戶表信息、列信息、權限信息、字符信息等

performance_schema: MySQL 5.5開始新增一個數據庫:主要用于收集數據庫服務器性能參數,記錄處理查詢請求時發生的各種事件、鎖等現象

mysql: 授權庫,主要存儲系統用戶的權限信息

test: MySQL數據庫系統自動創建的測試數據庫

2. 創建數據庫

語法:

create database 數據庫名 charset utf8;

3. 數據庫相關操作

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. 存儲引擎
2. 表的增刪改查

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 表名;
3. 數據類型

1)數值類型

整型作用:存儲年齡,等級,id,各種號碼

浮點型作用:存儲薪資,身高,體重,體質參數

2)日期類型

作用:存儲用戶注冊時間,文章發布時間,員工入職時間,出生時間,過期時間

3)字符串類型

char和varchar(char)

4)枚舉和集合類型

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
namesexdep_namecomment
1alexmale技術部技術
2sjingxmale技術部技術
3wuxxfemale財務部
4liunxmale生成部生產
5pythonmale技術部技術

forrgin key的作用:方便管理,節省磁盤空間

示例:

user_info表
id
namesexdep_id
1alexmale1
2sjingxmale1
3wuxxfemale2
4liunxmale3
5pythonmale1
dep表
id
namecomment
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更新同步:同上

# 先往被關聯表插入記錄

# 在往關聯表插入記錄

# 刪除
5. 表之間的關系

五、數據操作

看完入門MySQL數據庫需要掌握的基礎知識這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。

分享名稱:入門MySQL數據庫需要掌握的基礎知識
新聞來源:http://m.newbst.com/article14/jicjge.html

成都網站建設公司_創新互聯,為您提供做網站面包屑導航定制開發網站內鏈軟件開發服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設