Java学习笔记:数据库操作

1、数据定义语言/Data Definition Language(DDL)

用于定义数据库对象(库、表、列等)。

1.1、DDL对库操作

1.1.1、创建数据库(create database)

格式:    create database 数据库名;
举例:    create database mydb1;

格式:    create database 数据库名 character set 编码方式;
举例:    create database mydb2 character set gbk;

格式:    create database 数据库名 set 编码方式 collate 排序规则;
举例:    create database mydb3 set gbk collate gbk_chinese_ci;


1.1.2、查看数据库(show database)

(1)查看所有数据库
格式:    show databases;

(2)查看某个数据库
格式:    show create database 数据库名;
举例:    show create database mydb1;


1.1.3、修改数据库(alter database)

格式:    alter database 数据库名 character set 编码方式
举例:    alter database mydb2 character set utf8;


1.1.4、删除数据库(drop database)

格式:    drop database 数据库名;
举例:    drop database mydb3;


1.1.5、其他语句

(1)查看当前使用的数据库
格式:    select database();

(2)切换数据库
格式:    use 数据库名;
举例:    use mydb1;


1.2、DDL对表操作

1.2.1、创建新表(create table)
格式:    create table 表名(列名1 数据类型 [约束], 列名2 数据类型 [约束], ……, 列名n 数据类型 [约束]);
举例:    create table student(id int, name varchar(50), sex char(1));


1.2.2、数据类型
    int        整型
    double        浮点型
    char        定长字符串型
    varchar        可变长字符串型
    text        超长字符串型
    blob        字节型
    date        日期型(yyyy-MM-dd)
    time        时间型(hh:mm:ss)
    timestamp    时间戳型( yyyy-MM-dd hh:mm:ss,自动赋值)
    datetime    日期时间型(yyyy-MM-dd hh:mm:ss)


1.2.3、删除表(drop table)
格式:    drop table 表名;
举例:    drop table student;


1.2.4、查看表(show/desc)
(1)查看所有表
格式:    show tables;

(2)查看某个表的字段
格式:    desc 表名
举例:    desc student

(3)查看表创建细节
格式:    show create table 表名;
举例:    show create table student;


1.2.5、修改表(alter table)
(1)增加列
格式:    alter table 表名 add 新列名 数据类型;
举例:    alter table student add age int;

(2)删除列
格式:    alter table 表名 drop 列名;
举例:    alter table student drop sex;

(3)修改列属性(长度)
格式:    alter table 表名 modify 列名 数据类型 [约束];
    alter table 表名 change 列名 列名 数据类型 [约束];
举例:    alter table student modify name varchar(80);
    alter table student change name newname varchar(80);

(4)修改列名
格式:    alter table 表名 change 旧列名 新列名 数据类型 [约束];
举例:    alter table student change name myname varchar(100);

(5)修改表名
格式:    alter table 旧表名 rename 新表名;
举例:    alter table student rename student2;

(6)修改表属性(字符集)
格式:    alter table 表名 character set 编码方式
举例:    alter table student character set gbk

 


2、数据操作语言/Data Manipulation Language(DML)

用于对表中数据记录的增删改操作。

2.1、增加记录(insert)
格式:    insert into 表名(列名) values(数据值);
举例:    insert into student(name,sex,age) values('张三','m',18);
    insert into student values('张三','m',18);
    insert into student(name,sex,age) values('张三','m',18),('李四','f',19);
    insert into student(name,sex,age) values('王五',null,null);

 

2.2、修改记录(update)
格式:    update 表名 set 列名1=列值1,列名2=列值2 ... where 列名=值;
举例:    


2.3、删除记录(delete)
(1)删除表中符合条件的记录(删除的记录可恢复)
格式1:    delete from 表名 [where 列名=值];
(2)删除表并重建(记录不可恢复)
格式2:    truncate table 表名;


2.4、运算符
(1)算术运算符
符号:    +(加),-(减),*(乘),/(除),%(求余)
举例:    5/2、5%2

