日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql学习总结(41)——MySql数据库基本语句再体会

發布時間:2025/7/14 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql学习总结(41)——MySql数据库基本语句再体会 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、數據定義語言(DDL):定義和管理數據對象,比如建立數據庫、數據表

數據操作語言(DML):用于操作數據庫對象中的包含的數據。

數據查詢語言(DQL):用于查詢數據庫對象中包含的數據,能夠對表進行查詢。

數據控制語言(DCL):管理數據庫的語言。

2、進入數據庫的方式

開始-》運行-》cmd-》mysql -u root -p

Mysql -h 主機地址 -u 用戶名 -p

Mysql -h localhost -u root -p

3、數據庫的操作:

a.創建數據庫?create database 數據庫名;

b.查看所有的數據庫?show databases;

c.選擇數據庫?use 數據庫名;

d.查看自己選擇的數據庫?select database();

e.刪除數據庫?drop database 數據庫名;

如果不存在則創建:create database if not exists 庫名

如果不存在則創建并設置字符集:

Create database if not exists 數據庫名 default charset utf8

4、數據表的操作:

a.查看數據庫中的數據表:?show tables;

b.創建數據表::create table 數據表名;

c.查看數據表的結構:?desc 數據表名;

describe stu 描述表結構

【DESCRIBE TABLE 用于列出指定表或視圖中的所有列

DESCRIBE INDEXFOR TABLE 用于列出指定表的所有索引。

所以 DESCRIBE是用來顯示數據結構信息的

而desc是descend ,是用于查詢出結果時候對結果進行排序,是降序排序】

d.查看創建數據表的語句:show create table 數據表名;

e.刪除數據表:drop table 數據表名;

F.如果存在則刪除drop database if exists lamp

5、數據的操作:

1)、插入數據:

方法1:插入指定的字段:

insert into 數據表名(字段名1,字段名2....) values(值1,值2....);

方法2:插入所有字段:

insert into 數據表名 values(值1,值2,值3....)

方法3:插入多條語句:

insert into 數據表名 (字段名1,字段名2....) values (值1,值2),(值3,值4),........;

方法4:插入單條語句:

insert into 數據表名 set 字段名1 = 值1,字段名2 = 值2....

方法5:插入某些查詢的結果:

insert into 數據表名(字段名1,字段名2....) select 字段名1, 字段名2.....from 數據表名;

2)、查看數據:

方法1:select 字段名1,字段名2,字段名3.... from 數據表名

方法2:select * from 數據表名

A.?select主句

查詢當前的數據庫 select database();

查詢版本 select version();

select 1 + 2;

B.?from子句--從指定的數據表里面查找數據

select 字段名1,字段名2,字段名3.... from 數據表名

select * from 數據表名

C.?where子句--查詢數據的條件(可選)

select語句里面使用where子句指定過濾條件。 where條件中可以用:

1. 算數運算符(+ - * / %)

2 比較運算符( < >= > <= != =)

3. 邏輯運算符(not and or )

4. in操作符,指定條件范圍,范圍中的每個條件都可以進行匹配;

格式:in(值1,值2.....)

5. between操作符,在指定的兩個值之間;

格式:between 起始值 and 結束值

6. not,否定后面的操作

7. like或 not like 兩個操作符要使用包含通配符的字符串

通配符:

%:表示任意字符出現任意次數,可以放在任意位置

_:下劃線,用戶和%一樣,但是表示任意字符出現一次

格式:字段名 like '字符串'

%值% :包含值 %值:以值結尾的 值%:以值開頭的

D.?order by子句----對字段進行排序

格式1:order by 字段名[asc | desc]

注意:asc(默認排列順序)是升序排序,desc降序排序

格式2:order by 字段名1[asc | desc],字段名2[asc | desc]

注意:指的是字段名1完全相同的情況下按照字段名2進行排序

E.?limit 子句---限制結果集

格式1:limit m(返回多少行數據)

格式2:limit n,m

注意:1、n表示從多少行開始取值(第一條數據結果是從0開始 的),m表示返回的行數。

2、如果沒有足夠的行數,有多少行就顯示多少行。

E.?group by 子句--用于分組

格式1: group by 字段名(按照字段名進行分組)

格式2:group by 字段名?having?條件(按照分組完成之后的結果 再次進行過濾)

注意順序:select=>from=>where=>group by =>having=>order by =>limit

3)、修改數據:

update 數據表名 set 字段名1=值1,字段名2=值2.... where 字段名=值;

所有的班級是null的學員的班級設置為天庭 is null 是null的值會被選中

mysql> update stu set class = '天庭' where class is null;

4)、刪除數據:

delete from 數據表名 where 字段名=值

注意:1、一定要加上條件。2、在做大量的刪除之前,一般會將條件先進行測試,使用select先測試出要刪除的東西,然后再刪除。3、要刪除所有數據的時候不要使用delete而是使用 truncate table表名(他比delete要快,將表刪除,然后再重新建立)

6、對字段的操作

1)、更改字段

方法1:?alter table 數據表名 change 原字段名 新字段名 類型 約束條件

方法2:?alter table 數據表名 modify 字段名 類型 約束條件

注意:change可以修改字段名,modify不可以修改字段名

2)、添加字段

方法1:alter table 數據表名 add 字段名 類型 約束條件

方法2:alter table 數據表名 add 字段名 類型 約束條件 first 放在最前面

方法3:alter table 數據表名 add 字段名 類型 約束條件 after 放在哪個字段名后面

3)、刪除字段

alter table 數據表名 drop 字段名

4)、修改數據表名

alter table 數據表名 rename as 新表數據名

7、索引的分類:

顯示所有的索引

mysql> show indexes from test\G

1)、常規索引(index),最基本的索引,沒有任何限制

A. 1-創建索引:

create table 表名(

字段.....,

index 索引名 (要索引的字段)

);

2--數據表已經創建的情況下:

create index 索引名 on 數據表名(要加索引的字段);

B. 刪除索引:

drop index 索引名 on 數據表名

alter table test(表名) drop index username;(索引名)

C.刪除主鍵索引時,該字段不能是自增

mysql> alter table demo drop primary key;

2)、唯一索引(unique)--索引列里面的值必須是唯一的,允許有空值

A .1--創建索引:

create table 表名(

字段....,

unique 索引名(要索引的字段)

);

2--數據表已經創建的情況下:

create unique index 索引名 on 數據表名(要索引的字段)

B. 刪除索引:

drop index 索引名 on 數據表名

3)、主鍵索引(primary key)?一個表只能有一個主鍵

A. 1--創建索引:

create table 表名(

id int unsigned auto_increment primary key,

name char(32)

);

B. 刪除索引:

alter table 表名 drop primary key

注意:如果主鍵的字段上面有自增(auto_increment)需要先將auto_increment去掉,再刪除。

alter table 表名 change 自增的列 自增的列 類型

8、1) 默認情況下,創建表的時候不指定表的存儲引擎,將使用默認的存儲引擎。

show variables like 'default_storage_engine';

2)查看當前數據庫支持的存儲引擎

show engines;

3) 數據表定義存儲引擎

mysql> create table t2(

-> id int unsigned auto_increment primary key,

-> name char(32)

-> )engine=myisam;

9、數據類型

