mysql的簡單用法 mysql簡單用法

2021-10-19 00:19:09 字數 4064 閱讀 8117

刪除使用者:drop user jack@'%'; (drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底)

更改使用者名稱:rename user jack to jacknew; (使用者的都存在與user表中,更改名稱,許可權不變)

更改使用者密碼:update mysql.user set password=password('123456') where user='jack';

重新整理授權表:flush privileges;

如果對root設定了密碼,但是忘記了密碼:

mysqld_safe --skip-grant-tables &

跳過授權表,再免密登陸,更改root的密碼

將同樣的許可權同時授權於多個使用者,示例如下

grant select on hellodb.* to zsy@localhost,zsythink@localhost;

只對某張表的某個字段授權,可以使用如下語句

grant select (name,age) on zsythink.students to zsy@localhost;

只想將test函式的許可權授予zsy用

grant execute on function zsythink.test to zsy@'192.168.%.%';

使用procedure關鍵字,指明是儲存過程

grant execute on procedure zsythink.test to zsy@'192.168.%.%';

如果使用者有可能會跨越不安全的網路連線到資料庫,我們可以強制使用者使用ssl建立會話

grant usage on . to 'zsy'@'222.222.222.222' require ssl;

如果想要取消上述的ssl連線限制

grant usage on . to 'zsy'@'222.222.222.222' require none;

管理員還可以通過如下選項對使用者進行一些其他的限制

max_queries_per_hour:限制使用者每小時執行的查詢語句數量;

max_updates_per_hour:限制使用者每小時執行的更新語句數量;

max_connections_per_hour:限制使用者每小時連線資料庫的次數;

max_user_connections:限制使用者使用當前賬號同時連線伺服器的連線數量;

無限制為0

檢視使用者被授予的許可權:show grants for wang@'192.168.194.%'\g;

檢視使用者對庫有哪些許可權:select * from mysql.db where db='test'\g;

**使用者的許可權:revoke update on jack.test from wang@'192.168.194.%' ;

建立資料庫比存在就建立:create database if not exists testdb default character set utf8;

檢視可用字符集:show charactre set;

檢視某資料庫的字元設定:use testdb;status; *****====可檢視到伺服器和當前庫及當前用的資訊

檢視庫對應的許可權:select * from mysql.db where db="testdb"\g;

檢視排序方式:show collation;

修改字符集和字元排序規則是二選一的

修改資料庫的字符集:alter database testdb character set utf8;

設定庫的預設字符集:alter database testdb default character set utf8;

預設在此庫下建立的表都會繼承此字符集

建立表並檢視字符集:create table w(name varchar(15),age int);

檢視庫中所有表的資訊:show table status\g;

檢視單個表的資訊:show table status where name="user"\g;

刪除資料庫: drop database if exists testdb;

檢視建立資料庫和建立表的語句:

show create database testdb\g;

show create table w\g;

建立表結構:

create table if not exists wang.w(

id int primary key auto_increment,

name varchar(50) not null,

age int(10),

address varchar(150) not null,

phone bigint(11) unique,

schoolname varchar(50) not null,

gender enum('f','m') character set utf8 default 'm',

hobby varchar(200) character set utf8

) engine=innodb charset=utf8 auto_increment=1;

如果下sql語句,最好加上if not exists ,避免重複生成表,覆蓋資料

根據現有表,建立新錶(會將之前資料賦值過來):

create table h select 字段 from w;

只要結構不要資料:

create table h like w;

更改表名:alter table h rename as www;

刪除表中字段:alter table h del 字段;

新增表字段:alter table h add 字段 屬性;

更改欄位名和屬性:alter table h change 欄位名 欄位名 屬性;

更改欄位的屬性: alter table h modify 欄位名 屬性;

刪除表中字段:alter table h drop 欄位名;

為了查詢的效率,通常會對查詢字段建立索引,具有唯一標識性

建立索引:create index name on test_tb(name);

查詢索引:show index from test_tb;

刪除索引:alter table test_tb drop index name;

建立聯合索引:create index name_age on test_tb(name,age);

模糊查詢:show index from w where key_name like '%name%'\g

由於資料庫長時間執行,頻繁查詢,會導致索引損壞,可以修復索引:

repair table test_tb quick;

注意:innodb儲存引擎不支援repair修復

建立檢視根據需求顯示資料:

create view testvi as select w.name,w.age,l.hobby from w,l where w.id=l.uid;

檢視檢視:

show tables;

檢視檢視資料:

select * from testvi;

刪除檢視:

drop view if exists testvi;

sql_mode最常用的幾種重要模式如下:

ansi:寬鬆模式,對插入資料進行校驗,如果不符合定義型別或長度,對資料截斷儲存,報警告資訊,預設應該就是這種。

strict_trans_tables:只在事務型表中進行嚴格限制。

strict_all_tables:對所有表進行嚴格限制。

traditional :嚴格模式,當插入資料時,進行資料的嚴格校驗,錯誤的資料將不能被插入,報error錯誤。用於事物時,會進行事物的回滾,官方提醒我們說,如果我們使用的儲存引擎是非事務型的儲存引擎(比如myisam),當我們使用這種模式時, 如果執行非法的插入或更新資料操作時,可能會出現部分完成的情況。

查詢:select * from w where id > 1 order by age desc limit 1\g (desc降序排列)

更新:update w set phone="13567892345" where id=3;

刪除:delete from w;

mysql儲存過程簡單用法

show procedure status 檢視所有儲存過程 簡單儲存過程 先將結束符改成 delimiter create procedure query page int beginselect from class where id page end 將結束符改回 delimiter 呼叫儲存...

MySQL臨時表的簡單用法

當工作在非常大的表上時,你可能偶爾需要執行很多查詢獲得乙個大量資料的小的子集,不是對整個表執行這些查詢,而是讓mysql每次找出所需的少數記錄,將記錄選擇到乙個臨時表可能更快些,然後在這些表執行查詢。建立臨時表很容易,給正常的create table語句加上temporary關鍵字 create t...

MySQL臨時表的簡單用法

當工作在非常大的表上時,你可能偶爾需要執行很多查詢獲得乙個大量資料的小的子集,不是對整個表執行這些查詢,而是讓mysql每次找出所需的少數記錄,將記錄選擇到乙個臨時表可能更快些,然後在這些表執行查詢。建立臨時表很容易,給正常的create table語句加上temporary關鍵字 create t...