數據庫是保存有組織的數據的容器(實體),但我們一般說的數據庫是指數據庫管理系統,比如mysql,oracle等。學習使用數據庫的技術,從對它的操作開始。這篇博文,介紹的是mysql下的一些基本操作。
基本操作
進入mysql數據庫,然後根據提示輸入密碼:
mysql -h x.x.x.x -u root -p ## 也可以直接將密碼緊跟着p後面輸入
查看mysql中可用的數據庫列表:
SHOW databases ;
進入(打開)數據庫:
use db_test
查看數據庫內可用表的列表:
SHOW tables ;
查看錶結構:
desc tb_test ;
創建table,並增加、修改表的列:
CREATE TABLE tb_user(
id int(10) NOT NULL,
name varchar(20) NOT NULL
);
ALTER TABLE tb_user
ADD age int(3) DEFAULT '0';
## 修改表中的列。增加字段用'add',刪除用'drop'。
(查)select 語句:
select * from tb_test; ## 顯示整張表的內容,分號前加上'limit 1'可以只顯示首行。
select * from tb_test where name=""; ## 使用'where'子句限定要查找的行。其他還有,'order by'子句進行排序。
創建database,可以指定數據庫字符集:
CREATE DATABASE db_test ; ## 分號前添加'default character set utf8 collate utf8_general_ci'
(增、刪)向表格中插入、刪除行:
insert into 數據庫表名(列名1,列名2,列名3)value('值1','值2','值3');
## VALUES中非數值類型的數據,都建議加上單引號修飾。
delete from 數據庫表名 where xx = yy ;
## 使用where子句限定要刪除的行。注意,數據庫表是由列組成,按行存儲、操作的。
(改)update 表格中數據:
update 表名稱 set 字段名 = '新值' where id = '';
### 注意如果不用where子句進行限定,則會修改該列所有的值。一定要 謹慎操作。
查看數據庫用戶和時間:
select user();
select now() ;
查看用戶權限:
show grants ;
show grants for root;
技戰法
1.設置數據庫時區(需退出重新登錄):
set global time_zone = '+8:00';
flush privileges;
2.從mysql中導出數據到指定目錄:
show variables like "%secure%" ;
select * from tb_test into outfile "/var/lib/mysql-files/t1.abc";
### information_schema中的columns表,記錄所有表的字段信息。根據table_name檢索column_comment。
select column_name from information_schema.columns where table_name =" ";
3.使用LIKE操作符與SQL通配符:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern ;
### 這裏的 pattern,比如以.txt什麼結尾寫成"%.txt";包含字母a或b寫成'[ab]'。
通配符 | 描述 |
---|---|
% | 替代一個或多個字符 |
_ | 僅替代一個字符 |
[charlist] | 字符列中的任何單一字符 |
[!charlist] | 不在字符列中的任何單一字符 |
4.備份恢復數據庫:
mysqldump -u root -p --all-databases > mysql_bak_0607.sql
mysqldump -u root -p --databases db_test> mysql_bak_0607_01.sql
mysql -u root -p < mysql_bak_0607.sql
使用 --all-databases 和–databases 參數備份的數據庫在導入時無需特別指定數據庫名,建議如此操作。
也可使用數據庫工具Navicat,選中數據庫後點 backup–> New Backup–> start–> save。
5.字符集相關:
查看MySQL數據庫服務器和數據庫字符集 show variables like '%char%';
查看錶的字符集 show table status from mysql_db like '%tb_name%'
查看錶中所有列的字符集 show full columns from tb_name;
查看mysql所支持的字符集 show charset;
6.修改字段中的一部分字符串
update t_table set t_field = replace(t_field,'old','new') where t_field like %old% ;