整型-- int tinyint 浮點型-- float(M,D) double(M,D) 定點型-- decimal(M,D)

字符串-- char(M) varchar(M) text blod 日期--時間戳 枚舉型--enum 集合類型--set

10、約束條件(通用)

1)、null---字段中沒有插入值時,默認為null。

not null--必須在插入值時,在該字段中插入一個值。如果不插入值那么為”空“

2)、default 值 在不插入該字段時默認插入的值。

11、 整型的約束條件:

1)、zerofill表示0填充。一般和整型后面設定的寬度一起使用,如果數值長度小于指定的長度那么將會在前面補充相對應的0進行填充。

2)、unsigned(無符號)如果要在字段里面保存非負數,或者較大上限的值時可使用該約束條件,將從0開始,需要在字段類型后面緊跟著定義unsigned。

3)、auto_increment,自增,在產生一個唯一的標識或順序值的時候,可以利用這個約束條件。這個約束條件只能用于整數類型,值一般從1開始。每行加1,插入一個null到一個auto_increment列時,MySQL將插入一個比出現過的最大值+1的值。一個表中只能有一個auto_increment列,并且必須定義為primary key或unique才能夠使用。

12、統計查詢

1)、count()用來進行計數。

獲取該表中一共有多少條數據

mysql> select count(*) from test

count(*)數據行的條數。

count(字段名) 來進行統計,但是它只會統計全體非null值的個數。

2)、min()最小值

3)、max()最大值

4)、sum()和

5)、avg()平均數 計算的時候不會將null的列計算在內

13、完全限定

select 表名.字段名 from 庫名. 表名

14、起別名

字段名和表名都可以起別名 as

select count(*) as 別名 from 表名;

15、?拼接字段

concat(字段,字段)

16、關聯查詢

1、找關系

2、就先寫出 select * from 表1,表2

3、 寫where 條件

4、將*替換成你想要的數據

17、子查詢----在查詢里面再包含一個查詢

注意:子查詢總是從內向外進行處理.實際上他執行了2個SQL語句

1)、select name,(select name from level where user.level=level.id) from user;

2)、后置用法:當作條件來用

現在我要找出所有翠紅樓里面管理層人員。

mysql> select name from user where level in (select id from level where name in( '翠紅樓老鴇','翠紅樓龜公','翠紅樓老板'));

18、導出mysql數據庫

1)、導出數據庫及里面的結構和數據:C:\Documents and Settings\admin>mysqldump -u root -p lamp > C:\xampp\htdocs\test.sql

2)、導出指定庫里面的表 C:\Documents and Settings\admin>mysqldump -uroot -p lamp test> C:\xampp\ht docs\test1.sql

3)、導出數據庫的結構的:mysqldump -u 用戶名 -p -d 數據庫名 > 導出的文件名

4)、導出指定庫的指定表的結構:mysqldump -u 用戶名 -p -d 數據庫名 表名 > 導出的文件名

19、導入數據庫

1)、在退出數據庫的情況下 mysql -u 用戶名 -p 數據庫名 < 數據庫文件

2)、在進入到數據庫并且選中的情況下 source 數據庫文件

20、修改密碼

1、C:\Documents and Settings\admin>mysqladmin -u root -p password 要設置的密碼

2、set password for '用戶名'@'登錄主機'=password('新密碼');

21、mysql忘記密碼

步驟:

1、關閉正在運行的MySQL

2、打開dos跳轉到mysql的bin目錄下

C:\Documents and Settings\lgzhyan>cd C:\xampp\mysql\bin

3、輸入C:\xampp\mysql\bin>mysqld --skip-grant-tables

4、再打開一個窗口進入到mysql的bin目錄下

5、輸入mysql回車,這個時候可以使用root的身份強行進去。

6、進入到mysql這個庫 use mysql

7、update user set password=password('新密碼') where user='root'

8、刷新權限 flush privileges

22、刪掉匿名用戶

drop user ''@'localhost';

23、退出MySQL?1)、quit 2)、exit 3)、\q

24、常見的一些操作

\g 可以代替分號。

\c 取消未完成的操作。

-b 關閉蜂鳴器

-P 端口號

’回車

\G 讓數據豎起來

25、進入數據庫服務器在不選擇數據庫的情況下選擇lamp庫中的goods表中的所有數據

mysql> select * from lamp.goods;

26、PHP連接數據庫步驟:

1)、連接數據庫

mysql_connect('主機','賬號','密碼');

2)、選擇數據庫作為默認的數據庫

mysql_select_db('數據庫名');

mysql_error(); //檢查上一步執行的MySQL的錯誤

3)、 設置字符集

mysql_set_charset('utf8');

做項目的時候亂碼的解決方法:

1、頁面的存儲字符集是否為UTF-8

2、瀏覽器是否解析為utf-8字符集 header() <meta />

3、是否設置了連接數據庫的字符集

4、數據庫的存儲字符集是否設置了utf8 default charset=utf8

4)、執行SQL語句

mysql_query(SQL語句);

5)、處理結果

一種是有結果集(select,desc)

mysql_fetch_row($reuslt);//得到的將是一個索引數組

mysql_fetch_assoc($result);//得到的將是一個關聯數組

mysql_fetch_array($result);//將得到的是一個關聯和索引數組

注意:結果集里面的數據使用上面的函數一次只能拿出來一條,沒有的時候將會返回false。

一種是沒有結果集(insert\delete\update)

mysql_affected_rows();//取得前一次 MySQL 操作所影響的記錄行數

6)、關閉資源

mysql_close();

其他的函數:

mysql_num_rows('結果集的資源'); //返回總共獲取到了多少跳數據

mysql_insert_id();//取得了上次insert操作所產生的自增id

授權

mysql> grant all on lamp.* to 'zhangsan@'192.168.141.249' identified by '123456';

刷新權限

mysql> flush privileges;

移除create 權限

mysql> revoke create on lamp.* from 'haha'@'localhost';

移除權限 revoke 權限 on 數據庫名.數據表名 from '用戶名'@'登錄主機'

mysql> revoke select on lamp.* from 'haha'@'localhost';

刪除用戶

刪除mysql數據庫下的user表中 user='haha'

mysql> delete from mysql.user where user = 'haha';

查詢當前stu表中所有的索引

mysql> show indexes from stu\G

數據定義語言(DDL):定義和管理數據對象,比如建立數據庫、數據表

數據操作語言(DML):用于操作數據庫對象中的包含的數據。

數據查詢語言(DQL):用于查詢數據庫對象中包含的數據,能夠對表進行查詢。

數據控制語言(DCL):管理數據庫的語言。

2、進入數據庫的方式

開始-》運行-》cmd-》mysql -u root -p

Mysql -h 主機地址 -u 用戶名 -p

Mysql -h localhost -u root -p

3、數據庫的操作:

a.創建數據庫?create database 數據庫名;

b.查看所有的數據庫?show databases;

c.選擇數據庫?use 數據庫名;

d.查看自己選擇的數據庫?select database();

e.刪除數據庫?drop database 數據庫名;

如果不存在則創建:create database if not exists 庫名

如果不存在則創建并設置字符集:

Create database if not exists 數據庫名 default charset utf8

4、數據表的操作:

a.查看數據庫中的數據表:?show tables;

b.創建數據表::create table 數據表名;

