MySQL就是数据库,主要用来存储一些数据。因为MySQL是免费的、开源的,因此常用于一些中小型网站的开发与维护更新。
数据库里常放有多个数据表,即数据库中的table.
下面是一些常用的方法:
首先,要查看一下有几个数据库:show databases;
如果没有自己要使用的数据库,就自己在创建一个数据库,创建方法:create database [数据库名];创建一个数据库db2指定字符编码, 校对规则
create database db2 character set utf8 collate utf8_bin;
若有则打开,使用该库,使用方法:use [数据库名];
打开要使用的数据库后,查看一下该数据库中的表:show tables;
将db2的字符编码设置为gbk: alter database db2 character set gbk;
删除数据库db:drop database [数据库名]
下面就说一下表,表示存在于数据库中的,因此,表必须在一个库中建立,不能脱离库的存在。首先打开自己要存入的数据库:use [数据库名],然后开始建表:
如:创建表db1,并设置其int型的主键 id,定义一个字符类型的name不能为空,和一个字符类型的major:
Create table db1(id int not null aotu_increment primary key,name varchat(20) mot null,major char(30) );
刚才用到了char和varchar两种定义字符串长度的不同方法,那么他们究竟有什么区别呢?下面就是二者之间的关系,以及各自的特点:CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:
CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。
varchar类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为varchr类型的字段时,将不会用空格填补
查看所有表
SHOW TABLES;
查看表的创建语句
SHOW CREATE TABLE 表名;
显示表结构
DESC 表名;
修改表名
RENAME TABLE 原表名 TO 新表名;
修改字符集
ALTER TABLE 表名 CHARACTER SET 字符集名;
删除表
DROP TABLE 表名;
列就是表中的一个字段,现在就来说一下列的兼建起了,
• BLOB和TEXT类型
BLOB是二进制大对象,如果想存储二进制数BLOB将是最佳选择,而TEXT与之相同,只是BOLB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。
• ENUM 和SET类型
是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(
追加列
ALTER TABLE 表名 ADD 列名 类型[,列名 类型][,列名 类型]...;
修改列类型
ALTER TABLE 表名 MODIFY 列名 类型[,列名 类型][,列名 类型]...;
修改列
ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 类型;
删除列
ALTER TABLE 表名 DROP 列名;
插入
语法:
INSERT INTO 表名[(列名[,列名]...)] VALUES(值[,值]...);
注意事项:
插入值类型必须与对应列的数据类型一致
数据不能超出长度
插入值得为之必须与列名顺序一致
字符和日期数据要放在单引号中
插入空值使用null
如果不指定插入哪一列, 就是插入所有列
中文数据
由于默认码表是utf8, 而cmd.exe的码表是gbk, 在插入中文数据的时候会报错, 所以我们需要修改客户端码表
先查看系统变量: SHOW VARIABLES LIKE 'character%';
修改客户端码表: SET character_set_client=gbk;
这样就解决了中文插入的问题, 但在查询数据的时候仍然显示为乱码, 这是因为mysql向cmd传输数据的时候使用的是utf8
修改输出数据的码表: SET character_set_results=gbk;
向user表中插入3条包含中文的数据
insert into user(id,username,gender,birthday,entry_date, position,salary,resume)
values(1,'张三','男','1990-9-9', ‘2001-3-3’,'程序员',6000,'介绍');
insert into user(id,username,gender,birthday,position,salary,resume)
values(2,'李四','男','1990-9-9','程序员',6000,'介绍');
insert into user(id,username,gender,birthday,position,salary,resume)
values(3,'王五','男','1990-9-9','测试',6000,'介绍');
insert into user(id,username,gender,birthday,position,salary,resume)
values(4,'赵六','男','1990-9-9','美工 ',6000,'介绍');
修改
语法
UPDATE 表名 SET 列名=值[,列名=值]...[WHERE 条件语句];
注意事项
WHERE子句选择满足条件的行进行更新, 如果不写, 则更新所有行
如:
将所有员工的薪水改为5000
将姓名为张三的员工薪水改为7000
给李四加薪3000, 并且职位改为经理
删除
语法
DELETE FROM 表名 [where 条件语句]
注意事项
如果不加where子句, 将删除表中所有记录
delete只能用作删除行, 不能删除某一列的值, 需要用update
在delete和update的时候需要注意表与表之间的关联关系
删除表中所有数据可以使用: TRANCATE 表名, 这种方式会删除旧表重新创建, 在数据较多的时候使用
练习
删除所有美工
删除表中所有数据
备份恢复数据库
备份数据库
输入quit退出mysql, 在cmd.exe中输入:
mysqldump –u用户名 –p密码 数据库名 > 文件名
恢复数据库
进入mysql.exe之后, 使用数据库之后
source 文件名
练习:
备份指定数据库, 删除数据库, 恢复