数据库
1.概述
分类
数据库分为关系型数据库和非关系型数据库。
(1)关系型数据库的底层是以二维表的形式保存数据,如mysql,Sql Server, Oracle,sqlite等; (2)非关系型数据库的底层是以key-value的形式保存数据,如redis, mongodb等
名字解释
数据库服务器: 将服务器软件安装在电脑上,就可以作为一台服 务器对外提供服务。 数据库:一个网站中所有数据存放的地方; 表:一个数据库中可以创建多张表,存放数据,表中保存一类数据; 表记录:一行表记录用来保存一个具体的数据; SQL语言:(简称Structed Query Language)结构化查询语言,通过sql语言可以操作所有的关系型数据库。
2.mysql的下载和安装
(1) 找到官网:https://www.mysql.com/; (2)依次点击 download->MySql Community(GPL) Downloads->->MySql Community Server,找到对应的下载版本; (3)安装。
安装完成后需要配置环境变量: 1> 添加新的环境变量MYSQL_HOME;将bin的上一级目录添加到该变量中; 2>在path上添加%MYSQL_HOME%\bin;
3.安装完成后,在命令窗口常用的命令语句:
(1)连接mysql:
mysql -uroot -proot;
(2)启动mysql服务
1.按下“Win+R”; 2.输入services.msc 3.找到mysql启用;
(3)退出数据库
quit 或 exit 或 \q
(4)sql中常用的注释:#, /* */, --空格; (5)使用 \c 取消当前sql语句的执行; (6)设置编码
set name gbk;
4.常用的数据库及表操作
注意事项: (1)sql语句对大小写不敏感,推荐关键字使用大写,自定义的名称使用小写; (2)在自定义名称时,针对多个单词,不要使用驼峰命名,而是使用下划线连接;
4.0 MySql的数据类型
(1) 数值类型:
tinyint:占用1个字节,相对于java中的byte
smallint:占用2个字节,相对于java中的short
int:占用4个字节,相对于java中的int
bigint:占用8个字节,相对于java中的long
float:4字节单精度浮点类型,相对于java中的float
double:8字节双精度浮点类型,相对于java中的double
(2) 字符串类型:
A char(n) 定长字符串,最长255个字符。n表示字符数
所谓的定长,是当插入的值长度小于指定的长度时,
剩余的空间会用空格填充。(这样会浪费空间)
B varchar(n) 变长字符串,最长不超过 65535个字节,n表示字符数,一般超过255个字符,会使用text类型,
所谓的不定长,是当插入的值长度小于指定的长度时,
剩余的空间可以留给别的数据使用。(节省空间)
C text类型: 最长65535个字节,一般超过255个字符列的会使用text
(3) 日期类型:
date:年月日 time:时分秒 datetime:年月日 时分秒 timestamp:时间戳(实际存储的是一个时间毫秒值),与datetime存储日期格式相同。
两者的区别是: (1)timestamp最大表示2038年,而datetime范围是1000~9999 (2)timestamp在插入数、修改数据时,可以自动更新成系统当前时间
4.1库相关操作
(1) 查看mysql服务器中所有的数据库:
show databases;
(2) 进入某一数据库:
use 库名; (eg: use test;)
(3) 查看已进入的数据库名称:
SELECT DATABASE();
(4) 查看当前数据库中的所有表:
show tables;
(5) 删除数据库:
DROP DATABASE 库名;
DROP DATABASE IF EXITS 库名;
(6) 创建数据库,指定编码:
CREATE DATABASE 库名 charset utf8;
(7)查看创建数据库时所使用的sql语句
SHOW CREATE DATABASE 库名;
4.2表相关操作
(1)删除: 如果学生表存在,就删除
DROP TABLE IF EXISTS stu;
(2)创建stu学生表
CREATE TABLE stu {
id int,
name varchar(20),
gender varchar(5),
birthday date,
score double
};
(3)给学生表插入数据 语法: INSERT INTO 表名 (列名1,列名2,...) VALUES (值1, 值2,...);
举例:INSERT INTO stu values(1, '张飞', '男', '1978-1-1');
注意: A. 为所有列插入值时,可以省略列名,但值得个数和顺序必须和声明时列的个数和顺序保持一致; B. sql语句中为字符串和date类型的数据赋值时,需要加单引号(双引号有时可能会报错);
(4) 查询stu表中所有学生的数据:
select * from stu;
(5) 修改表中的数据
UPDATE 表名 set 列1=值1, 列2=值2,... where 子语句;
如:修改编号为1的成绩:
update stu set score = 83 where id = 1;
(6) 删除stu表中的数据
delete from 表名 where 子语句;
如:
delete from stu where id > 1;
|