《面試準備》Mysql數據庫簡單操作

環境:ubuntu16.04

Mysql搭建:https://dev.mysql.com/doc/

一、基本操作:

1、數據庫配置修改位置 :

vim /etc/mysql/mysql.conf.d/mysqld.cnf

 修改datadir位置:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
# By default we only accept connections from localhost
bind-address    = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

2、連接數據庫

mysql -u root -p

3、創建用戶

mysql -u root -p                                        #進入root下的mysql
create user 'name'@'localhost' identified by 'passwd';  #localhost表示本機訪問
create user 'name'@'localhost';                  #可以不要密碼
create user 'name'@'%' identified by 'passwd';      #%表示可以遠程訪問

4、給新建用戶權限

mysql -u root -p                                    #進入root下的mysql
create database example;                            #創建一個數據庫example
grant all privileges on 'example'.* to 'name'@'%'  #把example權限給新建用戶(新建用戶是不能創建database的)
flush privileges                                    #立即更新

5、在新的用戶上建立數據庫

mysql -u create_name -p                             #進入root下的mysql
use example;                                        #用example數據庫(由root用戶授權)
drop example;                                       #刪除數據庫

6、在數據庫中建表

use example;                                        #用example數據庫建表
create table 表名 (                    #創建表
    屬性名 數據類型 [完整約束條件],
    屬性名 數據類型 [完整約束條件],
    ...
    ...
    屬性名 數據類型 [完整約束條件]
);
create table stu(                                   #example
    id int primary key,
    name varchar(20) not null
);
desc stu;                                           #查看錶結構
drop table stu;                                     #刪除表

 約束條件(constraint)說明:

PRIMARY KEY:      標識該屬性爲該表的主鍵,可以唯一的標識對應的元組(唯一unique,非空not null,便於查詢)

FOREIGN KEY:      標識該屬性爲該表的外鍵,是與之聯繫某表的主鍵

NOT NULL:                標識該屬性不能爲空

UNIQUE:                    標識該屬性的值是唯一的,不可重複

AUTO_INCREMENT  標識該屬性的值是自動增加,這是MySQL的SQL語句的特色(配合主鍵用) 

DEFAULT:                   如果添加語句爲空,爲該屬性設置默認值

7、修改表的屬性

alter table stu add teacher_name varchar(20) not null after id;  #添加表
alter table stu modify name varchar(80) after id;                #修改表中name的屬性
alter table stu change name stu_name varchar(20);                #改變表中name的名字及屬性
alter table stu drop teacher_name;                               #刪除表
desc stu;                                                        #查看錶結構

8、導入txt文檔

load data infile 'txt path' into table stu;     #注意txt內容中兩個值之間默認爲一個tab鍵
load data infile 'txt path' into table stu fields terminated ',';  #也可以爲','
select * from stu;                              #顯示錶內容

導入txt文檔遇到的錯誤: 

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot exec

錯誤原因:只能在規定的目錄下才能導入,我們需要通過下面命令查看 secure-file-priv 當前的值是什麼,進入mysql,執行:

show variables like '%secure%';

我們可以看到secure_file_priv的值爲/var/lib/mysql-files/

那麼我們把導入的路徑改爲上面的值就可以了

二、索引操作

1、爲什麼使用索引

數據庫的索引跟書的目錄一樣,,主要是爲了提高表中檢索數據的速度,由於數據存儲在數據庫表中,所以索引就是創建在數據庫表對象上,由表中的一個字段或多個字段生成的鍵組成,這些鍵存儲在數據結構(B-樹或哈希表)。所以索引的存儲類型分爲B型樹索引和哈希索引。

2、6種索引

索引的操作分爲創建索引、修改索引、刪除索引,Mysql支持6種索引:普通索引,唯一索引,全文索引,單、雙列索引,空間索引。

(1)普通索引

普通索引在創建時,不附加任何限制條件,也就是說可以創建在任何數據類型的字段上

#創建普通索引方法1:
create table stu(                                 
    id int primary key,
    name varchar(20) not null,
    index index_id(id)                           #在id字段上創建索引
);
#創建普通索引方法2:
alter table stu add index index_id(id);
#創建普通索引方法3:
create index index_id on stu(id);

測試:

 

(2)唯一索引

所謂唯一索引就是在創建索引時,限制索引的值必須是唯一的,這樣可以更快速的查詢某條記錄。

#創建唯一索引方法1:
create table stu(                                 
    id int primary key,
    name varchar(20) not null,
    unique index index_id(id)                           #在id字段上創建唯一索引
);
#創建唯一索引方法2:
alter table stu add unique index index_id(id);
#創建唯一索引方法3:
create unique index index_id on stu(id);

 (3)全文索引 

全文索引主要關注在數據類型爲char、varchar、text數據類型上,

#創建全文索引方法1:
create table stu(                                 
    id int primary key,
    name varchar(20) not null,
    fulltext index index_name(name)                    #在name字段上創建全文索引
);
#創建全文索引方法2:
alter table stu add fulltext index index_name(name);
#創建全文索引方法3:
create fulltext index index_id on stu(name);

 (4)多列索引 

在創建索引時,所關聯的不是一個字段,而是多個字段(普通索引的增加版本)。

#創建多列索引方法1:
create table stu(                                 
    id int primary key,
    name varchar(20) not null,
    index index_id_name(id,name)                    #在name字段上創建多列索引
);
#創建多列索引方法2:
alter table stu add index index_id_name(id,name);
#創建多列索引方法3:
create index index_id_name on stu(id,name);

 3、刪除索引  

drop index index_id on stu;

三、數據操作 

未完。。。。。。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章