c.查看數據表的結構:?desc 數據表名;

describe stu 描述表結構

【DESCRIBE TABLE 用于列出指定表或視圖中的所有列

DESCRIBE INDEXFOR TABLE 用于列出指定表的所有索引。

所以 DESCRIBE是用來顯示數據結構信息的

而desc是descend ,是用于查詢出結果時候對結果進行排序,是降序排序】

d.查看創建數據表的語句:show create table 數據表名;

e.刪除數據表:drop table 數據表名;

F.如果存在則刪除drop database if exists lamp

5、數據的操作:

1)、插入數據:

方法1:插入指定的字段:

insert into 數據表名(字段名1,字段名2....) values(值1,值2....);

方法2:插入所有字段:

insert into 數據表名 values(值1,值2,值3....)

方法3:插入多條語句:

insert into 數據表名 (字段名1,字段名2....) values (值1,值2),(值3,值4),........;

方法4:插入單條語句:

insert into 數據表名 set 字段名1 = 值1,字段名2 = 值2....

方法5:插入某些查詢的結果:

insert into 數據表名(字段名1,字段名2....) select 字段名1, 字段名2.....from 數據表名;

2)、查看數據:

方法1:select 字段名1,字段名2,字段名3.... from 數據表名

方法2:select * from 數據表名

A.?select主句

查詢當前的數據庫 select database();

查詢版本 select version();

select 1 + 2;

B.?from子句--從指定的數據表里面查找數據

select 字段名1,字段名2,字段名3.... from 數據表名

select * from 數據表名

C.?where子句--查詢數據的條件(可選)

select語句里面使用where子句指定過濾條件。 where條件中可以用:

1. 算數運算符(+ - * / %)

2 比較運算符( < >= > <= != =)

3. 邏輯運算符(not and or )

4. in操作符,指定條件范圍,范圍中的每個條件都可以進行匹配;

格式:in(值1,值2.....)

5. between操作符,在指定的兩個值之間;

格式:between 起始值 and 結束值

6. not,否定后面的操作

7. like或 not like 兩個操作符要使用包含通配符的字符串

通配符:

%:表示任意字符出現任意次數,可以放在任意位置

_:下劃線,用戶和%一樣,但是表示任意字符出現一次

格式:字段名 like '字符串'

%值% :包含值 %值:以值結尾的 值%:以值開頭的

D.?order by子句----對字段進行排序

格式1:order by 字段名[asc | desc]

注意:asc(默認排列順序)是升序排序,desc降序排序

格式2:order by 字段名1[asc | desc],字段名2[asc | desc]

注意:指的是字段名1完全相同的情況下按照字段名2進行排序

E.?limit 子句---限制結果集

格式1:limit m(返回多少行數據)

格式2:limit n,m

注意:1、n表示從多少行開始取值(第一條數據結果是從0開始 的),m表示返回的行數。

2、如果沒有足夠的行數,有多少行就顯示多少行。

E.?group by 子句--用于分組

格式1: group by 字段名(按照字段名進行分組)

格式2:group by 字段名?having?條件(按照分組完成之后的結果 再次進行過濾)

注意順序:select=>from=>where=>group by =>having=>order by =>limit

3)、修改數據:

update 數據表名 set 字段名1=值1,字段名2=值2.... where 字段名=值;

所有的班級是null的學員的班級設置為天庭 is null 是null的值會被選中

mysql> update stu set class = '天庭' where class is null;

4)、刪除數據:

delete from 數據表名 where 字段名=值

注意:1、一定要加上條件。2、在做大量的刪除之前,一般會將條件先進行測試,使用select先測試出要刪除的東西,然后再刪除。3、要刪除所有數據的時候不要使用delete而是使用 truncate table表名(他比delete要快,將表刪除,然后再重新建立)

6、對字段的操作

1)、更改字段

方法1:?alter table 數據表名 change 原字段名 新字段名 類型 約束條件

方法2:?alter table 數據表名 modify 字段名 類型 約束條件

注意:change可以修改字段名,modify不可以修改字段名

2)、添加字段

方法1:alter table 數據表名 add 字段名 類型 約束條件

方法2:alter table 數據表名 add 字段名 類型 約束條件 first 放在最前面

方法3:alter table 數據表名 add 字段名 類型 約束條件 after 放在哪個字段名后面

3)、刪除字段

alter table 數據表名 drop 字段名

4)、修改數據表名

alter table 數據表名 rename as 新表數據名

7、索引的分類:

顯示所有的索引

mysql> show indexes from test\G

1)、常規索引(index),最基本的索引,沒有任何限制

A. 1-創建索引:

create table 表名(

字段.....,

index 索引名 (要索引的字段)

);

2--數據表已經創建的情況下:

create index 索引名 on 數據表名(要加索引的字段);

B. 刪除索引:

drop index 索引名 on 數據表名

alter table test(表名) drop index username;(索引名)

C.刪除主鍵索引時,該字段不能是自增

mysql> alter table demo drop primary key;

2)、唯一索引(unique)--索引列里面的值必須是唯一的,允許有空值

A .1--創建索引:

create table 表名(

字段....,

unique 索引名(要索引的字段)

);

2--數據表已經創建的情況下:

create unique index 索引名 on 數據表名(要索引的字段)

B. 刪除索引:

drop index 索引名 on 數據表名

3)、主鍵索引(primary key)?一個表只能有一個主鍵

A. 1--創建索引:

create table 表名(

id int unsigned auto_increment primary key,

name char(32)

);

B. 刪除索引:

alter table 表名 drop primary key

注意:如果主鍵的字段上面有自增(auto_increment)需要先將auto_increment去掉,再刪除。

alter table 表名 change 自增的列 自增的列 類型

8、1) 默認情況下,創建表的時候不指定表的存儲引擎,將使用默認的存儲引擎。

show variables like 'default_storage_engine';

2)查看當前數據庫支持的存儲引擎

show engines;

3) 數據表定義存儲引擎

mysql> create table t2(

-> id int unsigned auto_increment primary key,

-> name char(32)

-> )engine=myisam;

9、數據類型

整型-- int tinyint 浮點型-- float(M,D) double(M,D) 定點型-- decimal(M,D)

字符串-- char(M) varchar(M) text blod 日期--時間戳 枚舉型--enum 集合類型--set

10、約束條件(通用)

1)、null---字段中沒有插入值時,默認為null。

not null--必須在插入值時,在該字段中插入一個值。如果不插入值那么為”空“

2)、default 值 在不插入該字段時默認插入的值。

11、 整型的約束條件:

1)、zerofill表示0填充。一般和整型后面設定的寬度一起使用,如果數值長度小于指定的長度那么將會在前面補充相對應的0進行填充。

2)、unsigned(無符號)如果要在字段里面保存非負數,或者較大上限的值時可使用該約束條件,將從0開始,需要在字段類型后面緊跟著定義unsigned。

3)、auto_increment,自增,在產生一個唯一的標識或順序值的時候,可以利用這個約束條件。這個約束條件只能用于整數類型,值一般從1開始。每行加1,插入一個null到一個auto_increment列時,MySQL將插入一個比出現過的最大值+1的值。一個表中只能有一個auto_increment列,并且必須定義為primary key或unique才能夠使用。

12、統計查詢

1)、count()用來進行計數。

