数据库(SQL/DDL/DML/DQL/约束)

1.SQL简介

SQL:Structured Query Language  的缩写(操作关系数据库中的数据)
中文名称:结构化查询语言
作用:是一种定义、操作、管理关系数据库的句法。大多数关系型数据库都支持。
结构化查询语言的工业标准由ANSI(美国国家标准学会,ISO的成员之一)维护。
组成:
DDL:数据定义语言
DML:数据操作语言
DCL:数据控制语言
DQL:数据查询语言(sql最难的部分就是查询)

数据库管理软件  可以帮我们隔离具体的物理数据存储的方式,通过逻辑结构,来操作物理数据。
          即我们操作的都是  二维表,所有的数据都是以二维表的形式存在。

那么二维表是如何组织起来的呢?
        一个数据库管理软件中,可以存在多个数据库;一个数据库类中可以有多个二维表。
        通过二维数据表,将数据库的数据组织起来

区分两个概念:
        数据库管理系统:用于管理数据的软件和工具。
        数据库系统:上层应用,数据库管理系统,数据,DBA(database administer)

数据库管理软件 工作过程 简介,见图:


            

常用的数据库(软件)

    Oracle(只做数据库和数据服务) / DB2(IBM)/ informix(专注于数据库中的事务处理)
    / Sybase(发明了一个power desgin,辅助软件)/ SQLServer2000,2005 /
    MySQL(开源免费) / Access(office中) / SQLite(Android)等

 

MySQL 的安装和配置:

    5.5版本要设置两个目录:服务的安装目录,数据的安装目录(Innodb)
    此目录需要记住
    还要记住root的账号密码。
    见教程。

 

数据库服务器、数据库软件、数据库和表的关系:

1.所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每       一个应用创建一个数据库。
    为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。  
2.一个user对象的数据,在表中可能就是一行数据记录(bean类),一行中有多列。
    表与表之间的区别就在于:表结构的不同,即每个表所对应的数据的 属性的  个数/属性名/类型等不同
    DDL语言就是用来定义表的结构的(增加、删除一列或者一行)。

 

MySQL常见数据类型:

VARCHAR、BLOB和TEXT类是变长类型。每个类型的存储需求取决于列值的实际长度。
 

在整数类型中,我们要注意bit类型,bit类型,是指位类型,bit(M),表示数据用多少个二进制位来表示

范围:

 

 

 

 

 

DDL语言

Data Definition Language

概述:

作用:
    用于描述数据库中要存储的现实世界实体的语言。即创建数据库和表的结构  管理数据库和表的结构。
创建/管理 :数据库(的操作)  和  表结构(增删改查).

常用关键字:
CREATE   ALTER   DROP

 

使用流程:

1.进入数据库:cmd 打开DOS窗口,输入mysql -uroot -p密码

2.会跳转到 mysql>
对数据的操作:

3.查看数据库软件中所有数据库: show databases;

4.创建一个数据库mydb1 : create database mydb1;

    创建时加入额外信息: 
                                //创建使用指定字符集的数据库:
                                create database mydb1 character set gbk;
                               //创建一个带有校对规则的指定字符集的数据库:
                              create database mydb1 character set gbk collate gbk_chinese_ci;

5.查看数据库:
            show databases ; ——查看当前服务中有哪些数据库。
            show create database mydb2; —— 查看之前创建的数据库的基本信息

6.修改数

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用数据库连接池来连接数据库进行操作,然后通过拼接SQL语句的方式实现SQL生成器。下面是一个简单的示例: 1. 定义一个数据库连接池的类,用于获取数据库连接: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class DBUtil { private static DataSource ds = new ComboPooledDataSource(); public static Connection getConnection() throws SQLException { return ds.getConnection(); } } ``` 2. 定义一个SQL生成器类,用于生成DDLDMLDQL语句: ```java import java.util.ArrayList; import java.util.List; public class SQLBuilder { private String tableName; private List<String> columns = new ArrayList<>(); private List<String> values = new ArrayList<>(); private List<String> conditions = new ArrayList<>(); public SQLBuilder(String tableName) { this.tableName = tableName; } public SQLBuilder addColumn(String column) { columns.add(column); return this; } public SQLBuilder addValue(String value) { values.add(value); return this; } public SQLBuilder addCondition(String condition) { conditions.add(condition); return this; } public String createDDL() { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE ").append(tableName).append("("); for (String column : columns) { sb.append(column).append(","); } sb.deleteCharAt(sb.length() - 1); sb.append(")"); return sb.toString(); } public String createDML() { StringBuilder sb = new StringBuilder(); sb.append("INSERT INTO ").append(tableName).append(" ("); for (String column : columns) { sb.append(column).append(","); } sb.deleteCharAt(sb.length() - 1); sb.append(") VALUES ("); for (String value : values) { sb.append(value).append(","); } sb.deleteCharAt(sb.length() - 1); sb.append(")"); return sb.toString(); } public String createDQL() { StringBuilder sb = new StringBuilder(); sb.append("SELECT * FROM ").append(tableName); if (!conditions.isEmpty()) { sb.append(" WHERE "); for (String condition : conditions) { sb.append(condition).append(" AND "); } sb.delete(sb.length() - 5, sb.length()); } return sb.toString(); } } ``` 3. 使用SQL生成器生成SQL语句: ```java public class Main { public static void main(String[] args) { SQLBuilder builder = new SQLBuilder("user"); String ddl = builder.addColumn("id INT PRIMARY KEY AUTO_INCREMENT") .addColumn("name VARCHAR(50)") .addColumn("age INT") .createDDL(); System.out.println(ddl); String dml = builder.addValue("1") .addValue("'Tom'") .addValue("20") .createDML(); System.out.println(dml); String dql = builder.addCondition("age > 18") .createDQL(); System.out.println(dql); } } ``` 上述代码生成的SQL语句分别为: ```sql CREATE TABLE user(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT) INSERT INTO user (id,name,age) VALUES (1,'Tom',20) SELECT * FROM user WHERE age > 18 ``` 当然,这只是一个简单的示例,实际应用中可能需要更复杂的SQL操作和更灵活的生成方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值