数据库基础
1.1链接服务器
cmd下输入
mysql -h 127.0.0.1 -p 3306 -u root -p
注意 如果没有写 -h 127.0.0.1 默认链接本地 如果没有写-p 3306 默认是链接3306端口号
1.2 服务器,数据库,表关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器、数据库和表的关系如下:
1.3存储引擎
1.31什么数据库引擎
存储引擎是:数据库管理系统如何存储数据,如何为数据库建立索引和如何更新、查询数据等技巧。 MySQL的核心就是插件式存储引擎,支持多种存储引擎。
1.32如何查看存储的引擎
show engines;
库的操作
2.1创建数据库
语法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …]
[DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
说明
- 大写的表示关键字
- [] 是可选项 [IF NOT EXISTS] 表示如果数据库不存在才创建数据库
- CHARACTER SET:指定数据库采用的字符集
- COLLATE:指定数据库字符集的校验规则
2.2 创建数据库案例
create database tmp;
运行结果如下: 此时说明一下:当我们没有指定字符集和校验规则时,系统默认字符集utf8,校验规则是:utf8_general_ci
create database tmp2 charset=utf8;
运行结果如下
- 创建一个使用utf字符集,并带校对规则的 db3 数据库。
create database tmp3 charset=utf8 collate utf8_general_ci;
运行结果如下
use databaseName;
示例
2.3字符集和校验规则
2.3.1查看系统默认的字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
2.3.2查看数据库支持的字符集
show charset
字符集的作用:主要控制用什么语言 举个例子utf8就可以使用中文,而有的字符集使用中文是一团乱码
2.3.3查看数据库支持的字符集校验规则
show collation
2.3.4校验规则对数据库的影响
- 不区分大小写
创建一个数据库,校验规则使用utf8_general_ci (不区分大小写)
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
select * from person where name='a';
最终结果如下: 创建一个数据库,校验规则为utf8_bin (区分大小写)
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
select * from person where name='a';
最终结果如下:
2.4.2显示创建语句
show create database 数据库名
示例: 说明:
- MySQL建议我们关键字大写,但是不是必须的。
- 数据库名字反引号`,'是为了防止使用的数据库名刚好是关键字
- /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
2.4.3修改数据库
语法:
ALTER DATABASE db_name [alter_spacification [,alter_spacification]…] alter _spacification : [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
- 对数据库的修改主要指的是修改数据库的字符集,校验规则
举个例子:将test1数据库字符集修改成gbk 自己用show create dabases test1;检测
2.4.4数据库删除
drop database [IF EXISTS] db_name; 执行后结果:
- 数据库内看不到对应的数据库
- 对应的数据库文件夹被删除,级删除,里面的数据表全被删除
2.4.5 备份和恢复
2.4.5.1备份
语法
mysqldump -p3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径(绝对路径)
2.4.5.2还原
语法
source 文件路径(绝对路径)
2.4.5.3 注意事项
mysqldump -u root -p 数据库名 表名1 表名2 > 备份的路径
mysqldump -u root -p -B 数据库名1 数据库名2 >备份的存放路径
3表的操作
3.1创建表
语法
CREATE TABLE table_name( field1 datatype, field2 datatype, field3 datatype (切记最后一列没有逗号) )character set 字符集 collate 校验规则 engine 存储引擎; 说明:
- file表示列名
- datatype表示列的类型
- character set 字符集 ,如果没有指定的字符集,则以所在的数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
接下来就来创建个表
create table users(
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
)character set utf8 engine MyISAM;
此处的comment相当于一个注释—方便于我们要使用时可以借助show create table users; 查看备注
3.3查看表结构
desc 表名; 拿上面的users来看看
3.4修改表
在项目的实际开发中,我们要经常修改某个表的结构,比如字段名称,字段大小,字段类型,表的字符集属性等等。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]…); ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]…); ALTER TABLE tablename DROP (column); 案例:
insert into users values(1,'a','b','2000-01-01');
alter table users add assets varchar(100) comment '图片路径';
此语句默认把此字段放在表的最后一位
alter table users add assets varchar(100) comment '图片路径 after birthday;
把assert字段放在birthday后面
alter table users modify name varchar(60);
使用desc users查看表结构
注意:删除字段一定要小心,删除字段及其对应的队列数据都没了
alter table users drop password;
此时使用desc uesers; 查看表结构可以看见表结构没有password
修改表名users为employee
alter table users rename to employee; to可以省略
此时可以用show tables;进行查看表
- 将employee 里name列修改为xingming
- 如果要并且修改字段大小或者字段属类型也可以重新定义
- 字段类型不可以省略不写
alter table employee change name xingming varchar(60);
此时可以进行 desc employee; 查看表结构发现字段名字或者或者字段类型
3.5删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] …
示例
drop table employee;
此时用show tables; 查看表是否删除
感谢观看,谢谢.
|