mysql基礎

2022-08-05 13:54:13 字數 2772 閱讀 9023

破解密碼

1.關閉mysql

net stop mysql

2.重新啟動

mysql –skip-grant-tables

3.跳過登入並改密碼,重新整理

mysql –uroot –p

update mysql.user set password=password(‘egon123’) where user=’root’ and host=’localhost’;

flush privileges;   # 重新整理

4.關閉mysql,正常啟動

net start mysql

基本的sql語句

注:sql語句在結束時都要加上;

資料夾:庫

增:create database db1 charset utf8;

刪:drop database db1;

改:alter database db1 charset gbk;

查:show databases;

show create database db; #相當於查剛剛建立檔案的編碼

檔案:表

切換資料夾:use db1;

查當前所在庫:select databases;

增:create table db1.t1(id int,name char);

create table t2(id int primary key auto_increment); #建立不為空,且唯一的id,自動增長

刪:drop table t1;

改:alter table t1 add age int;

alter table t1 modify name char(15);

alter table t1 change name name char(15);

alter table t1 drop age;

查:show tables;

describe t1;

檔案內的一行行內容:記錄

增:insert into t1(id,name) values

(1,’egon’),

(2,’lxx’);

刪:delete from t1 where id >= 2;  #不加where條件會將表全部刪除,但是auto_increment 的值不會重置,故而不推介該方法。

清空列表的操作推介使用 truncate t2;

改:update db1 t1 set name = ‘lxx_dsb’ where id = 2;

查:select id;          select name,id;      select *;

select * from t1 where id = 2;

一、建立表的完整語法:

# 語法

create table 庫名.表名(

欄位名1 型別[(寬度) 約束條件],

欄位名2 型別[(寬度) 約束條件],

欄位名3 型別[(寬度) 約束條件]

約束條件:是在資料型別之外對欄位附加的額外的限制

注意:1.最後一個欄位之後不能加逗號

2.同一張表中,欄位名不能相同

3.欄位名和型別是必須有的

4.寬度和約束條件是可選的

二、資料型別

ps:修改sql-mode為嚴格模式,必須重啟才能生效:

set globle sql_mode = ‘strict_trans_tables’;

1.整型:預設是有符號的

create table t1(x int unsigned); unsigned是指定建立無符號的表

強調:整型型別後的寬度不是儲存寬度,而是顯示寬度

2.浮點型:

float(255,30)    double(255,30)   decimal(65,30)

逗號前是總位數,逗號後是小數點之後的位數

三者的精度不同,decimal精度最高,但一般用float就足夠了

create table t2(x float(255,30));

3.日期型別

year 1994   date 1994-11-3  time 08:30:00

datetime/timestamp  1994-11-3 08:30:00

兩者區別:datetime佔位多,允許為空

timestamp 站位少(4位),且可以自動傳當前時間

4.字元型別: 注寬度指的是字元個數

char:定長        char(5)

varchar:變長  varchar(5)  儲存時為了分隔不同資料,每個資料前都會加一個用於描述長度的頭,一般使用varchar,因為可以省io操作

兩者相同點:寬度指的都是最大儲存的字元數,超過就會無法正常儲存

不同點:char(5):會把’m’ 存成’m    ‘,m後面會用空格填滿到五個字元

varchar(5): ‘m’還是存的’m’   只需要一個字元

注意:mysql在查詢時針對where欄位 = ‘值    ‘會忽略掉值右邊的空格

但是如果是like模糊匹配就不會忽略右邊的空格了

5.列舉與集合型別

列舉 enum(‘a’,’b’,’c’);  多選一

集合 set(‘a’,’b’,’c’);  多選多

Mysql mysql sql no cache

今天想測試下 like string 和 left 的效率問題 想到了公司dba大哥曾經用過的mysql 函式 sql no cache 順...

mysql 索引 mysql index

索引 mysql index 索引是一種資料結構,可以是b tree r tree 或者 hash 結構。其中r tree 常用於查詢比較接...

MySQL MySQL的索引

索引是存放在模式中的一個資料庫物件,雖然索引總是從屬於資料表,但它也和資料表一樣屬於資料庫物件。建立索引的唯一作用就是加速對錶的查詢,索引通過使用快速路徑訪問方法來快速定位資料,從而減少了磁碟的i o。 mysql使用information schema資料庫裡的statistics來儲存該資料庫實...