MS SQL Server, Oracle,DB2,Informix, Sybase等
他们都是被称为“关系数据库”的一种遵循sql标准的软件产品。
DBMS: 数据库(管理)系统,是我们“安装”而得到的。
DB,DataBase: 数据库,一个数据库系统中可以存放多个数据库。
通常一个项目(网站)使用一个数据库来存储其中的数据。
table:表,一个数据库中可以存放多个表。
row:行,指一行数据,一个表中可以有很多行。
record:记录,也是指一行数据。
column:列,指一列数据,一个表可以有若干列。
field:字段(列名),指数据表中的一列的名称(类似表头),一个表可以有若干字段。
关系数据库是指基于关系模型而设计的数据库系统。
所谓关系,其实就是指一个二维表(table)(有行有列)。
一行有多个数据,就表示这多个数据是具有内在关系的(同属一个“实体”)。
net start mysql
net stop mysql
mysql -h主机地址 -u用户名 -p 1
用cmd客户端登录后,请立即使用
set names gbk; 1
表示当前连接到数据库的“客户端”的字符编码是gbk(固定的,不可更改)。
退出数据库命令:
quit; 或 exit; 或 \q; 12345
略
略 ,这种方式,需要单独配置一个虚拟站点,进行操作
可以把phpmyadmin理解成一个网站
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
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
alter table table2 add salary float; 1
字段: salary 薪水
字段:height 身高
alter table table2 add height float first; 1
字段:hobby 爱好
alter table table2 add hobby varchar(10) after name; 1
alter table 表名 change 旧字段名 新字段名 字段类型 [字段属性...] [after 某字段名 或first];; 如果不修改字段名,而只修改字段的其他信息,则可以使用: alter table 表名 modify 要修改的字段名 字段类型 [字段属性...] [after 某字段名 或first];; 12345
alter table table2 change salary xinshui int default 0; 1
alter table table2 change xinshui salary int default 0 after name; 1
alter table 表名 drop 要删除的字段名; 1
alter table table2 drop height; 1
alter table 表名 rename 新的表名; 1
alter table table2 rename user; 1
alter table 表名 charset=新的字符集; 1
alter table user charset=utf8mb4; 1
insert into 表名 (字段名1, 字段名2, ... ) values (数据1, 数据2, ... ); 说明: 1 字段名和数据是“一一对应”的,包括:数量一致,顺序一致,类型匹配。 2 对于要写入的数据,字符串和时间日期类型,要用单引号引起来。 3 可以省略“字段列表”部分,此时就需要给出跟字段数量一样多的数据,类似这样: insert into 表名 values (数据1, 数据2, ... ); 123456789
insert into user (id,name) values (1,'lisi'); 12
直接复制到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
select name,id,sex from user; 1
select id,name,sex from user where age < 24 and salary > 10000; 1
and :可以理解为编程语言中的 与 运算符
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
update user set salary = 15000 where name = 'xiaohong'; 1