1. 程式人生 > >MySQL5.7基本SQL語句總結

MySQL5.7基本SQL語句總結

例項:instance;資料庫:database;模式:schema;表:table;檢視:view;索引:index。

一個關係資料庫管理系統的例項(Instance)中可以建立多個數據庫(database);一個數據庫中可以建立多個模式(schema);一個模式下通常包括多個表(table)、檢視(view)和索引(index)等資料庫物件。

在MySQL中,schema和database是同義詞。CREATE SCHEMA和CREATE DATABASE是等效的。但在其他的資料庫中有所不同。在oracle資料庫產品中,schema是database的一部分。

Mysql服務的啟動和停止:

net start 你的mysql服務名//回車即可啟動Mysql服務

net stop 你的mysql服務名//回車即可關閉Mysql服務

1、使用者管理

新建使用者:

create user '使用者名稱'@'localhost'identified by'密碼';

//'使用者名稱'@'localhost'意思即為使用者名稱@主機地址,表示該使用者名稱的賬號可以在哪些主機地址上登入,mysql的使用者都必須先進行授權,localhost即代表127.0.0.1預設本地地址,如果用%則意味著“任何主機”,說明這個賬號可以在所有主機上登入。在對使用者賬號進行操作時如果只用使用者名稱,那麼預設都是使用者名稱@%。

更改密碼:

set password for '使用者名稱'@'localhost' ='密碼';

許可權管理:

show grants for '使用者名稱'@'主機地址';//檢視該使用者名稱的許可權

grant all privileges on *.* to 'name'@'localhost';//給位於localhost地址上的name使用者所有資料庫的所有許可權

grant all privileges on test.* to 'name'@'localhost';//給位於localhost地址上的name使用者名稱為test的資料庫的所有許可權

//privileges可以省略,all也可以改為select,update等具體許可權

每當調整許可權後,通常需要執行以下語句重新整理許可權:

flush privileges;

revoke all privileges on test.* from 'zgcr'@'localhost';//revoke是grant的反操作,去除許可權

2、資料庫操作

檢視資料庫:

show databases;

建立資料庫:

create database if not exists test2;//test2為資料庫名

使用資料庫:

use test1;//使用名為test1的資料庫

刪除資料庫:

drop database test1;//使用名為test1的資料庫

3、建立新表

直接建立新表:

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

比如在cos資料庫中建立Patron表:

use cos;
create table Patron(
   Patron_id INT NOT NULL AUTO_INCREMENT,
   password VARCHAR(100) NOT NULL,
   address VARCHAR(50) NOT NULL,
   phone_number VARCHAR(50),
   PRIMARY KEY ( Patron_id) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果你不想欄位為NULL可以設定欄位的屬性為NOT NULL,在操作資料庫時如果輸入該欄位的資料為NULL ,就會報錯。
AUTO_INCREMENT定義列為自增的屬性,一般用於主鍵,數值會自動加1。
PRIMARY KEY關鍵字用於定義列為主鍵。您可以使用多列來定義主鍵,列間以逗號分隔。
ENGINE 設定儲存引擎,CHARSET 設定編碼。

根據已有的表建立新表:

A方法:

use cos;//使用名為cos的資料庫
create table Patron2 like Patron;//Patron2為新表名,Patron為舊錶名

B方法:

use cos;//使用名為cos的資料庫
create table Patron3 select * from Patron;//Patron3為新表名,Patron為舊錶名

5、刪除新表

drop table Patron3;//Patron3為表名

6、增加一個列

alter table test_table add phone_number varchar(15) NOT NULL;//test_table為表名,phone_number為要增加的列名,後面是屬性

7、建立/刪除索引

建立:

use test;//使用名為cos的資料庫
create unique index index1 on test_table(test_id);

//unique表示唯一索引,index1為索引名,test_table為表名,test_id為要建立索引的列名

刪除:

use test;//使用名為cos的資料庫
drop index index1 on test_table;//index1索引名,test_table為索引所在的表名

注:索引是不可更改的,想更改必須刪除重新建。

8、建立/刪除檢視

建立:

create view view1 as select test_id from test_table;//view1為建立的檢視名,test_id為列明,test_table為列所在的表名

刪除:

drop view view1;//view1為列名

9、其他基本SQL語句

選擇:select * from table1 where 範圍

插入:insert into table1(field1,field2) values(value1,value2)

刪除:delete from table1 where 範圍

更新:update table1 set field1=value1 where 範圍

查詢:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’這個模式的字串)—like的語法很精妙,查資料!

排序:select * from table1 order by field1,field2 [desc]

總數:select count(*) as totalcount from table1

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1[separator]