数据库是保存有组织的数据的容器(实体),但我们一般说的数据库是指数据库管理系统,比如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% ;