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。
<>, !=
不等于,檢測兩個值是否相等,如果不相等傳回true
(a != b) 傳回 true。
>
大于号,檢測左邊的值是否大于右邊的值, 如果左邊的值大于右邊的值傳回true
(a > b) 傳回false。
<
小于号,檢測左邊的值是否小于右邊的值, 如果左邊的值小于右邊的值傳回true
(a < b) 傳回 true。
>=
大于等于号,檢測左邊的值是否大于或等于右邊的值, 如果左邊的值大于或等于右邊的值傳回true
(a >= b) 傳回false。
<=
小于等于号,檢測左邊的值是否小于于或等于右邊的值, 如果左邊的值小于或等于右邊的值傳回true
(a <= 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>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 資料庫名稱 > 備份檔案.sql
恢複:mysql -u 使用者名 -p 資料庫名稱 < 備份檔案.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;