javawebday39(数据库概述 基本操作DDL DML 增删改)

/*
 *数据库
 *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来读写的
 *4my.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'
    )

 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值