獲取該表中一共有多少條數據

mysql> select count(*) from test

count(*)數據行的條數。

count(字段名) 來進行統計,但是它只會統計全體非null值的個數。

2)、min()最小值

3)、max()最大值

4)、sum()和

5)、avg()平均數 計算的時候不會將null的列計算在內

13、完全限定

select 表名.字段名 from 庫名. 表名

14、起別名

字段名和表名都可以起別名 as

select count(*) as 別名 from 表名;

15、?拼接字段

concat(字段,字段)

16、關聯查詢

1、找關系

2、就先寫出 select * from 表1,表2

3、 寫where 條件

4、將*替換成你想要的數據

17、子查詢----在查詢里面再包含一個查詢

注意:子查詢總是從內向外進行處理.實際上他執行了2個SQL語句

1)、select name,(select name from level where user.level=level.id) from user;

2)、后置用法:當作條件來用

現在我要找出所有翠紅樓里面管理層人員。

mysql> select name from user where level in (select id from level where name in( '翠紅樓老鴇','翠紅樓龜公','翠紅樓老板'));

18、導出mysql數據庫

1)、導出數據庫及里面的結構和數據:C:\Documents and Settings\admin>mysqldump -u root -p lamp > C:\xampp\htdocs\test.sql

2)、導出指定庫里面的表 C:\Documents and Settings\admin>mysqldump -uroot -p lamp test> C:\xampp\ht docs\test1.sql

3)、導出數據庫的結構的:mysqldump -u 用戶名 -p -d 數據庫名 > 導出的文件名

4)、導出指定庫的指定表的結構:mysqldump -u 用戶名 -p -d 數據庫名 表名 > 導出的文件名

19、導入數據庫

1)、在退出數據庫的情況下 mysql -u 用戶名 -p 數據庫名 < 數據庫文件

2)、在進入到數據庫并且選中的情況下 source 數據庫文件

20、修改密碼

1、C:\Documents and Settings\admin>mysqladmin -u root -p password 要設置的密碼

2、set password for '用戶名'@'登錄主機'=password('新密碼');

21、mysql忘記密碼

步驟:

1、關閉正在運行的MySQL

2、打開dos跳轉到mysql的bin目錄下

C:\Documents and Settings\lgzhyan>cd C:\xampp\mysql\bin

3、輸入C:\xampp\mysql\bin>mysqld --skip-grant-tables

4、再打開一個窗口進入到mysql的bin目錄下

5、輸入mysql回車,這個時候可以使用root的身份強行進去。

6、進入到mysql這個庫 use mysql

7、update user set password=password('新密碼') where user='root'

8、刷新權限 flush privileges

22、刪掉匿名用戶

drop user ''@'localhost';

23、退出MySQL?1)、quit 2)、exit 3)、\q

24、常見的一些操作

\g 可以代替分號。

\c 取消未完成的操作。

-b 關閉蜂鳴器

-P 端口號

’回車

\G 讓數據豎起來

25、進入數據庫服務器在不選擇數據庫的情況下選擇lamp庫中的goods表中的所有數據

mysql> select * from lamp.goods;

26、PHP連接數據庫步驟:

1)、連接數據庫

mysql_connect('主機','賬號','密碼');

2)、選擇數據庫作為默認的數據庫

mysql_select_db('數據庫名');

mysql_error(); //檢查上一步執行的MySQL的錯誤

3)、 設置字符集

mysql_set_charset('utf8');

做項目的時候亂碼的解決方法:

1、頁面的存儲字符集是否為UTF-8

2、瀏覽器是否解析為utf-8字符集 header() <meta />

3、是否設置了連接數據庫的字符集

4、數據庫的存儲字符集是否設置了utf8 default charset=utf8

4)、執行SQL語句

mysql_query(SQL語句);

5)、處理結果

一種是有結果集(select,desc)

mysql_fetch_row($reuslt);//得到的將是一個索引數組

mysql_fetch_assoc($result);//得到的將是一個關聯數組

mysql_fetch_array($result);//將得到的是一個關聯和索引數組

注意:結果集里面的數據使用上面的函數一次只能拿出來一條,沒有的時候將會返回false。

一種是沒有結果集(insert\delete\update)

mysql_affected_rows();//取得前一次 MySQL 操作所影響的記錄行數

6)、關閉資源

mysql_close();

其他的函數:

mysql_num_rows('結果集的資源'); //返回總共獲取到了多少跳數據

mysql_insert_id();//取得了上次insert操作所產生的自增id

授權

mysql> grant all on lamp.* to 'zhangsan@'192.168.141.249' identified by '123456';

刷新權限

mysql> flush privileges;

移除create 權限

mysql> revoke create on lamp.* from 'haha'@'localhost';

移除權限 revoke 權限 on 數據庫名.數據表名 from '用戶名'@'登錄主機'

mysql> revoke select on lamp.* from 'haha'@'localhost';

刪除用戶

刪除mysql數據庫下的user表中 user='haha'

mysql> delete from mysql.user where user = 'haha';

查詢當前stu表中所有的索引

mysql> show indexes from stu\G

數據定義語言(DDL):定義和管理數據對象,比如建立數據庫、數據表

數據操作語言(DML):用于操作數據庫對象中的包含的數據。

數據查詢語言(DQL):用于查詢數據庫對象中包含的數據,能夠對表進行查詢。

數據控制語言(DCL):管理數據庫的語言。

2、進入數據庫的方式

開始-》運行-》cmd-》mysql -u root -p

Mysql -h 主機地址 -u 用戶名 -p

Mysql -h localhost -u root -p

3、數據庫的操作:

a.創建數據庫?create database 數據庫名;

b.查看所有的數據庫?show databases;

c.選擇數據庫?use 數據庫名;

d.查看自己選擇的數據庫?select database();

e.刪除數據庫?drop database 數據庫名;

如果不存在則創建:create database if not exists 庫名

如果不存在則創建并設置字符集:

Create database if not exists 數據庫名 default charset utf8

4、數據表的操作:

a.查看數據庫中的數據表:?show tables;

b.創建數據表::create table 數據表名;

c.查看數據表的結構:?desc 數據表名;

describe stu 描述表結構

【DESCRIBE TABLE 用于列出指定表或視圖中的所有列

DESCRIBE INDEXFOR TABLE 用于列出指定表的所有索引。

所以 DESCRIBE是用來顯示數據結構信息的

而desc是descend ,是用于查詢出結果時候對結果進行排序,是降序排序】

d.查看創建數據表的語句:show create table 數據表名;

e.刪除數據表:drop table 數據表名;

F.如果存在則刪除drop database if exists lamp

5、數據的操作:

1)、插入數據:

方法1:插入指定的字段:

insert into 數據表名(字段名1,字段名2....) values(值1,值2....);

方法2:插入所有字段:

insert into 數據表名 values(值1,值2,值3....)

方法3:插入多條語句:

insert into 數據表名 (字段名1,字段名2....) values (值1,值2),(值3,值4),........;

方法4:插入單條語句:

insert into 數據表名 set 字段名1 = 值1,字段名2 = 值2....

方法5:插入某些查詢的結果:

insert into 數據表名(字段名1,字段名2....) select 字段名1, 字段名2.....from 數據表名;

2)、查看數據:

