JavaWeb入门之数据库

数据库的基本概念

1、数据库的英文:DataBase 简称DB
  2、什么是数据库?
       用于存储和管理数据的仓库。
  3、数据可的特点
       ①持久化存储数据,其实数据库就是一个文件系统
       ②方便存储和管理数据
       ③ 使用了统一的方式操作数据库 SQL
  4、常见的数据库软件:      
     Oracle(商业收费)、Mysql(mysql6之后开始收费)、   Microsoft SQL Server、DB2、SQLite(用于手机端)

MySQL数据库

MySQL服务启动

1、cmd--> services.msc 打开服务的窗口
  2、使用管理员打开cmd
     net start mysql : 启动mysql服务
     net stop mysql  : 关闭mysql服务

MySQL服务登录

1. mysql -uroot -proot
  2. mysql -hip -ruroot -p连接目标的密码
  3. mysql --host=ip --user=root --password=连接目标的密码

MySQL服务退出

1. exit
   2. quit

SQL通用语法特点

1. SQL语句可以单行或多行书写,以分号结束。
   2. 不区分大小写,关键字建议使用大写。

SQL四种分类

1.DDL:操作数据库 CURD

①Create:创建
          create database if  not exist 名称 character set gbk;(默认utf8)
     ②Retrieve:查询
           show databases :查看数据库名称
           show create database mysql(数据库名称): 查看数据库创建语句
     ③Updata:修改
        alter database 数据库名称 character set utf8
     ④Delete:删除
         drop database if not 数据库名称;
     ⑤使用数据库
       查询当前正在使用的数据库名称:  select database;
       使用数据库: use 数据库名称

2.DML: 操作表

① Create:创建
       create table 表名(
         列名1 数据类型1,
         列名2 数据类型2,
         .......
      );
   *  数据库数据类型
      1.int 整型 
      2.double:小数类型(score double(5,2) 共五位,小数点后保留两位)
      3.date:日期,只包含年月日 yyyy-MM-dd
      4.datatime : 日期 yyyy-MM-dd HH:mm:ss
      5 timestamp:时间戳类型   yyyy-MM-dd HH:mm:ss
      *如果不给此字段赋值,或为null,则默认使用当前系统时间,自动赋值
      6.varchar:字符串
        name varchar(20) 20个字符
    ② Retrieve:查询 
       1.查询数据库中所有表的名称:show tables;
       2.查询表结构:desc 表名
    ③ Update:修改
        1.修改表名
          alter table 表名 rename to 新表名
       
        2.修改表的字符集
        alter table 表名  character set  utf8;
       
        3.添加一列
        alter table 表名 add 列名 数据类型            
       
        4.修改列名称 类型
        alter table 表名 change 列名 新列名 新数据类型;
        alter table 表名 modift 列名 新数据类型
       
         5.删除列
         alter table 表名 drop 列名;
    
    ④ Delete:删除
         drop table if exists 表名;
   
   ** DML: 增删改查表中的数据
        ① insert:添加数据
        insert into 表名(列名1,列名2) values (值1,值2)
        *注意:1.列名要和值一一对应
              2.如果表名后,不定义列名,则默认给所有列添加值   
               insert into 表名 values (值1,值2)
              3.除了数字类型,其他类型需要使用引号(单双引号都可)引起来
        ②  Update:修改
              语法:update 表名 set 列名1=值1,列名2=值2...【where】
              *注:如果不加任何条件,则会将表中所有记录全部修改。 
        ③  Delete:删除
          语法::delete from 表名 【where 条件】
          *注:1.如果不加条件,则删除表中所有记录
              2.如果要删除所有记录
               delete from 表名;--不推荐使用,有多少记录会执行多少次操作
               TRUNCATE TABLE 表名;--推荐使用,效率更高,先删除表,然后再创建一张一样的表

3.DQL:查询表中的记录

select * from 表名;
   1.语法:
      select 字段列表
      from 表名列表
      where 条件语句
      group by 分组字段
      having 分组之后的条件
      order by 排序
      limit 分页限定
2.基础查询
select 字段名1,字段名2... from 表名;
    *注:如果查询所有字段,则可以使用*来替代字段列表
    3.去重 * distanct
    4.计算列 
    *一般可以使用四则运算计算一些列的值(一般都是数值型的计算)
    * ifnull(表达式1,表达式2):null参与的计算,计算结果都为null
         *表达式1:哪个字段需要判断是否为null
         *表达式2:如果该字段为null后的替换值  
    5.起别名 :AS  (AS也可以省略)
3.条件查询
1.where子句后跟条件 
    2.运算符
    * >、< 、<= 、>=、 =、 <>、 !=
    * BETWWEEN...AND
    * IN(集合)
    * like(模糊查询)
    * IS NULL 
    * AND 或 &&
    * or 或 ||
    * not 或 !
4.排序查询
* order by 子句 
    * 默认升序: ASC
    * 降序 : DESC
5.聚合查询
*count:计算个数、 max :最大值、 min:最小值 、sum:和 、avg(平均值)
  *注意:聚合函数会排除Null
6.分组查询

语法:group by

7.分页上查询

4.DCL: