91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-06-05 15:55:25 來源:網絡 閱讀:256 作者:三月 欄目:MySQL數據庫

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

一、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數據庫需要掌握的基礎知識這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁强县| 阿克陶县| 凭祥市| 清镇市| 信阳市| 建湖县| 呼图壁县| 九江县| 兰州市| 宾川县| 嘉荫县| 紫金县| 临夏县| 汤原县| 尤溪县| 项城市| 株洲市| 江口县| 西乡县| 娱乐| 井陉县| 保德县| 聂荣县| 百色市| 蓝山县| 会昌县| 盐城市| 错那县| 蒙阴县| 藁城市| 博爱县| 油尖旺区| 仁寿县| 苏州市| 班戈县| 乌兰察布市| 沙坪坝区| 修武县| 略阳县| 高邑县| 通河县|