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]