JAVA基础-数据库基础操作

SQL语言的分类

  1. 数据定义语言:(DDL,Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop 等。

  2. 数据操作语言:(DML,Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update 等

  3. 数据控制语言:(DCL,Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户;关键字:grant 等。

  4. 数据查询语言:(DQL,Data Query Language),用来查询数 据库中表的记录。关键字:select,from,where 等

MySQL数据类型分类

MySQL支持多种数据类型,大致分为三类:

数值

日期/时间

  • 日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和 YEAR

  • 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的 MySQL不能表示的值时使用"零"值。

字符串(字符)类型

  • 字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、 BLOB、TEXT、ENUM和SETCHAR和VARCHAR类型类似,但它们保存和检索的方式不同。
  • BINARY和VARBINARY类似于CHAR和VARCHAR,不同的是它 们包含二进制字符串而不要非二进制字符串。
  • BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB
  • 有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和 LONGTEXT。

简单的SQL语法

创建数据库

create database 数据库名; 

create database 数据库名 character set 字符集; 

建议字符集格式设置 utf8或gbk 

查看数据库

查看数据库服务器中的所有的数据库:show databases;
查看某个数据库的定义的信息:show create database 数据库名;

删除数据库

drop database XXX

修改数据库

修改数据库默认的字符集:
alter database 数据库名 default character set 字符集

创建表

create table 表名(
 -- 可以定义多个列
字段名 类型(长度) 约束,
 字段名 类型(长度) 约束
);
查看数据库中的所有表:show tables;
查看表结构:desc 表名; 
查看创建表的 SQL 语句:show create table 表 名;

这里要注意的是double类型在指定长度的时候,我们需要指定小数点之前的长度和小数点之后的长度。

删除表

drop table 表名;

修改表

--修改表添加列
alter table 表名 add 列名 类型(长度) 约束;
-- 修改表修改列的类型长度及约束
alter table 表名 modify 列名 类型(长度) 约束; 
-- 修改表修改列名
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
-- 修改表删除列
alter table 表名 drop 列名; 
-- 修改表名
rename table 表名 to 新表名;

约束

主键约束

主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录

//创建表的时候添加主键
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)


//后期添加主键
ALTER TABLE Persons ADD PRIMARY KEY (Id_P)

//如果想添加多个列的主键
ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

//删除
ALTER TABLE Persons DROP PRIMARY KEY
ALTER TABLE Persons DROP CONSTRAINT pk_PersonID

//查看当前约束
SHOW KEYS FROM students ;

唯一约束

• 唯一约束是指定table的列或列组合不能重复,保证数据的唯一性

• 唯一约束不允许出现重复的值,但是可以为多个null

• 同一个表可以有多个唯一约束,多个列组合的约束

• 如果不给唯一约束名称,就默认和列名相同

• MySQL会给唯一约束的列上默认创建一个唯一索引

---添加唯一约束   
Alter Table stuInfo Add Constraint UQ_stuID unique(stuID)   

外键约束

---添加外键约束   
ALTER TABLE students 
ADD CONSTRAINT FOREIGN KEY (class_Id) REFERENCES class(class_Id);

插入数据

# 插入一条数据
INSERT INTO class (class_Id,NAME) VALUES ( 3, '三班')

#插入全部数据的简写
INSERT INTO class  VALUES ( 3, '三班')

# 插入多行数据
INSERT INTO class VALUES ( 5, '五班') ,(6,'六班')

删除数据

//删除整个表
DELETE FROM teache;

//删除表中符合条件的某个数据
DELETE FROM students WHERE class_Id=3;

注意:
删除表中所有记录使用【delete from 表名】,还是用【truncate table 表名】? 删除方式的区别:

  • delete :一条一条删除,不清空 auto_increment 记录数。只删除数据表结构还在
  • truncate :直接将表删除,重新建表,auto_increment 将置为零,从新开始。

修改数据

UPDATE students SET NAME='王健森',age=24 WHERE NAME='王五'
posted @ 2020-07-03 20:47  不愿透漏姓名的王建森  阅读(231)  评论(0编辑  收藏  举报