首页 > 数据库 >java第30天sql基础

java第30天sql基础

时间:2022-10-17 20:33:23浏览次数:44  
标签:java where 数据库 30 数据类型 字段 sql 表名 数据

MYSQL

1.sql语句

(1)sql语句:结构化查询语言-->写一段只能被数据库识别的语句,可以对数据库中的数据进行增删改查操作
(2)sql语句的组成:

  • DML:数据操作语言-->数据库中的增删改(insert,delete,update)
  • DDL:数据定义语言-->对数据库中的表结构进行操作(alter,create,drop等)
  • DCL:数据控制语言-->数据库中的权限设置以及事务提交和回滚(granted,revoke,commit,rollback)
  • DQL:数据查询语言-->数据库中的查询(select)

2.数据库中的数据类型

1 整数:int(数字):数字通常是指整数的位置(该位数数字并不会影响int的取值范围)
2 小数:double(数字1,数字2):
例如:double(8,2):表示该数的整数位最多为6位,二小数位保留两位
3 日期类型:date
4 字符串类型:

  • char(长度)
  • varchar(长度)
    注意:上面两个类型都表示字符串的长度最多为多少,区别在于char是一个不可变的字符串类型,也就是说括号里的长度写了多少,存进去的数据如果不足该长度,会自动补全长度.而varchar是一个可变的字符串类型,也就是存多少,占多少.
    例如:char(12):如果存的长度是4,则会补全12个空格
    varchar(12):如果存的是长度4,那就是4

3.创建表

语法:create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名n 数据类型
)
注意:最后一个字段的数据类型后面不需要添加逗号!

4.添加数据

insert

语法1:
insert into 表名(字段1,字段2,字段n) values(字段1的值,字段2的值,字段n的值)
语法2:
insert into 表名 values(字段1的值,字段2的值,字段n的值)

语法1的好处是,插入数据的时候,可以自行选择插入数据的字段顺序,且碰到没有费控约束条件/有默认约束字段时,我们可以选择不手动插入该字段的值
语法2的表名后面没有接对应的字段,这就要求使用者插入数据的时候,数据的值必须要和表中字段出现的顺序一一对应上,因此语法1使用看起来更加的灵活

5. 查询:

  1. select 字段1,字段2,字段n from 表名(where 条件是)
  2. select * from 表名(where 条件是)
    注意:select在查询数据的时候,需要加where条件进行数据筛选,否则如果数据量过大,每次在查询所有数据,会过度占用系统资源(实际开发时,查询一定要注意添加where或者分页查询数据)
    查询语句还支持算术运算符(+,-,*,/,%),关系运算符(<,>,=,!=,<>,>=,<=)

6. null值

注意:判断是不是null需要使用is或者is not

7. and(&&)和or(||)

8. 修改:

语法:

update set 字段1=值1,字段2=值2...字段n=值n (where 条件是)

注意:update在更新数据的时候,一定记得添加where,否则整个表中的数据都会被修改

9. 删除

  • delete:删除表中所有的数据(可以回滚)
    注意:delete在删除的时候,也需要添加where条件,否则会将表中所有的数据都删除
    语法:
update from 表名 where 条件
  • drop:删除表结构(不能回滚)
    语法:
update table 表名
  • truncate:删除表中的所有数据(不能回滚)
    语法:
truncate table 表名

注意:不能与where连用

10.数据库事务的提交和回滚

  • commit:手动提交事务
  • rollback(只回滚到上一次提交的地方)
    mysql数据库默认的情况下是自动提交数据的,也就是我们对数据库进行增删改查操作,会直接影响到数据库中的数据,如果我们设置了数据库不自动提交数据,name进行增删改查后,就需要我们手动commit提交,否则,并不会真实影响数据库中的数据
    set autocommit=0; -- 设置数据库不自动提交
    set autocommit=1; -- 设置数据库自动提交

11. 在dos命令开启事务

begin;
或者start stransaction;
步骤:

mysql -uroot -p密码
use 数据库名 
begin;或者stransaction;
写sql语句
rollback或者commit

12.修改表结构

  • 新增字段
    语法:
    alter table 表名 add 新增字段名 数据类型
  • 修改字段的数据类型(不能在有数据的情况下去修改)
    alter table 表名 modify 字段名 新的数据类型

13 查看表结构

desc 表名

约束条件

- 主键约束:primary key 非空且唯一

  1. 主要使用于id字段(序号字段)
  2. 一个表中最多只能有一个主键
  3. 多个字段可以联合起来共同做主键(复合主键)
    - 非空约束:not null 非空
  4. 必填的字段
    - 默认约束:default 有默认值
    - 唯一约束:unique key 唯一
  5. 不能重复存在的内容
    - 自增长约束:auto_increment 会自动增长
  6. 通常和主键绑定,设置自增
  7. 自增的值我们可以设置,但是不建议,默认自增1
    - 外键约束:foreign key 用于多张表
  8. 建立外键的表之间数据是互相关联约束的
  9. innodb才支持外键设置
  • InnoDB
  • MyISAML

标签:java,where,数据库,30,数据类型,字段,sql,表名,数据
From: https://www.cnblogs.com/gjlnb/p/16800531.html

相关文章

  • sqlyog连接hive解决方案
    解决步骤:(代码无需修改直接按顺序复制粘贴到Linux命令即可)1.需要在cent7中开放端口,开放端口需要开启防火墙。systemctlstopfirewalld.service关闭防火墙systemctlstar......
  • Postgresql 安装pg_pathman 高效分区表实现
    ​介绍目前PostgreSQL社区版本的分区表功能比较弱,需要通过继承和触发器或RULE来实现分区表的功能,由于查询和更新涉及约束的检查、插入则涉及触发器或规则重写,导致分区功能性......
  • MySQL Cluster 介绍
    ​MySQLCluster介绍MySQLCluster是一个基于NDBCluster存储引擎的完整的分布式数据库系统。不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能。和OracleReal......
  • java--Integer和Character常用方法
    //装箱:基本类型转换为包装类对象。通过包装类.valueOf();实现//Integernum2=Integer.valueOf(100);   Integernum1=100;   Integernum3=newInte......
  • Java8中处理日期和时间的常用API
    场景java8中引入了一个新包java.time,包含了多数会用到的核心类。注:博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书、教......
  • 2022年最新最全1100+JAVA服务端面试题
    ​Hash索引和B+树区别是什么?你在设计索引是怎么抉择的?描述下Redis的回收策略(淘汰策略)?描述下JVM类加载机制与对象的生命周期?为什么HashMap中String、Integ......
  • java 静态代码块 非静态代码块
    java中的静态代码块在类加载的时候调用(只调用一次),普通代码块在创建对象(只要创建新的对象都会调用一次)的时候调用,普通代码快的调用在构造方法之前publicclassPuTong......
  • MySQL安装教程
    一、准备MySQL官网下载解压安装包二、配置环境变量依次打开此电脑->属性->高级系统设置->环境变量在系统变量path中添加自己的mysql\bin路径我的路径:D:\Mysql\mys......
  • P1930 [USACO3.3]亚瑟王的宫殿
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglongintr,c;intkx,ky;intMap[1001][1001];namespacebfs{constintdx[8]={1,1,2,2,-1,-1,-......
  • javaweb
    <td><astyle="color:blue"href='showall.jsp?name=<%=(d.getName())%>'><%=(d.getName())%></a></td>                   ......