方法1:select 字段名1,字段名2,字段名3.... from 數據表名

方法2:select * from 數據表名

A.?select主句

查詢當前的數據庫 select database();

查詢版本 select version();

select 1 + 2;

B.?from子句--從指定的數據表里面查找數據

select 字段名1,字段名2,字段名3.... from 數據表名

select * from 數據表名

C.?where子句--查詢數據的條件(可選)

select語句里面使用where子句指定過濾條件。 where條件中可以用:

1. 算數運算符(+ - * / %)

2 比較運算符( < >= > <= != =)

3. 邏輯運算符(not and or )

4. in操作符,指定條件范圍,范圍中的每個條件都可以進行匹配;

格式:in(值1,值2.....)

5. between操作符,在指定的兩個值之間;

格式:between 起始值 and 結束值

6. not,否定后面的操作

7. like或 not like 兩個操作符要使用包含通配符的字符串

通配符:

%:表示任意字符出現任意次數,可以放在任意位置

_:下劃線,用戶和%一樣,但是表示任意字符出現一次

格式:字段名 like '字符串'

%值% :包含值 %值:以值結尾的 值%:以值開頭的

D.?order by子句----對字段進行排序

格式1:order by 字段名[asc | desc]

注意:asc(默認排列順序)是升序排序,desc降序排序

格式2:order by 字段名1[asc | desc],字段名2[asc | desc]

注意:指的是字段名1完全相同的情況下按照字段名2進行排序

E.?limit 子句---限制結果集

格式1:limit m(返回多少行數據)

格式2:limit n,m

注意:1、n表示從多少行開始取值(第一條數據結果是從0開始 的),m表示返回的行數。

2、如果沒有足夠的行數,有多少行就顯示多少行。

E.?group by 子句--用于分組

格式1: group by 字段名(按照字段名進行分組)

格式2:group by 字段名?having?條件(按照分組完成之后的結果 再次進行過濾)

注意順序:select=>from=>where=>group by =>having=>order by =>limit

3)、修改數據:

update 數據表名 set 字段名1=值1,字段名2=值2.... where 字段名=值;

所有的班級是null的學員的班級設置為天庭 is null 是null的值會被選中

mysql> update stu set class = '天庭' where class is null;

4)、刪除數據:

delete from 數據表名 where 字段名=值

注意:1、一定要加上條件。2、在做大量的刪除之前,一般會將條件先進行測試,使用select先測試出要刪除的東西,然后再刪除。3、要刪除所有數據的時候不要使用delete而是使用 truncate table表名(他比delete要快,將表刪除,然后再重新建立)

6、對字段的操作

1)、更改字段

方法1:?alter table 數據表名 change 原字段名 新字段名 類型 約束條件

方法2:?alter table 數據表名 modify 字段名 類型 約束條件

注意:change可以修改字段名,modify不可以修改字段名

2)、添加字段

方法1:alter table 數據表名 add 字段名 類型 約束條件

方法2:alter table 數據表名 add 字段名 類型 約束條件 first 放在最前面

方法3:alter table 數據表名 add 字段名 類型 約束條件 after 放在哪個字段名后面

3)、刪除字段

alter table 數據表名 drop 字段名

4)、修改數據表名

alter table 數據表名 rename as 新表數據名

7、索引的分類:

顯示所有的索引

mysql> show indexes from test\G

1)、常規索引(index),最基本的索引,沒有任何限制

A. 1-創建索引:

create table 表名(

字段.....,

index 索引名 (要索引的字段)

);

2--數據表已經創建的情況下:

create index 索引名 on 數據表名(要加索引的字段);

B. 刪除索引:

drop index 索引名 on 數據表名

alter table test(表名) drop index username;(索引名)

C.刪除主鍵索引時,該字段不能是自增

mysql> alter table demo drop primary key;

2)、唯一索引(unique)--索引列里面的值必須是唯一的,允許有空值

A .1--創建索引:

create table 表名(

字段....,

unique 索引名(要索引的字段)

);

2--數據表已經創建的情況下:

create unique index 索引名 on 數據表名(要索引的字段)

B. 刪除索引:

drop index 索引名 on 數據表名

3)、主鍵索引(primary key)?一個表只能有一個主鍵

A. 1--創建索引:

create table 表名(

id int unsigned auto_increment primary key,

name char(32)

);

B. 刪除索引:

alter table 表名 drop primary key

注意:如果主鍵的字段上面有自增(auto_increment)需要先將auto_increment去掉,再刪除。

alter table 表名 change 自增的列 自增的列 類型

8、1) 默認情況下,創建表的時候不指定表的存儲引擎,將使用默認的存儲引擎。

show variables like 'default_storage_engine';

2)查看當前數據庫支持的存儲引擎

show engines;

3) 數據表定義存儲引擎

mysql> create table t2(

-> id int unsigned auto_increment primary key,

-> name char(32)

-> )engine=myisam;

9、數據類型

整型-- int tinyint 浮點型-- float(M,D) double(M,D) 定點型-- decimal(M,D)

字符串-- char(M) varchar(M) text blod 日期--時間戳 枚舉型--enum 集合類型--set

10、約束條件(通用)

1)、null---字段中沒有插入值時,默認為null。

not null--必須在插入值時,在該字段中插入一個值。如果不插入值那么為”空“

2)、default 值 在不插入該字段時默認插入的值。

11、 整型的約束條件:

1)、zerofill表示0填充。一般和整型后面設定的寬度一起使用,如果數值長度小于指定的長度那么將會在前面補充相對應的0進行填充。

2)、unsigned(無符號)如果要在字段里面保存非負數,或者較大上限的值時可使用該約束條件,將從0開始,需要在字段類型后面緊跟著定義unsigned。

3)、auto_increment,自增,在產生一個唯一的標識或順序值的時候,可以利用這個約束條件。這個約束條件只能用于整數類型,值一般從1開始。每行加1,插入一個null到一個auto_increment列時,MySQL將插入一個比出現過的最大值+1的值。一個表中只能有一個auto_increment列,并且必須定義為primary key或unique才能夠使用。

12、統計查詢

1)、count()用來進行計數。

獲取該表中一共有多少條數據

mysql> select count(*) from test

count(*)數據行的條數。

count(字段名) 來進行統計,但是它只會統計全體非null值的個數。

2)、min()最小值

3)、max()最大值

4)、sum()和

5)、avg()平均數 計算的時候不會將null的列計算在內

13、完全限定

select 表名.字段名 from 庫名. 表名

14、起別名

字段名和表名都可以起別名 as

select count(*) as 別名 from 表名;

15、?拼接字段

concat(字段,字段)

16、關聯查詢

1、找關系

2、就先寫出 select * from 表1,表2

3、 寫where 條件

4、將*替換成你想要的數據

17、子查詢----在查詢里面再包含一個查詢

注意:子查詢總是從內向外進行處理.實際上他執行了2個SQL語句

1)、select name,(select name from level where user.level=level.id) from user;

2)、后置用法:當作條件來用

現在我要找出所有翠紅樓里面管理層人員。

mysql> select name from user where level in (select id from level where name in( '翠紅樓老鴇','翠紅樓龜公','翠紅樓老板'));

18、導出mysql數據庫

1)、導出數據庫及里面的結構和數據:C:\Documents and Settings\admin>mysqldump -u root -p lamp > C:\xampp\htdocs\test.sql

