/*
*数据库
*1.1、数据库就是用来存储和管理数据的仓库
* 数据库存储数据的优先
* 可存储大量数据
* 方便检索
* 保持数据的一致性、完整性
* 安全,可共享
* 通过组合分析,可产生新数据
*1.2、数据库的发展历程
* 没有数据库,使用磁盘文件存储数据
* 层次结构模型数据库
* 网状结构模型数据库
* 关系结构模型数据库:使用二维表格来存储数据[关系型]
* 关系.对象模型数据库
* MySQL就是关系型数据库
*1.3、常见数据库
* Oracle(神喻):甲骨文(最高)
* DB2:IBM
* SQL Server:微软
* Sybse:赛尔斯
* MySQL:甲骨文
*1.4、理解数据库
* RDBMS = 管理员(manager)+仓库(database)
* database = N个table
* table:
* 表结构:定义表的列名和列类型
* 表记录:一行一行的记录
*1.5 应用程序与数据库
* 应用程序使用数据库完成对数据的存储
*
*2 安装MySQL数据库
*2.1、安装MySQL
* D:\mysql\bin\MySQLInstanceConfig 配置.exe
* MySQL中utf-8编码没有- 直接utf8
* net start 查看现在运行的网络服务
* 我们现在所说的数据库泛指"关系型数据库管理系统(RDBMS -Relational database management system)"即“数据库服务器”
* 当我们安装了数据库服务器,就可以在数据库服务器中创建数据库,每个数据库中还可以包含多张表
* 数据库表就是一个多行多列的表格。在创建表时,需要指定表的列数,以及列名称,列类型等信息。而不用指定表格的行数,行数是没有上限的。
* 当表表格创建好了之后,就可以向表格中添加数据了。向表格添加数据是以行为单位的
* 有了表结构才有表记录
*
*卸载MySQL
*停止MySQL
*1、添加删除程序中鞋子啊MySQL
*2、到安装目录删除MySQL
*3、删除C:\Documents and Settings\All Users\Application Data\MySQL
* C:\ProgramData\MySQL
*查看注册表
*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service
*HEKY_LOCAL_MACHINE\SYSTEM\ControlSet001\SERVICE
*HEKY_LOCAL_MACHINE\SYSTEM\ControlSet002\SERVICE
*搜索mysql 一律删除
*需要重启电脑直接重新安装即可
*
*1、MySQL安装成功后会在两个目录中存储文件
* D:\mysql DBMS 管理程序
* C:\ProgramData\MySQL\MySQL Server 5.5\data DBMS数据库文件(写在MySQL时不会删除这个目录,需要自己手动删除)[是一个隐藏文件夹需要进行设置]
*2、MySQL重要文件
* D:\mysql\bin\mysql.exe 客户端程序,用来操作服务器,但必须保证服务器已开启才能连接上
* D:\mysql\bin\mysqld.exe 服务器程序,必须先启动它,客户端才能连接上服务器
* D:\mysql\bin\my.ini 服务器配置文件
*3、C:\ProgramData\MySQL\MySQL Server 5.5\data
* 该目录下的每个目录表示一个数据库,例如该目录下有个mysql目录,那么说明DBMS中有一个名为mysql的database
* 在某个数据库命令下会有0~N个扩展名为frm的文件 每个frm文件表示一个table,不能用文本编辑器打开它,是由DBMS来读写的
*4、my.ini MySQL最为重要的配置文件
* 配置MySQL的端口:默认为3306 没有必要去修改它
* 配置字符编码
* [client]下配置客户端编码:default-character-set=gbk
* [mysqld]下配置服务器编码:character-set-server=uft8
* 配置二进制数据大小上限
* 在[mysqld]下配置:max_allowed_packet=8M
*
*1、开启服务器(必须保证mysql为windows服务):net start mysql
* 查看进程表中是否存在:mysqld.exe进程(存在)
*2、关闭服务器(必须保证mysql为windows服务): net stop mysql
* 查看进程表中是否存在:mysqld.exe(不存在)
*客户端操作
* cmd
*1、登录服务器 mysql -uroot -p123 -hlocalhost
* -u后面跟随用户名
* -p跟随密码
* -h跟随IP
*2、退出服务器 exit 或quit
*
*SQL
*1、SQL:结构化查询语言(Structured Query Language)
*2、SQL的作用:客户端使用SQL来操作服务器
* 启动mysql.exe 连接服务器后,就可以使用sql来操作服务器了
* 将来会使用Java程序连接服务器,然后使用sql来操作服务器
*3、SQL标准(例如SQL99,即1999年制定的标准)
* 由国际标准阻止(ISO)制定的,对DBMS的统一操作方式(例如相同的语句可以操作:mysql、oracel)
*4、SQL方言
* 某种DBMS不只会支持SQL标准,而且还会有一些自己独有的语法,称之为方言。例如limit语句只在MySQL中可以使用
*
*SQL语法
*1、SQL语句可以在单行或多行书写,以封号结尾
*2、可使用空格和缩进来增强语句的可读性
*3、MySQL不区分大小写,建议使用大写
*
*SELECT * FROM book;
*INSERT INTO book VALUES('','','');
*SQL语句分类
*1、DDL(Data Definition Language)数据定义语言,用来定义数据库对象:库、表、列等
* 创建、删除、修改:库、表结构
*2、DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)
* 增、删、改:表记录
*3、DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别
*4、*DQL(Data Query Language):数据查询语言,用来查询记录(数据)
*
*ddl:数据库或表的结构操作(***)
*dml:对表的记录进行更新(增、删、改)(***)
*dql:对表的记录的查询(***)
*dcl:对用户的创建、及授权
*
*DDL
*1、数据库
* 查看所有数据库: SHOW DATABASES
* 切换(选择要操作的)数据库:USE 数据库名
* 创建数据库:CREATER DATABASE [IF NOT EXISTS] mydb1 [CHARSET=utf8]
* 删除数据库: DROP DATABASE [IF EXISTS] mydb1
* 修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8
*2、数据库类型(列类型)
* int:整型
* double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
* decimal:浮点型,在表单钱方面使用该类型,因为不会出现精度缺失问题
* char:固定长度字符串类型:char(255) 超出长度报错最大255,数据的长度不足指定长度,补足到指定长度
* varchar:可变长度字符串类型:varchar(65536)
* text(clob)字符串类型 字数很大
* 很小(2^8-1B)、小(2^16-1B)、中(2^24-1B)、大(2^32-1B)->4G -->1024*1024*1024*4
* blob:字节类型
* 很小、小、中、大
* date:日期类型:格式为 yyyy-MM-dd;
* time:时间类型:格式为hh:mm:ss
* timestamp:时间戳类型
*3、表
*创建表
* CREATE TABLE [IF NOT EXISTS] 表名(
* 列名 列类型,
* 列名 列类型,
* ...
* 列名 列类型
*)
*查看当前数据库所有表名称:SHOW TABLES;
*查看指定表的创建语句:SHOW CREATE TABLE 表名;
*查看表结构:DESC 表名
*删除表:DROP TABLE 表名
*修改表: 前缀:ALTER TABLE 表名
* 修改之添加列
* ALTER TABLE 表名 ADD(
* 列名 列类型,
* 列名 列类型,
* ...
* );
* 修改之修改列类型(如果被修改的列已存在数据,那么新的类型可能会影响到已存在数据):ALTER TABLE 表名 MODIFY 列名 列类型;
* alter table tb_stu
modify eduction varchar(100);
* 修改之修改列名:ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
* ALTER TABLE tb_student change eduction edu varchar(100);
* 修改之删除列:ALTER TABLE 表名 DROP 列名
* ALTER TABLE tb_student drop eduction;
* 修改表名称:ALTER TABLE 原表名 RENAME TO 新表名
* alter table tb_stu
rename to tb_student;
*DQL: SELECT * FROM 表名
*DML(数据操作语言,是对表记录的操作(增、删、改))
*1、插入数据
* INSERT INTO 表名(列名1,列名2,...) VALUES(列值1,列值2,...);
* 在表名后给出要插入的列名,其他没有指定的列等同于插入null值,所以插入记录总是插入一行,不可能是半行。
* 在VALUES后给出列值,值的顺序和个数必须域前面指定的列对应
* INSERT INTO 表名 VALUES(列值1,列值2)
* 没有给出要插入的列 ,那么表示插入所有列。
* 值的个数必须是该表列的个数,
* 值的顺序,必须与表创建时给出的列的顺序相同。
*2、修改数据
* UPDATE 表名 SET 列名1=列值1,列名2=列值2,...[where 条件]
* 条件(条件可选的)
* 条件必须是一个boolean类型的值或表达式:UPDATE t_person SET gender='男',age = age+1 WHERE sid='1';
* 运算符:=、!=、<>、>、<、<=、>=、BETWEEN...AND、IS NULL、NOT、OR、AND
* update stu set age=age+1 where age between 20 and 30;
* update stu set age = 30 where name in('zhangsan','lisi') ;
* update stu set age = 12 where age =null; =null本身就是false 要用null就用 is null
*3、删除数据
* DELETE FROM 表名(WHERE 条件)
* TRUNCATE TABLE 表名:TRUNCATE是DDL语句,它是先删除drop该表,再create该表、而且无法回滚
在数据库中所有的字符串类型,必须使用单引,不能使用双引
日期类型也要使用单引
插入所有列
INSERT INTO stu(
number,name,age,gender
)
VALUES(
'0001','lisi',22,'male'
);
插入部分列,没有插入的列,为默认值NULL
INSERT INTO stu(
number,name
) VALUES(
'0002','zhangsan'
)
不给出插入列,那么默认为插入所有列。值的顺序要与创建表时列的顺序相同
INSERT INTO stu VALUES(
'0003','wangwu',15,'female'
)
*/
javawebday39(数据库概述 基本操作DDL DML 增删改)
最新推荐文章于 2023-05-07 00:03:41 发布