1.简单介绍
主流数据
MS SQL Server, Oracle,DB2,Informix, Sybase等
他们都是被称为“关系数据库”的一种遵循sql标准的软件产品。
MySQL数据库的基本结构
几个关键词单词
DBMS: 数据库(管理)系统,是我们“安装”而得到的。
DB,DataBase: 数据库,一个数据库系统中可以存放多个数据库。
通常一个项目(网站)使用一个数据库来存储其中的数据。
table:表,一个数据库中可以存放多个表。
row:行,指一行数据,一个表中可以有很多行。
record:记录,也是指一行数据。
column:列,指一列数据,一个表可以有若干列。
field:字段(列名),指数据表中的一列的名称(类似表头),一个表可以有若干字段。
关系数据库
关系数据库是指基于关系模型而设计的数据库系统。
所谓关系,其实就是指一个二维表(table)(有行有列)。
一行有多个数据,就表示这多个数据是具有内在关系的(同属一个“实体”)。
2.访问mysql数据库服务器
开启/关闭mysql服务
net start mysql
net stop mysql
客户端连接/退出数据库服务器
1.cmd(也是客户端)
mysql -h主机地址 -u用户名 -p
1
用cmd客户端登录后,请立即使用
set names gbk;
1
表示当前连接到数据库的“客户端”的字符编码是gbk(固定的,不可更改)。
退出数据库命令:
quit;
或
exit;
或
\q;
12345
2.navicat
略
3. phpmyadmin
略 ,这种方式,需要单独配置一个虚拟站点,进行操作
可以把phpmyadmin理解成一个网站
3.数据库操作
查看所有数据库
show databases;
1
创建数据库
create database 数据库名 [charset 字符集名称] [collate 校对规则名];
1
字符集名类似这些: utf8, gbk, gb2312, big5, ascii等。推荐用utf8。
校对规则名:通常都不用写,而是使用所设定字符集的默认校对规则。
校对规则的到底是干嘛用的?
比如:“中”和“国”,有这样的可能排序方式:
按拼音
按笔顺
按编码
想知道有哪些字符集可以用?
show charset;
1
想知道有哪些字符集可以校对规则?
show collation;
1
查看数据库创建信息
show create database 数据库名;
1
删除现有数据库
drop database 数据库名;
1
修改数据库
修改数据库,其实只是修改数据库的字符编码或校对规则。
其实一般都不需要修改。
alter database 数据库名 charset 新的字符集名称 collate 新的校对规则名;
1
选择使用那个数据库;
一个项目中,具体进行有关数据操作(增删改查)之前,都需要先“选择/进入”该数据库。
use 数据库名;
1
4.数据表操作
创建数据表
create table 数据表名 (字段1,字段2... )[charset=字符集] [engine=表类型];
字段的形式为: 字段名 字段类型 [字段属性...]
字符集包括:utf,gbk,gb2312,big5等等,默认是数据库的字符集,可以不写。
表类型包括:InnoDB, MyIsam 等,默认是InnoDB,可以不写。
12345
表类型简单理解就是,不同类型的表性能和功能不同,如上默认是InnoDB表示功能是最全的,MyIsam 性能比较好,但是除了基本的增删改查相对于InnoDB类型的表,还缺失了一些功能,因此有个矛盾,就是你想要功能多,那就要损失一些性能,如果是要性能好,那么会少一些功能。
再举个例子,跑车是不是颜值高很拉风,但是却没有五菱宏光那么实用,载人比较多,还能拉货。
案例:最简化创建表
create table table1 (
id int,
name varchar(10),
sex char(1),
age int
);
123456
案例:给表指定字符集和类型
create table table2 (
id int,
name varchar(10),
sex char(1),
age int
)charset utf8 engine MyIsam;
123456
查看所有数据表
创建好的表如何查看呢?
show tables;
1
查看表结构
所谓数据表的结构,其实就是一个表的每个字段的具体信息。
desc 表名;
1
这里出现了一个ID,默认值为null,你想一下这个id为null是否合理?肯定不合理,应该是一个数字嘛,但是这里是初学,所以先这样。
注意:
Key:这里有个先不看,后面会学
Type:这个类型是数据类型,而不是指如InnoDB..这种建表类型
12
查看表的创建语句
show create table 表名;
1
删除数据表
drop table 表名
1
修改数据表
修改数据表主要是
修改表名
添加字段
修改字段
删除字段
修改表的字符集
添加字段
alter table 表名 add 字段名 字段类型 [字段属性...] [after 某字段名 或first];
after 某字段名:意思是,新加的字段,放在该现有字段的后面;
first:表示新加的字段放在第一位(最前面)
1234
demo默认添加一个字段在最后一行
alter table table2 add salary float;
1
字段: salary 薪水
demo默认添加一个字段在第一行
字段:height 身高
alter table table2 add height float first;
1
demo默认添加一个字段在某个字段之后
字段:hobby 爱好
alter table table2 add hobby varchar(10) after name;
1
修改字段
alter table 表名 change 旧字段名 新字段名 字段类型 [字段属性...] [after 某字段名 或first];;
如果不修改字段名,而只修改字段的其他信息,则可以使用:
alter table 表名 modify 要修改的字段名 字段类型 [字段属性...] [after 某字段名 或first];;
12345
demo:修改字段名称以及字段属性
alter table table2 change salary xinshui int default 0;
1
demo:修改字段名称属性以及字段位置
alter table table2 change xinshui salary int default 0 after name;
1
demo:使用modify修改字段的其它属性
删除字段
alter table 表名 drop 要删除的字段名;
1
demo
alter table table2 drop height;
1
修改表名
alter table 表名 rename 新的表名;
1
demo
alter table table2 rename user;
1
修改字符集;
alter table 表名 charset=新的字符集;
1
demo
alter table user charset=utf8mb4;
1
5.数据的操作
插入数据
insert into 表名 (字段名1, 字段名2, ... ) values (数据1, 数据2, ... );
说明:
1 字段名和数据是“一一对应”的,包括:数量一致,顺序一致,类型匹配。
2 对于要写入的数据,字符串和时间日期类型,要用单引号引起来。
3 可以省略“字段列表”部分,此时就需要给出跟字段数量一样多的数据,类似这样:
insert into 表名 values (数据1, 数据2, ... );
123456789
demo 指定特定字段
insert into user (id,name) values (1,'lisi');
12
demo 默认不写字段要一一对应
直接复制到cmd黑窗口客户端
insert into user values (2,'xiaohong','html','1',20,10000);
insert into user values (3,'xiaogang','css','0',22,15000);
insert into user values (4,'xiaomei','js','1',24,16000);
123
查询数据
select 字段名1, 字段名2, ... from 表名 [ where 条件];
1,select后的字段列表用于设定要从表中取出的哪些字段的值。
2,select后可以只使用一个“*”号表示取出该表中所有字段的值。
3,where条件表示取出的数据所应满足的条件,比如:
① where id < 10 表示取出那些字段id的值小于10的行。
② where age > 60 表示取出那些字段age的值大于60的行
4,where条件可以不写,就取出所有行的数据。
12345678910111213
demo 查询指定字段(开发中一般都是指定)
select name,id,sex from user;
1
demo 查询所有字段
select id,name,sex from user where age < 24 and salary > 10000;
1
and :可以理解为编程语言中的 与 运算符
demo 限制查询条件
select * from user;
1
删除数据
delete from 表名 [where 条件];
1, 删除数据指的是删除表的某些行,比如原来有10行,可以将其中的3行删除,则剩下7行。
2, where条件表示删除数据所应满足的条件,含义跟select中的一样。
3, where 条件可以不写,如果不写,则会删除所有数据——通常都不会这么用。
123456
修改数据
update 表名 set 字段名1 = 新值1, 字段名2=新值2, ... [where条件];
1, 修改数据指的是修改表的某些行的某些字段。
2, where条件表示修改数据所应满足的条件,含义跟select中的一样。
3, where 条件可以不写,如果不写,则会修改所有数据——通常都不会这么用。
123456
demo 给用户表中的xiaohong张新
update user set salary = 15000 where name = 'xiaohong';
1