MySQL命令行数据操作使用心得(总结版)
Char 0~255
Varchar 0~65535
text 0~65535(只能保存字符)
Longtext 0~4294967295(只能保存字符)
CMD登陆mysql
mysql -u root -p
mysql -P 3306 -uroot -p123456 (-P必须大写表示端口)
1,数据库操作databases
创建数据库
create database
显示数据库
show databases
删除数据库
drop database <数据库名>
连接数据库
Use <数据库名>
查看当前使用的数据库
select database()
显示当前数据库信息
Show tables
导入sql数据库
mysql -u root -p creat 数据库名 //先创建一个同名数据库
mysql -u root -p 数据库名 <数据库本地地址
use 数据库名 //更新数据库
show table //显示新的导入表
导入.sql文件命令(例如d:/mysql.sql)
use database;
source d:/mysql.sql;
导入导出数据库(解决编码问题)
mysql -uroot -p--default-character-set=utf8 joke<c:/joke.sql
mysqldump –uroot –p joke table>joke.sql
导出(备份)数据库
mysqldump -u root -p 数据库名>c:/文件名.sql
2,表操作table
建立表
命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));
mysql> create table classify(
->title varchar(100) primary key,content longtext,author longtext,board lon
gtext,datatype longtext);
获取表结构
describe myclass
desc MyClass;
更改表名
rename table 原表名 to 新表名
删除表
drop table <表名>
清空表
delete from 表名
插入表中记录
往表 MyClass中插入二条记录, 这二条记录表示:
编号为1的名为Tom的成绩为96.45
编号为2 的名为Joan的成绩为82.99
编号为3 的名为Wang的成绩为96.5.
insert into MyClassvalues(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
insertinto 表名 values("hyq","M");
更新表中数据
update MYTABLE set sex="f" wherename='hyq';
用文本方式将数据装入数据库表中(例如d:/mysql.txt)
load data local infile "d:/mysql.txt" intotable mytable;
删除表中数据
delete from 表名where 表达式
delete from MyClass where id=1;
MySQL批量替换指定字段字符串语句
UPDATE 数据表名 SET 字段名 = replace(字段名, '要替换的字符串', '替换为') WHERE 设定条件;
update xxx set column = repalce(column,chr(ascii),''); //oracle
update jo1 set 内容=replace(内容,char(13)+char(10),''); //回车+换行
3,字段操作
在表中增加字段:
alter table 表名add字段 类型 其他;
例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
alter table MyClass add passtest int(4) default '0' //其中4可以省略,长度默认为11
删除字段
alter table 表名 drop column 字段名
更新字段内容
update 表名set 字段名 = 新内容
update 表名set 字段名 = replace(字段名,'旧内容','新内容');
文章前面加入4个空格
update article set content=concat(' ',content);
修改字段类型
alter table forum alter column column_name new_data_type
4,索引
提高检索、查询速度;创建维护费时间,占用物理空间,影响插入记录的速录。(解决:先删除索引再插入记录)
建立索引
Create table index1(index(id));
er table forum alter column column_name new_data_type
5,查询操作
查询表
select * from MyClass;
查询前几行数据
select * from MyClass order by id limit 0,2;
查询表中数据总数
select count(*) from table
字段类型
1.INT[(M)] 型:正常大小整数类型
2.DOUBLE[(M,D)][ZEROFILL] 型: 正常大小(双精密)浮点数字类型
3.DATE 日期类型:支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
5.BLOB TEXT类型,最大长度为65535(2^16-1)个字符。
6.VARCHAR型:变长字符串类型
查看mysql版本
Select @@Version
查看mysql默认编码
showvariables like 'character%';
showvariables like "character%";
..
设置MySQL编码
MySQL(版本是5.1.22)支持多种编码格式,并且可以在多个级别上设置不同的编码格式。
- 服务器级:在安装MySQL时可以设置服务器的默认编码格式
- 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如:default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart - 数据库级:在创建数据库时可以指定数据库的编码格式,如果不指定,则默认继承服务器的编码格式。示例如下:
CREATEDATABASE db_name DEFAULT CHARACTER SET utf8;
- 表级:在MySQL中可以对同一个数据库中表指定不同的编码格式,如果不指定将继承数据库的编码格式。示例如下:
CREATETABLE `db_name`.`tb_name`( id VARCHAR(20)NOTNULL, name VARCHAR(20) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 列级:另外还可以对同一个表中的不同列指定不同的编码格式,示例如下:
CREATETABLE `db_name`.`tb_name`( id varchar(20)NOTNULL, name varchar(20) CHARACTER SET utf8);
制定编码方式的一个好处是,增强对中文的处理,可解决表中部分中文字段内容在不同工具下乱码的问题
1.具体查询
SELECT content FROM forum
WHERE content='缩小贫富差距,是一个纠结的课题,怎么缩?关键是收入分配。话语权大的利益群众,收入分配明显偏高,导致收入差距拉大'
2.仔细搜索
SELECT content,
DATE,
url,
id,
ObjectKey,
RobotName,
ExecutionId,
FirstExtracted,
LastExtracted,
ExtractedInLastRun,
LastUpdated,
num
FROM aeolus.forum WHERE id='哄旗飞舞'
3.模糊查询
SELECT 字段 FROM 表
WHERE 字段 LIKE'我%'
4.模糊删除
DELETE FROM aeolus.forum WHEREid LIKE '%' ;
CRLF –
Carriage-Return Line-Feed回车换行 回车(CR, ASCII 13, \r) 换行(LF, ASCII 10, \n)