use test;selectdatabases();#查看數據庫,相當於pwdselectuser();#查看當前連接數據庫的用戶,相當於whoami
創建用戶、授權、收回權限
grantallon test_gbk.*to'testuser'@'localhost' identified by '123456';#賦予testuser所有權限,密碼
flush privileges; #刷新權限
show grants for 'testuser'@'localhost';
revoke insert,update,select,delete on test_gbk.* from 'testuser'@'localhost';#收回權限
create user test identified by 'BaC321@#';#創建用戶update mysql.userset authentication_string=password('A1b2c3#!@')whereuser='test';#修改密碼
insertinto T1 values('zhang','man');select*from T1 where name like'%an%';selectcount(*)as toaolcount from T1;altertable T1 add age int(4)notnull;altertable T1 drop age;update T1 set age=25where name='zhang';deletefrom T1 where age='22';altertable T1 addprimarykey(name);
查詢
基本查詢
投影查詢
排序
分頁
SELECT id, name, gender, score FROM students ORDERBY score DESCLIMIT5OFFSET0;
聚合查詢
求總數、合計值、平均值、最大值和最小值;
多表查詢
多個表的笛卡爾積
連接查詢
實用sql語句
插入或替換
插入一條已存在的數據,用replace,若id已存在,則刪除記錄,這樣就無需再查詢
REPLACEINTO students (id, class_id, name, gender, score)VALUES(1,1,'小明','F',99);
插入或更新
如果我們希望插入一條新記錄(INSERT),但如果記錄已經存在,就更新該記錄,此時,可以使用INSERT INTO ... ON DUPLICATE KEY UPDATE ...語句:
INSERTINTO students (id, class_id, name, gender, score)VALUES(1,1,'小明','F',99)ONDUPLICATEKEYUPDATE name='小明', gender='F', score=99;
插入或忽略
如果我們希望插入一條新記錄(INSERT),但如果記錄已經存在,就啥事也不幹直接忽略,此時,可以使用INSERT IGNORE INTO ...語句:
INSERTIGNOREINTO students (id, class_id, name, gender, score)VALUES(1,1,'小明','F',99);
快照
對class_id=1的記錄進行快照,並存儲爲新表students_of_class1:
CREATETABLE students_of_class1 SELECT*FROM students WHERE class_id=1;