2)、導出指定庫里面的表 C:\Documents and Settings\admin>mysqldump -uroot -p lamp test> C:\xampp\ht docs\test1.sql

3)、導出數據庫的結構的:mysqldump -u 用戶名 -p -d 數據庫名 > 導出的文件名

4)、導出指定庫的指定表的結構:mysqldump -u 用戶名 -p -d 數據庫名 表名 > 導出的文件名

19、導入數據庫

1)、在退出數據庫的情況下 mysql -u 用戶名 -p 數據庫名 < 數據庫文件

2)、在進入到數據庫并且選中的情況下 source 數據庫文件

20、修改密碼

1、C:\Documents and Settings\admin>mysqladmin -u root -p password 要設置的密碼

2、set password for '用戶名'@'登錄主機'=password('新密碼');

21、mysql忘記密碼

步驟:

1、關閉正在運行的MySQL

2、打開dos跳轉到mysql的bin目錄下

C:\Documents and Settings\lgzhyan>cd C:\xampp\mysql\bin

3、輸入C:\xampp\mysql\bin>mysqld --skip-grant-tables

4、再打開一個窗口進入到mysql的bin目錄下

5、輸入mysql回車,這個時候可以使用root的身份強行進去。

6、進入到mysql這個庫 use mysql

7、update user set password=password('新密碼') where user='root'

8、刷新權限 flush privileges

22、刪掉匿名用戶

drop user ''@'localhost';

23、退出MySQL?1)、quit 2)、exit 3)、\q

24、常見的一些操作

\g 可以代替分號。

\c 取消未完成的操作。

-b 關閉蜂鳴器

-P 端口號

’回車

\G 讓數據豎起來

25、進入數據庫服務器在不選擇數據庫的情況下選擇lamp庫中的goods表中的所有數據

mysql> select * from lamp.goods;

26、PHP連接數據庫步驟:

1)、連接數據庫

mysql_connect('主機','賬號','密碼');

2)、選擇數據庫作為默認的數據庫

mysql_select_db('數據庫名');

mysql_error(); //檢查上一步執行的MySQL的錯誤

3)、 設置字符集

mysql_set_charset('utf8');

做項目的時候亂碼的解決方法:

1、頁面的存儲字符集是否為UTF-8

2、瀏覽器是否解析為utf-8字符集 header() <meta />

3、是否設置了連接數據庫的字符集

4、數據庫的存儲字符集是否設置了utf8 default charset=utf8

4)、執行SQL語句

mysql_query(SQL語句);

5)、處理結果

一種是有結果集(select,desc)

mysql_fetch_row($reuslt);//得到的將是一個索引數組

mysql_fetch_assoc($result);//得到的將是一個關聯數組

mysql_fetch_array($result);//將得到的是一個關聯和索引數組

注意:結果集里面的數據使用上面的函數一次只能拿出來一條,沒有的時候將會返回false。

一種是沒有結果集(insert\delete\update)

mysql_affected_rows();//取得前一次 MySQL 操作所影響的記錄行數

6)、關閉資源

mysql_close();

其他的函數:

mysql_num_rows('結果集的資源'); //返回總共獲取到了多少跳數據

mysql_insert_id();//取得了上次insert操作所產生的自增id

授權

mysql> grant all on lamp.* to 'zhangsan@'192.168.141.249' identified by '123456';

刷新權限

mysql> flush privileges;

移除create 權限

mysql> revoke create on lamp.* from 'haha'@'localhost';

移除權限 revoke 權限 on 數據庫名.數據表名 from '用戶名'@'登錄主機'

mysql> revoke select on lamp.* from 'haha'@'localhost';

刪除用戶

刪除mysql數據庫下的user表中 user='haha'

mysql> delete from mysql.user where user = 'haha';

查詢當前stu表中所有的索引

mysql> show indexes from stu\G

數據定義語言(DDL):定義和管理數據對象,比如建立數據庫、數據表

數據操作語言(DML):用于操作數據庫對象中的包含的數據。

數據查詢語言(DQL):用于查詢數據庫對象中包含的數據,能夠對表進行查詢。

數據控制語言(DCL):管理數據庫的語言。

2、進入數據庫的方式

開始-》運行-》cmd-》mysql -u root -p

Mysql -h 主機地址 -u 用戶名 -p

Mysql -h localhost -u root -p

3、數據庫的操作:

a.創建數據庫?create database 數據庫名;

b.查看所有的數據庫?show databases;

c.選擇數據庫?use 數據庫名;

d.查看自己選擇的數據庫?select database();

e.刪除數據庫?drop database 數據庫名;

如果不存在則創建:create database if not exists 庫名

如果不存在則創建并設置字符集:

Create database if not exists 數據庫名 default charset utf8

4、數據表的操作:

a.查看數據庫中的數據表:?show tables;

b.創建數據表::create table 數據表名;

c.查看數據表的結構:?desc 數據表名;

describe stu 描述表結構

【DESCRIBE TABLE 用于列出指定表或視圖中的所有列

DESCRIBE INDEXFOR TABLE 用于列出指定表的所有索引。

所以 DESCRIBE是用來顯示數據結構信息的

而desc是descend ,是用于查詢出結果時候對結果進行排序,是降序排序】

d.查看創建數據表的語句:show create table 數據表名;

e.刪除數據表:drop table 數據表名;

F.如果存在則刪除drop database if exists lamp

5、數據的操作:

1)、插入數據:

方法1:插入指定的字段:

insert into 數據表名(字段名1,字段名2....) values(值1,值2....);

方法2:插入所有字段:

insert into 數據表名 values(值1,值2,值3....)

方法3:插入多條語句:

insert into 數據表名 (字段名1,字段名2....) values (值1,值2),(值3,值4),........;

方法4:插入單條語句:

insert into 數據表名 set 字段名1 = 值1,字段名2 = 值2....

方法5:插入某些查詢的結果:

insert into 數據表名(字段名1,字段名2....) select 字段名1, 字段名2.....from 數據表名;

2)、查看數據:

方法1:select 字段名1,字段名2,字段名3.... from 數據表名

方法2:select * from 數據表名

A.?select主句

查詢當前的數據庫 select database();

查詢版本 select version();

select 1 + 2;

B.?from子句--從指定的數據表里面查找數據

select 字段名1,字段名2,字段名3.... from 數據表名

select * from 數據表名

C.?where子句--查詢數據的條件(可選)

select語句里面使用where子句指定過濾條件。 where條件中可以用:

1. 算數運算符(+ - * / %)

2 比較運算符( < >= > <= != =)

3. 邏輯運算符(not and or )

4. in操作符,指定條件范圍,范圍中的每個條件都可以進行匹配;

格式:in(值1,值2.....)

5. between操作符,在指定的兩個值之間;

格式:between 起始值 and 結束值

6. not,否定后面的操作

7. like或 not like 兩個操作符要使用包含通配符的字符串

通配符:

%:表示任意字符出現任意次數,可以放在任意位置

_:下劃線,用戶和%一樣,但是表示任意字符出現一次

格式:字段名 like '字符串'

%值% :包含值 %值:以值結尾的 值%:以值開頭的

D.?order by子句----對字段進行排序

格式1:order by 字段名[asc | desc]