(2)赋值运算符
符号:    =
举例:    name='张三'

(3)逻辑运算符
符号:    and(并且)、or(或者)、not(取非)

(4)关系运算符
符号:    >(大于)、<(小于)、>=(大于等于)、<=(小于等于)、!=(不等于)、<>(不等于)、=(等于)

 

 


3、数据控制语言/Data Control Language(DCL)

用于定义访问权限和安全级别。

3.1、创建用户

(1)指定的ip登录
格式1:    create user 用户名@指定ip identified by 密码;
举例:    create user abc@localhost identified by '123456';

(2)任意ip都可登录
格式2:    create user 用户名@'%' identified by 密码;
举例:    create user abc@'%' identified by '123456';


3.2、用户授权
格式:    grant 权限1,权限2,……,权限n on 数据库名.* to 用户名@指定ip;
举例:    grant select,insert,update,delete,create on student.* to 'abc'@'127.0.0.1';
    grant all on *.* to 'abc'@'127.0.0.1';


3.3、查询权限
格式:    show grants for 用户名@指定ip;
举例:    show grants for 'abc'@'%';


3.4、撤销权限
格式:    revoke 权限1,权限2,……,权限n on 数据库名.* from 用户名@指定ip;
举例:    revoke select on *.* from 'abc'@'%';


3.5、删除用户
格式:    drop user 用户名@指定ip
举例:    drop user 'abc'@localhost;

 

 

4、数据查询语言/Data Query Language(DQL)

用于数据记录的查询。

4.1、简单查询
(1)查询所有列
格式:    select * from 表名;

(2)查询指定列
格式:    select 列名1,列名2,……,列名n from 表名;


4.2、条件查询
在简单查询的基础上,加上where子句以限定条件。

(1)where子句中可使用以下运算符:
=、!=、<>、<、<=、>、>=

(2)where子句中可使用以下关键字:
between 条件1 and 条件2、in(集合)、is null、and、or、not


4.3、模糊查询
(1)模糊查询是使用关键字like的条件查询。
(2)模糊查询中,可使用通配符_表示任意1个字符,或通配符%表示任意0到n个字符。

举例:    select * from student where name like '___';    (name长度为3个字符)
    select * from student where name like '____c';    (name长度为5个字符且第5位是c)
    select * from student where name like 'a%';    (name第1位是a,长度不限)
    select * from student where name like '%c%';    (name含有c,长度不限)
    select * from student where name like '_b%';    (name第2位是b,长度不限)


4.4、字段控制查询

(1)去除查询结果中的重复记录
格式:    select distinct 列名 from 表名 [where语句];

(2)字段运算
格式:    列名1+列名2、列名1-列名2、列名1+ifnull(列名2,0)、……
其中“ifnull(列名,数值)”表示指定列中如果是null则以指定数值参与运算。

(3)列的别名
格式1:    列名 as 别名
格式2:    列名 别名
举例:    select name,score+ifnull(bonus,0) as total from student;
    select name,score+ifnull(bonus,0) total from student;


4.5、查询结果排序
格式:    order by 列名 [asc/desc]


4.6、聚合函数
用于对指定列作纵向运算的函数:
count(列名):统计指定列不为NULL的记录行数;
max(列名):计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min(列名):计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
sum(列名):计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
avg(列名):计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0。


4.7、分组查询
(1)group by 子句
格式:    group by 子句
举例:    select level, sum(score) from student group by level;    (查询各level的总分)

(2)having 子句
用于对分组结果进行过滤,其中可使用分组函数。(where子句用于分组前,不可使用分组函数)
举例:    select level, sum(score) from student group by level having sum(score)>1000;

(3)limit 子句
用于限定查询结果显示的起止行。
格式1:    limit 开始下标,显示行数;
格式2:    limit 显示行数;            (默认从0开始)

(4)各子句总结
书写顺序:select – from - where - groupby - having - order by - limit

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值