天天看點

mysql資料庫

1、mysql資料庫語言基礎

檢視mysql資料庫的版本号:show version();

sql (structured query language) 結構化查詢語言

庫的操作:

檢視:show databases;

切換:use dataname;

建立:create database dataname;

删除:drop database dataname;

表的操作:

建立:create tables table_name ( column_name column_type);

删除:drop table table_name;

表名重命名:alter table table_name rename new_name;

向表中添加列:alter table table_name add link varchar(100);

删除表中一列:alter table table_name drop column link;

修改一個列的資料類型:alter table table_name modify link varchar(100);

重命名一個列:alter table table_name change column  old_link new_link varchar(100);

插入資料:insert into table_name ( field1, field2,...fieldn )

                      values

                      ( value1, value2,...valuen );

查詢:select column_name,column_name

from table_name

[where clause]

[offset m ][limit n]

where子句

select field1, field2,...fieldn from table_name1, table_name2...

[where condition1 [and [or]] condition2.....

操作符

<col>

描述

執行個體

=

等号,檢測兩個值是否相等,如果相等傳回true

(a = b) 傳回false。

&lt;&gt;, !=

不等于,檢測兩個值是否相等,如果不相等傳回true

(a != b) 傳回 true。

&gt;

大于号,檢測左邊的值是否大于右邊的值, 如果左邊的值大于右邊的值傳回true

(a &gt; b) 傳回false。

&lt;

小于号,檢測左邊的值是否小于右邊的值, 如果左邊的值小于右邊的值傳回true

(a &lt; b) 傳回 true。

&gt;=

大于等于号,檢測左邊的值是否大于或等于右邊的值, 如果左邊的值大于或等于右邊的值傳回true

(a &gt;= b) 傳回false。

&lt;=

小于等于号,檢測左邊的值是否小于于或等于右邊的值, 如果左邊的值小于或等于右邊的值傳回true

(a &lt;= b) 傳回 true。

更新:update table_name set field1=new-value1, field2=new-value2

like子句:select field1, field2,...fieldn table_name1, table_name2...

where field1 like condition1 [and [or]] filed2 = 'somevalue'

删除:delete from table_name [where clause]

排序:select field1, field2,...fieldn table_name1, table_name2...

order by field1, [field2...] [asc [desc]]

mysql 資料類型(數值、日期時間、字元串):

數值類型:

類型

大小

範圍(有符号)

範圍(無符号)

用途

tinyint

1 位元組

(-128,127)

(0,255)

小整數值

smallint

2 位元組

(-32 768,32 767)

(0,65 535)

大整數值

mediumint

3 位元組

(-8 388 608,8 388 607)

(0,16 777 215)

int或integer

4 位元組

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

bigint

8 位元組

(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

極大整數值

float

(-3.402 823 466 e+38,1.175 494 351 e-38),0,(1.175 494 351 e-38,3.402 823 466 351 e+38)

0,(1.175 494 351 e-38,3.402 823 466 e+38)

單精度

浮點數值

double

(1.797 693 134 862 315 7 e+308,2.225 073 858 507 201 4 e-308),0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)

0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)

雙精度

decimal

對decimal(m,d) ,如果m&gt;d,為m+2否則為d+2

依賴于m和d的值

小數值

日期和時間類型:

(位元組)

範圍

格式

date

3

1000-01-01/9999-12-31

yyyy-mm-dd

日期值

time

'-838:59:59'/'838:59:59'

hh:mm:ss

時間值或持續時間

year

1

1901/2155

yyyy

年份值

datetime

8

1000-01-01 00:00:00/9999-12-31 23:59:59

yyyy-mm-dd hh:mm:ss

混合日期和時間值

timestamp

1970-01-01 00:00:00/2037 年某時

yyyymmdd hhmmss

混合日期和時間值,時間戳

字元串類型

char

0-255位元組

定長字元串

varchar

0-65535 位元組

變長字元串

tinyblob

不超過 255 個字元的二進制字元串

tinytext

短文本字元串

blob

0-65 535位元組

二進制形式的長文本資料

text

長文本資料

mediumblob

0-16 777 215位元組

二進制形式的中等長度文本資料

mediumtext

中等長度文本資料

longblob

0-4 294 967 295位元組

二進制形式的極大文本資料

longtext

極大文本資料

2、mysql資料使用者

建立一個新的使用者:cteate user 使用者名 identified by '密碼'

删除使用者:drop user 使用者名:

重命名使用者名:rename user 原使用者名 to 新使用者名;

修改目前使用者密碼:set password=passowrd('新密碼');

修改指定使用者密碼:set password for 使用者名=password('新密碼');

3、mysql權限管理

mysql權限控制系統控制一個使用者是否能進行連接配接,以及連接配接以後能夠針對哪些對象進行什麼樣的操作

mysql權限控制兩個階段

1、檢查使用者是否能夠連接配接mysql

2、檢查使用者是否具有所執行動作的權限

mysql權限層級

1、全局層級

2、資料庫層級

3、表層級

4、列層級

5、子程式層級

授予一個使用者權限

grant all privileges on 層級 to 使用者名@主機 identified by 密碼

撤銷一個使用者權限

revoke all  privileges from 使用者名;

主機 (可以使用的形式)

1、所有主機 %

2、精确的主機或ip位址: www.it-team.cn  或 120.26.119.66

3、使用 * 通配符   *.it-team.cn

4、指定一個網段: 192.168.1.0/255.255.255.0

4、mysql備份恢複

mysql使用mysqldump工具備份恢複 (備份出來的是純文字的sql檔案,可以修改後作為其他資料庫使用)

備份:mysqldump -u 使用者名 -p  資料庫名稱  &gt; 備份檔案.sql

恢複:mysql -u 使用者名  -p    資料庫名稱 &lt; 備份檔案.sql

資料庫的編碼  

編碼主要影響:1、資料庫儲存相同内容所占用的空間大小

2、資料庫與用戶端通信

mysql 資料庫的預設編碼是 latin1  可以通過修改配置檔案編碼格式

檢視目前編碼:

show variables like 'character_set%';

show variables like 'collation%’

檢視支援編碼指令   show character set;

建立資料庫指定編碼:

create database 資料庫名

default character set utf8

default collate  utf8_general_ci;

修改一個資料庫的編碼

alter database  資料庫名 character set utf8 collate  utf8_general_ci;

繼續閱讀