注意:asc(默認排列順序)是升序排序,desc降序排序

格式2:order by 字段名1[asc | desc],字段名2[asc | desc]

注意:指的是字段名1完全相同的情況下按照字段名2進行排序

E.?limit 子句---限制結果集

格式1:limit m(返回多少行數據)

格式2:limit n,m

注意:1、n表示從多少行開始取值(第一條數據結果是從0開始 的),m表示返回的行數。

2、如果沒有足夠的行數,有多少行就顯示多少行。

E.?group by 子句--用于分組

格式1: group by 字段名(按照字段名進行分組)

格式2:group by 字段名?having?條件(按照分組完成之后的結果 再次進行過濾)

注意順序:select=>from=>where=>group by =>having=>order by =>limit

3)、修改數據:

update 數據表名 set 字段名1=值1,字段名2=值2.... where 字段名=值;

所有的班級是null的學員的班級設置為天庭 is null 是null的值會被選中

mysql> update stu set class = '天庭' where class is null;

4)、刪除數據:

delete from 數據表名 where 字段名=值

注意:1、一定要加上條件。2、在做大量的刪除之前,一般會將條件先進行測試,使用select先測試出要刪除的東西,然后再刪除。3、要刪除所有數據的時候不要使用delete而是使用 truncate table表名(他比delete要快,將表刪除,然后再重新建立)

6、對字段的操作

1)、更改字段

方法1:?alter table 數據表名 change 原字段名 新字段名 類型 約束條件

方法2:?alter table 數據表名 modify 字段名 類型 約束條件

注意:change可以修改字段名,modify不可以修改字段名

2)、添加字段

方法1:alter table 數據表名 add 字段名 類型 約束條件

方法2:alter table 數據表名 add 字段名 類型 約束條件 first 放在最前面

方法3:alter table 數據表名 add 字段名 類型 約束條件 after 放在哪個字段名后面

3)、刪除字段

alter table 數據表名 drop 字段名

4)、修改數據表名

alter table 數據表名 rename as 新表數據名

7、索引的分類:

顯示所有的索引

mysql> show indexes from test\G

1)、常規索引(index),最基本的索引,沒有任何限制

A. 1-創建索引:

create table 表名(

字段.....,

index 索引名 (要索引的字段)

);

2--數據表已經創建的情況下:

create index 索引名 on 數據表名(要加索引的字段);

B. 刪除索引:

drop index 索引名 on 數據表名

alter table test(表名) drop index username;(索引名)

C.刪除主鍵索引時,該字段不能是自增

mysql> alter table demo drop primary key;

2)、唯一索引(unique)--索引列里面的值必須是唯一的,允許有空值

A .1--創建索引:

create table 表名(

字段....,

unique 索引名(要索引的字段)

);

2--數據表已經創建的情況下:

create unique index 索引名 on 數據表名(要索引的字段)

B. 刪除索引:

drop index 索引名 on 數據表名

3)、主鍵索引(primary key)?一個表只能有一個主鍵

A. 1--創建索引:

create table 表名(

id int unsigned auto_increment primary key,

name char(32)

);

B. 刪除索引:

alter table 表名 drop primary key

注意:如果主鍵的字段上面有自增(auto_increment)需要先將auto_increment去掉,再刪除。

alter table 表名 change 自增的列 自增的列 類型

8、1) 默認情況下,創建表的時候不指定表的存儲引擎,將使用默認的存儲引擎。

show variables like 'default_storage_engine';

2)查看當前數據庫支持的存儲引擎

show engines;

3) 數據表定義存儲引擎

mysql> create table t2(

-> id int unsigned auto_increment primary key,

-> name char(32)

-> )engine=myisam;

9、數據類型

整型-- int tinyint 浮點型-- float(M,D) double(M,D) 定點型-- decimal(M,D)

字符串-- char(M) varchar(M) text blod 日期--時間戳 枚舉型--enum 集合類型--set

10、約束條件(通用)

1)、null---字段中沒有插入值時,默認為null。

not null--必須在插入值時,在該字段中插入一個值。如果不插入值那么為”空“

2)、default 值 在不插入該字段時默認插入的值。

11、 整型的約束條件:

1)、zerofill表示0填充。一般和整型后面設定的寬度一起使用,如果數值長度小于指定的長度那么將會在前面補充相對應的0進行填充。

2)、unsigned(無符號)如果要在字段里面保存非負數,或者較大上限的值時可使用該約束條件,將從0開始,需要在字段類型后面緊跟著定義unsigned。

3)、auto_increment,自增,在產生一個唯一的標識或順序值的時候,可以利用這個約束條件。這個約束條件只能用于整數類型,值一般從1開始。每行加1,插入一個null到一個auto_increment列時,MySQL將插入一個比出現過的最大值+1的值。一個表中只能有一個auto_increment列,并且必須定義為primary key或unique才能夠使用。

12、統計查詢

1)、count()用來進行計數。

獲取該表中一共有多少條數據

mysql> select count(*) from test

count(*)數據行的條數。

count(字段名) 來進行統計,但是它只會統計全體非null值的個數。

2)、min()最小值

3)、max()最大值

4)、sum()和

5)、avg()平均數 計算的時候不會將null的列計算在內

13、完全限定

select 表名.字段名 from 庫名. 表名

14、起別名

字段名和表名都可以起別名 as

select count(*) as 別名 from 表名;

15、?拼接字段

concat(字段,字段)

16、關聯查詢

1、找關系

2、就先寫出 select * from 表1,表2

3、 寫where 條件

4、將*替換成你想要的數據

17、子查詢----在查詢里面再包含一個查詢

注意:子查詢總是從內向外進行處理.實際上他執行了2個SQL語句

1)、select name,(select name from level where user.level=level.id) from user;

2)、后置用法:當作條件來用

現在我要找出所有翠紅樓里面管理層人員。

mysql> select name from user where level in (select id from level where name in( '翠紅樓老鴇','翠紅樓龜公','翠紅樓老板'));

18、導出mysql數據庫

1)、導出數據庫及里面的結構和數據:C:\Documents and Settings\admin>mysqldump -u root -p lamp > C:\xampp\htdocs\test.sql

2)、導出指定庫里面的表 C:\Documents and Settings\admin>mysqldump -uroot -p lamp test> C:\xampp\ht docs\test1.sql

3)、導出數據庫的結構的:mysqldump -u 用戶名 -p -d 數據庫名 > 導出的文件名

4)、導出指定庫的指定表的結構:mysqldump -u 用戶名 -p -d 數據庫名 表名 > 導出的文件名

19、導入數據庫

1)、在退出數據庫的情況下 mysql -u 用戶名 -p 數據庫名 < 數據庫文件

2)、在進入到數據庫并且選中的情況下 source 數據庫文件

20、修改密碼

1、C:\Documents and Settings\admin>mysqladmin -u root -p password 要設置的密碼

2、set password for '用戶名'@'登錄主機'=password('新密碼');

21、mysql忘記密碼

步驟:

1、關閉正在運行的MySQL

2、打開dos跳轉到mysql的bin目錄下

C:\Documents and Settings\lgzhyan>cd C:\xampp\mysql\bin

3、輸入C:\xampp\mysql\bin>mysqld --skip-grant-tables

4、再打開一個窗口進入到mysql的bin目錄下

5、輸入mysql回車,這個時候可以使用root的身份強行進去。

6、進入到mysql這個庫 use mysql

7、update user set password=password('新密碼') where user='root'

8、刷新權限 flush privileges

22、刪掉匿名用戶

drop user ''@'localhost';

23、退出MySQL?1)、quit 2)、exit 3)、\q

24、常見的一些操作

\g 可以代替分號。

\c 取消未完成的操作。

-b 關閉蜂鳴器

-P 端口號

’回車

\G 讓數據豎起來

25、進入數據庫服務器在不選擇數據庫的情況下選擇lamp庫中的goods表中的所有數據

mysql> select * from lamp.goods;

26、PHP連接數據庫步驟:

1)、連接數據庫

mysql_connect('主機','賬號','密碼');

2)、選擇數據庫作為默認的數據庫

mysql_select_db('數據庫名');

mysql_error(); //檢查上一步執行的MySQL的錯誤

3)、 設置字符集

mysql_set_charset('utf8');

做項目的時候亂碼的解決方法:

1、頁面的存儲字符集是否為UTF-8

2、瀏覽器是否解析為utf-8字符集 header() <meta />

3、是否設置了連接數據庫的字符集

4、數據庫的存儲字符集是否設置了utf8 default charset=utf8

4)、執行SQL語句

mysql_query(SQL語句);

5)、處理結果

一種是有結果集(select,desc)

mysql_fetch_row($reuslt);//得到的將是一個索引數組

mysql_fetch_assoc($result);//得到的將是一個關聯數組

mysql_fetch_array($result);//將得到的是一個關聯和索引數組

注意:結果集里面的數據使用上面的函數一次只能拿出來一條,沒有的時候將會返回false。

一種是沒有結果集(insert\delete\update)

mysql_affected_rows();//取得前一次 MySQL 操作所影響的記錄行數

6)、關閉資源

mysql_close();

其他的函數:

mysql_num_rows('結果集的資源'); //返回總共獲取到了多少跳數據

mysql_insert_id();//取得了上次insert操作所產生的自增id

刷新權限

mysql> flush privileges;

移除create 權限

mysql> revoke create on lamp.* from 'haha'@'localhost';

移除權限 revoke 權限 on 數據庫名.數據表名 from '用戶名'@'登錄主機'

mysql> revoke select on lamp.* from 'haha'@'localhost';

刪除用戶

刪除mysql數據庫下的user表中 user='haha'

mysql> delete from mysql.user where user = 'haha';

查詢當前stu表中所有的索引

mysql> show indexes from stu\G

數據定義語言(DDL):定義和管理數據對象,比如建立數據庫、數據表

數據操作語言(DML):用于操作數據庫對象中的包含的數據。

數據查詢語言(DQL):用于查詢數據庫對象中包含的數據,能夠對表進行查詢。

數據控制語言(DCL):管理數據庫的語言。

2、進入數據庫的方式

開始-》運行-》cmd-》mysql -u root -p

Mysql -h 主機地址 -u 用戶名 -p

Mysql -h localhost -u root -p

3、數據庫的操作:

a.創建數據庫?create database 數據庫名;

b.查看所有的數據庫?show databases;

c.選擇數據庫?use 數據庫名;

d.查看自己選擇的數據庫?select database();

e.刪除數據庫?drop database 數據庫名;

如果不存在則創建:create database if not exists 庫名

如果不存在則創建并設置字符集:

Create database if not exists 數據庫名 default charset utf8

4、數據表的操作:

a.查看數據庫中的數據表:?show tables;

b.創建數據表::create table 數據表名;

c.查看數據表的結構:?desc 數據表名;

describe stu 描述表結構

【DESCRIBE TABLE 用于列出指定表或視圖中的所有列

DESCRIBE INDEXFOR TABLE 用于列出指定表的所有索引。

所以 DESCRIBE是用來顯示數據結構信息的

而desc是descend ,是用于查詢出結果時候對結果進行排序,是降序排序】

d.查看創建數據表的語句:show create table 數據表名;

e.刪除數據表:drop table 數據表名;

F.如果存在則刪除drop database if exists lamp

mysql數據庫-第一版(待更新)

轉載于:https://www.cnblogs.com/zhanghaiyang/p/7212798.html

總結

以上是生活随笔為你收集整理的Mysql学习总结(41)——MySql数据库基本语句再体会的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av精选| 成人在线国产 | 免费看片91 | 狠狠干精品 | 久久精品一 | 另类激情综合 | xxsm.com | 亚洲女优在线观看 | 免费麻豆视频 | 亚洲一区精品视频 | 精品一区二区视频 | 先锋av资源在线 | 国产一区久久 | いいなり北条麻妃av101 | 最新中文字幕av | 97久久人澡人人添人人爽 | 我要色综合网 | 国产在线精品一区二区三区 | 久久久久久久久91 | 男女一级黄色 | 伊人精品久久 | 男女啪啪十八 | 性生交大片免费看女人按摩 | 99小视频 | 91伦理| 九九热国产精品视频 | 日日噜噜噜夜夜爽爽狠狠 | 日韩欧美国产中文字幕 | 精品免费 | 四虎影视在线播放 | a在线视频 | 精品国产一区二区三区性色 | 亚洲免费不卡视频 | 插插网站 | 伊人网伊人影院 | 色综合视频在线 | 国产不卡av在线播放 | 亚洲天堂va | 人人综合| 欧美在线观看www | 中文字幕人妻伦伦 | av看片在线| 欧美日韩成人一区二区 | 国产一区二区三区影视 | youjizz.com最新 | 国产精品电影一区 | 色福利hd写真video | 岛国片免费在线观看 | 日本伊人影院 | 强伦人妻一区二区三区 | 免费小视频在线观看 | 久久精品欧美一区 | www成人| 国产精品久久久久久久午夜 | 色先锋av | 国产91在线视频 | 久久精品aⅴ无码中文字字幕重口 | 中国二级毛片 | 富婆如狼似虎找黑人老外 | 教练含着她的乳奶揉搓揉捏动态图 | 亚洲视频黄色 | 一级中文字幕 | 欧美日韩 一区二区三区 | 在线观看日韩中文字幕 | 国精产品一区一区三区视频 | 风流老熟女一区二区三区 | 国产精品网站在线观看 | 天天爱天天舔 | 国产极品尤物 | 琪琪av在线 | 五月激情视频 | 国语对白真实视频播放 | 亚洲AV成人无码久久精品巨臀 | 双性皇帝高h喷汁呻吟 | 超碰资源在线 | 美女在线不卡 | 91文字幕巨乱亚洲香蕉 | 欧美视频在线观看免费 | 日本中文字幕免费 | 精品少妇theporn| 四虎成人精品在永久免费 | 国产精品88| 欧美日韩一区电影 | 黄色网址在线看 | 日韩国产在线一区 | 国产一区二区三区免费视频 | 久久久精品在线 | 成人一二区 | 成人午夜精品无码区 | 日韩精品第三页 | 日本亚洲综合 | 国产欧美日韩一区二区三区 | 免费午夜影院 | 饥渴少妇勾引水电工av | 亚洲黄a| 91在线高清 | 亚洲一区二区三区欧美 | 一区二区三区免费看 | 男女互操视频 |