zoukankan      html  css  js  c++  java
  • 数据库的复习之一

    关于数据库编程

         1.简单介绍mysql数据库

         2.jdbc(java代码去操作数据库)

          3.jdbc(事务 数据库连接池)

    1.常见数据库

         1.Oracle数据库(大型)——Oracle

         2.DB2

         3.SQLserver(中型)

         4.MySQL(小型)——Oracle

     

    mysql6之前是免费的,开源的。

     

    2.什么是数据库?

         持久化设备:

          1.IO

          2.数据库

          就是一个文件系统,通过标准SQL语言操作文件系统中数据——用来存放软件系统的数据。

     

    3.数据库中存放的是什么样的数据?

         关系型数据(有点类似于书)

    4.说明:

    比如:商城系统

    商品、订单、用户

    ————————

    比如上面三个可以说是实体,用矩形表示

    对应所有的属性用椭圆表示

    还有实体之间的关系用菱形表示

     

    5.mysql的安装与卸载

    1.卸载

        1.因数据文件与安装文件分离,应该找它的位置

        2.正常删除数据库,在控制面板中将其删除

        3.删除数据文件

        4.将MySQL的遗留的数据文件删除

    2.安装

        注意:

        MySQL的默认端口为3306

        字符集选择utf-8

        Service Name :mysql

    3.测试

       打开终端输入:mysql -u root -p

       输入已设置的密码:****

       若出现了mysql>则表示成功

    4.密码重置

    1.win环境中,在“运行”中输入service.msc打开所有服务,找到对应的服务(找到路径)并将其停止

    2.在终端下输入mysql - - skip -grant -tables启动服务 光标不动(不要关闭窗口)。

    3.新打开终端输入mysql -u root -p不需要密码

    use mysql

    update user set passwd=password(abc) Where

    User=root

    4.关闭两个终端,在任务管理器中结束MySQL进程,并输出exit。

    5.在服务管理页面重启MySQL服务

    密码修改完成

    ———————————

    MySQL数据服务器和数据库和表的关系(包含关系),最后是client来访问

    mysql -h主机名 -p 端口 -u 用户名 -p 输入密码

     

    如果自己电脑上已安装了MySQL服务器(指软件)

    则终端输入mysql -u root -p

    ——————————

    表的储存

    列为字段(属性),行为记录

    表中的字段与类中的属性对应

    表中记录与类中的具体对象对应

    class User{

    int id;

    String name;

    int age;

    }

    User u=new User();

    u.id=1;u.name=“ZhangSan”;u.age=20;

     

    ——————————————————

    sql介绍

            sql 结构化查询语言

            sql 是非过程性语言(语句间无关联,相对独立)

    —————————————————

    sql分类

    DDL  数据定义语言 用来定义数据库、表等

    DML 数据库操纵语言  用来增删改查

    DCL  数据控制语言    用户权限控制

     

    DQL   数据查询语句(*) select

     

    ——————————————————

    数据库基本操作

    1.创建/使用/删除数据库

    create database 数据库名;

    use 数据库名

    drop database 数据库名;

    2.创建数据库是可以指定个编码集与校验规则

    character set:指定数据库采用的编码集

    collate:指定数据库字符集的比较方式

     

    create database 数据名 character set 编码集 

    collate 校验;//带校验规则的

     

    create database 数据库名 character set=“utf-general-ci”;//查手册

     

    create database 数据库名 character set=“utf8”;

     

    show databases;

    //显示已存在的数据库

     

    //查看前面创建的mydb2数据库的定义信息

    show create database  mydb2;

     

    //修改数据库,并改字符编码(了解)

    alter database 数据名 character set=“编码集” collate=“校验”;

     

    create database 数据库名 character set=“gbk”;

    show create database 数据库名;

    alter database 数据名 character set=“编码集” collate=“校验”;

     

    //切换数据库

    use db_name;

    //查看当前使用的数据库

    select database();

     

    ……

    (增删改查、函数、触发器、视图等看以往做的练习就行)

     

     

    操作表:

    1.创建create table table_name{

    字段名 类型

    }character set=‘’  collate=‘’;

     

    2.表中字段类型

    int 

    varchar char

    float double decimal

    date datetime

     

    3.查看

    desc table_name

    show table;

    show create table table_name;

     

    表约束

    表约束一共有六种

    约束用来保证数据有效性(避免脏数据)和完整性。

     

    三种类型:

    1.主键约束

               特点:1.非空  2.唯一  

               alter table tablename drop primary key;

               主键自动增长:auto_increment

    2.非空约束

             not null

             例如:name varchar(20) unique

    3.唯一约束

             unique

             例如:name varchar(20) unique

     

    4.外键

     

    ——————————————————

    表结构的修改

    1.添加字段

          alter table table_name add 字段  数据类型;

    2.修改字段

          alter table 表名  modify 字段 数据类型;

    3.删除字段

         alter table 表名   modify 字段;

    4.修改字段名称

        alter table 表名  change 旧自段名称 新字段名称 类型;

    5.修改表的字符集

       alter table 表名  character set=字符集;

    6.改表名

       rename table 表名 to 新表名;

    7.删除主键

      alter table 表名 drop primary key;

    主键不能自动增长,如果自动增长删除失败

     

    MySql里面的in相当于取并集

    eg: 

         select name from emp where dpt in ('dpt3','dpt4');  #员工在dpt3部门或在dpt4部门名字

     

         select name from emp where dpt not in('dpt3','dpt4');  #员工不在dpt3、dpt4部门名字

     

     

     

     

     

     

     

     

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    hdu 4813(2013长春现场赛A题)
    NEFU 628 Garden visiting (数论)
    FZU 2020 组合 (Lucas定理)
    HDU 3304 Interesting Yang Yui Triangle (Lucas定理)
    HDU 3037 Saving Beans (数论,Lucas定理)
    UVa 1161 Objective: Berlin (最大流)
    Vijos P1951 玄武密码 (AC自动机)
    LA 4670 Dominating Patterns (AC自动机)
    HDU 2340 Obfuscation (暴力)
    HDU 5510 Bazinga (KMP)
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8478549.html
Copyright © 2011-2022 走看看