Java学习笔记之操作数据库

链接Mysql

以管理员身份启动命令行窗口

启动mysql 命令:net start mysql

链接到Mysql的指令:mysql -h 主机ip地址 -P 端口 -u 用户名 -p密码

        -p后面不要空格

        -p后面没写密码回车会要求输入密码

        如果没写-h 主机,默认就是本机

        如果没写-P 端口,默认就是3306

MySQL基本结构

数据库在本地的位置在data文件夹中,表的本质就是文件。

表的一行称之为一条记录,在Java程序中,一条记录往往用一个对象来对应。

SQL语句的分类

        DDL:数据定义语句

        DML:数据操作语句[增加,修改,删除]

        DQL:数据查询语句[select]

        DCL:数据控制语句[管理数据库,如用户权限]

创建数据库

CHARAXTER SET :指定数据库采用的字符集,默认utf-8

COLLATE :指定字符集的校对规则

查看,删除数据库

显示所有数据库:SHOW DATABASES

显示数据库创建语句:SHOW CREATE DATABASE db_name

删除数据库(慎用):DROP DATABASE[IF EXISTS] db_name

备份和恢复数据库

备份数据库(要在DOS下执行)

        mysqldump -u 用户名 -p 密码 -B  数据库1 数据库2...数据库n > 路径.文件名.sql

备份表(要在DOS下执行)

        mysqldump -u 用户名 -p 密码 数据库 表1 表2 ... > 路径.文件名.sql

恢复数据库(进入mysql命令行再执行)

        Source 路径.文件名.sql

创建表

mysql常用数据类型(列类型)

特别说明DECIMAL[M,D]:可以支持更加精确的小数位。M表示总位数,D是小数点后位数,如果D是0则没有小数点后位数,M最大65,D最大30,D默认0,M默认10。

CHAR是固定长度的字符串,VARCHAR是根据数据实际长度分配内存的字符串,但是CHAR查询效率高于VARCHAR

        char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算.

        varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.
不管是 中文还是英文字母,都是最多存放4个,是按照字符来存放。

修改表

使用ALTER TABLE语句追加,修改或删除表

        column 表示列明,DEFAULT 表示默认值 exper是表达式

        修改表名:Rename table 表名 to 新表名;

        修改表字符集:alter table 表名 character set 字符集;

        修改列名:alter table 表名 change 表名 新列名 datatype() not null deffault' ';

                not null 表示该列不能为空,默认值是一个空格。

CRUD

INSERT插入语句

在value中列出的数据位置必须与被加入的列的排列位置相对应

字符和日期型数据应包含在单引号中

列可以插入空值前提是该字段允许为空

inser into tab name(列名....)values(),(),()形式添加多条数据

如果是给表中所有字段添加数据可以不写前面的字段名称即列名

当不给某字段值时如果有默认值就会自动添加,无默认值且没写not null则会默认null,否则报错

update修改语句

where子句指定修改哪些行如where name = ‘张三’,如果没有带where语句会修改所有记录! 

在where子句中经常使用到的运算符有

‘name’  like ‘张%’ 表示模糊查询,只要是以张开头的全都查询

delete删除语句

where语句用法同update语句

select查询语句

columun指定列名

*代表查询所有列

from指定查询哪张表

distinct关键字可选填,如果写表示在显示结果是去除重复的数据

可对查询到的数据进行运算比如SELECT 'name’ ,(chinese + english + math)FROM student

表示查询sudent表中所有学生成绩总和

还可以使用AS表达式取别名

        SELECT 'name’ ,(chinese + english + math)AS totalscore FROM student 表示将查询到的成绩总和取个别名叫totalscore

可以使用order by子句对查询结果进行排序

Order by 指定排序的列,排序的列既可以是表中的列名,也可以是selec语句后指定的列名。

Asc 升序[默认]、Desc 降序

ORDER BY 子句应位于SELECT语句的结尾 

统计函数count

count返回行的总数,还可以加where限定

SELECT COUNT(*) FROM student 表示返回student表所有行的个数

SELECT COUNT(*) FROM student WHERE math > 90表示返回student表中math值大于90的行数

count(*)返回满足条件的记录的行数

count(列)统计满足条件的某列有多少个,但是会排除为null的情况

求和函数sum

sum函数返回满足where条件的所有行相应列上值的和,一般用在数值列

求平均函数avg

最大最小值函数

分组过滤函数

字符串相关函数

实例:以首字母小写的方式显示所有tab01员工表的姓名

        SELECT CONCAT(LCASE(LEFT(NAME,1)),SUBSTRING(NAME,2)) FROM tab01;

数学函数

时间函数

加密函数和系统函数

流程控制函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值