Java中两种常用的数据库: MYSQL Oracle
MYSQL :开源免费的数据库,小型的数据库。由瑞典MySQL AB 公司开发,适合中小企业使用,由C语言和C++编写的。已经被Oracle收购了MySQL6.x版本也开始收费。
Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
MYSQL启动:
1. 登入mysql:
格式1:cmd> mysql –u用户名 –p密码
例如:mysql -uroot –proot
格式2:cmd> mysql --host=ip地址 --user=用户名 --password=密码
例如:mysql --host=127.0.0.1 --user=root --password=root
SQL通用语法
1. SQL语句可以单行或多行书写,以分号结尾
2. 可使用空格和缩进来增强语句的可读性
3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4. 例如:SELECT * FROM user。
5. 同样可以使用/**/的方式完成注释
6. MySQL中的我们常使用的数据类型如下
数据库操作:database
创建数据库* create database 数据库名;
#创建数据库数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
CREATE DATABASE webdb_1;
查看数据库
show databases;
查看某个数据库的定义的信息:
show create database 数据库名;
show create database webdb_1;
删除数据库
drop database 数据库名称;
drop database webdb_2;
切换数据库:
use 数据库名;
数据表操作:table
create table 表名(
字段名类型(长度) [约束],
字段名类型(长度) [约束],
...
);
类型:
varchar(n)字符串
int 整形
double 浮点
date 时间
timestamp 时间戳
删除表格式:drop table 表名;
例如:drop table category;
修改表结构
/*
修改表添加列:alter table 表名 add 列名类型[长度] [约束];
*/
ALTER TABLE category ADD NAME INT;
/*
修改表修改列的类型长度及约束.:
alter table 表名 modify 列名类型[长度] [约束];
注意: 如果有数据,必须注意数据类型varchar-->int 容易有错误数据
*/
ALTER TABLE category MODIFY description INT;
ALTER TABLE category MODIFY description VARCHAR(20) NOT NULL;
/*
修改列名以及数据类型和约束:
alter table 表名 change 原列名新列名类型[长度] [约束];
*/
ALTER TABLE category CHANGE description descr INT;
插入表数据
往数据库表中插入数据:使用关键字 insert [into]
格式:
包含主键:insert into 表名(字段1,字段2,...) values(值1,值2,...);
主键自增,省略主键:insert into 表名(不包含主键) values(不包含主键);
-- 包含主键:insert into 表名(字段1,字段2,...) values(值1,值2,...);
INSERT INTO category (cid,cname) VALUES(1,"服装");
-- 主键自增,省略主键:insert into 表名(不包含主键) values(不包含主键);
INSERT INTO category (cname) VALUES("彩电");
批量插入数据
格式:
包含主键:insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...)...
主键自增,省略主键:insert into 表名(不包含主键) values(不包含主键),(值1,值2,...),(值1,值2,...)...;
更新表数据,使用关键字 update(更新,修改) set(设置)
格式:
不带条件过滤,一次修改列中所有的数据
update 表名 set 字段名=字段值,字段名=字段值,...;
带条件过滤,使用关键字where
update 表名 set 字段名=字段值,字段名=字段值,... where 过滤条件;
删除表数据使用关键字 delete(删除) from(来自)
格式:
delete from 表名 [where 条件过滤];
delete from 表名删除表中的所有数据,但是不会删除主键自增
truncate table 表名;删除表中的所有数据,会删除主键自增,让主键自增重置重1开始
主键约束使用关键字 primary key
非空约束使用关键字 not null
-- 创建唯一约束的第一种格式,创建表时,在字段后直接给出
-- 添加的第一种方式,在列名之后直接添加
CREATE TABLE persons(
Id_P INT PRIMARY KEY,
LastName VARCHAR(255) UNIQUE,
City VARCHAR(255) NOT NULL
);
-- 删除主键
-- ALTER TABLE Persons DROP PRIMARY KEY
-- 删除非空约束
ALTER TABLE persons MODIFY city VARCHAR(255);
删除唯一约束 ALTER TABLE Persons DROP INDEX 名称
定义约束的时候,如果没有创建名称,则名称为字符串
ALTER TABLE persons DROP INDEX LastName;
MySQL数据库密码重置(扩展)
a. 停止mysql服务器运行输入services.msc 停止mysql服务
b. 在cmd下,输入mysqld --console --skip-grant-tables 启动服务器,出现一下页面,不要关闭该窗口
c. 新打开cmd,输入mysql -uroot 不需要密码
use mysql;
update user set password=password('abc') WHERE User='root';
d. 关闭两个cmd窗口