【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据
存储数据的仓库就称为数据库,DML:数据操作语言,对表中数据进行操作的语言。INSERT语句用于向表中插入数据,UPDATE语句用于修改表中数据.
目录
数据库管理系统Database management system(简称DBMS)
数据库基本概念
数据库DataBase(简称DB)
存储数据的仓库就称为数据库 在我们的项目中我们使用users目录保存若干的obj文件,每个文件保存一个用户信息, 这个users就可以称为是一个数据库.只是我们维护数据要么手动,要么写java代码读写操作 来进行维护. 低效,且不通用.
数据库管理系统Database management system(简称DBMS)
它们都是独立可运行的软件,我们用java写的程序可以连接这些软件让其负责对数据进行维护 常见的DBMS:
- oracle
- mysql
- DB2
- SQLServer
如何操作DBMS?
SQL语言:Structured Query Language SQL有执行标准:SQL92 SQL语言是操作DBMS的语言,所有的DBMS都支持标准的SQL语言以及自身提供的可扩展SQL
连接数据库的方式:
1:命令行(控制台)的客户端 show databases; 2:图形化界面的客户端 3:IDEA终极版提供了连接数据库的功能 4:在JAVA中要是用JDBC连接数据库
SQL语句的分类:
-
DDL:数据定义语言,用来操作数据库对象(数据库对象:表,索引,序列等都属于数据库对象)
包含的语法:CREATE,DROP,ALTER
-
DML:数据操作语言,用来操作表中的数据(包含的操作:对数据的增删改)
包含的语法:INSERT,UPDATE,DELETE
-
DQL:数据查询语言,用来查询表中的数据
包含的语法:SELECT
-
TCL:事务控制语言
包含的语法:COMMIT,ROLLBACK
-
DCL:数据控制语言,通常用来让DBA管理数据库使用
DDL数据定义语言
查看DBMS里有多少个数据库?
SHOW DATABASES;
新建一个数据库:
语法:
CREATE DATABASE 数据库名 列如:CREATE DATABASE mydb;
创建一个数据库时可以指定该数据库使用的字符集
CREATE DATABASE 数据库名 CHARSET-UTF8/GBK 例如:CREATE DATABASE mydb2 CHARSET=UTF8
创建数据库:db1(字符集用gbk) db2(字符集用utf8)
CREATE DATABASE db1 CHARSET=GBKCREATE DATABASE db2 CHARSET=UTF8
查看数据库信息
SHOW CREATE DATABASE 数据库名 列如:SHOW CREATE DATABASE db2;
删除数据库
DROP DATABASE 数据库名 列如:DROP DATABASE db1 DROP DATABASE db2
想要保存数据,那么数据是保存在表中的,而表是归属于某一个数据库的.因此我们在创建 表之前必须要先使用某一个已创建的数据库.
使用某个指定的数据库:
USE 数据库名 例如:使用mydb 这个数据库:USE mydb;
先使用mydb2 再使用mydb1
USE mydb2;
USE mydb1;
创建表
CREATE TABLE 表名(字段名1 数据类型,字段名2 数据类型,...)
例如:创建一张表userinfo用来保存信息,每个用户保存内容有:用户名,密码,昵称,年龄,其中年龄为整数,其余为字符串
CREATE TABLE userinfo(id INT, username VARCHAR(30), password VARCHAR(30), nickname VARCHAR(30), age INT);
查看当前数据库中已创建的表 SHOW TABLES
查看某一张表的详细信息
SHOW CREATE TABLE 表名 SHOW CREATE TABLE userinfo
查看表结构
DESC 表名
查看userinfo 表的结构 --------DESC userinfo;
删除表
DROP TABLE 表名
例如:删除user表 ---------DROP TABLE user;
修改表
- 修改表名
RENAME TABLE 原表名 TO 新表名
将userinfo表改名为user
RENAME TABLE userinfo TO user;
- 修改表结构
ALTER TABLE
添加列:
ALTER TABLE 表名 ADD 列名 类型
向user表中追加性别
ALTER TABLE user ADD gender VARCHAR(10);
在hero第一列上追加新列
ALTER TABLE 表名 ADD 字段名(列名)类型 FIRST
ALTER TABLE hero ADD id INT FIRST;
在表中插入一个新字段
ALTER TABLE 表名 ADD 字段名 类型 AFTER 字段
例如:在hero 表的姓名和年龄之间加入gender字段
ALTER TABLE hero ADD gender VARCHAR(10) AFTER username;
删除字段
ALTER TABLE 表名DROP 字段名
删除hero表中的字段gender
ALTER TABLE hero DROP gender;
修改表中的字段
ALTER TABLE 表名 CHANG 原字段名 新字段名 新类型
注意:可以修改表中字段的类型,长度信息,但是尽量不要再表中包含数据后再进行修改,否则可能因为表中现有数据违背该字段修改之后的要求导致修改失败。
将hero表中age字段类型从INT更换为VARCHAR
ALTER TABLE hero CHANG age age VARCHAR(10);
将字段age类型长度改为100;
ALTER TABLE hero CANGE age age VARCHAR(100);
将字段age改为gender,长度改为10,类型不变;
ALTER TABLE hero CHANGE age gender VARCHAR(10);
总结
- DDL语言,数据定义语言,操作数据库对象的(表,索引,视图)
- CREATE,ALTER,DROP
- 创建表:CREATE TABLE
- 修改表:ALTER TABLE
- 删除表:DROP TABLE
DML语言
DML:数据操作语言,它是对表中数据进行操作的语言,它包含:增,删,改
创建一张 表用于测试DML;
CREATE TABLE person(
name VARCHAR(30),
age INT(3)
)
插入数据
语法:
INSERT INTO 表名【(字段1,字段2)】 VALUES(字段1的值,字段2的值,...)
INSERT INTO person(name,age)VALUES('张三',22);
INSERT INTO person(age, name)VALUES(22,'张三');
在数据库中,字符串是使用单引号;
指定的值要与前面指定的类的顺序,类型,个数完全一致;
查看person表中的所有数据
SELECT * FROM person
在INSERT语句中未被指定的列在插入数据时,默认插入NULL值,如果未指定的列指定了默认值,则插入指定的默认值;
INSERT INTO person(name) VALUES('王五)
age字段就会插入默认值NULL;
在数据库中,无论表中某个字段的类型是什么,只要没有单独指定过默认值时,默认值都是NULL。
在INSERT 语句中字段名可以忽略,若忽略则为全列插入,此时VALUES后指定的值顺序、类型、个数必须与表中字段一致。
INSERT INTO person VALUES('赵六’,56);
INSERT INTO person VALUES(‘钱七’,NULL);
所有字段都必须给值,如果想插入NULL值,则直接指定NULL即可;
以下都是错误的操作
INSERT INTO person VALUES('赵六'); 列的值个数不匹配
INSERT INTO person VALUES(22,'赵六'); 列的值类型不匹配
修改表中数据
语法:
UPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2,....... 【WHERE 过滤条件】
通常情况下修改表中记录时都要指定WHERE条件,如果不添加WHERE条件则是对表中每一条记录都进行修改!
UPDATE person SET age=15;
执行后,person表中每条记录的age子弹的值都会变为15.
修改指定记录
将张三的年龄修改为22岁;
UPDATE person SET age =22
WHERE name = ‘张三’;(where子句在这里的作用:仅选定表中name字段值为张三的记录)
将年龄等于15岁的人改为年龄36岁;
UPDATE person SET age=36 WHERE age =15;
(满足where条件的记录都会进行修改)
WHERE子句中常用的条件
=,<, >, >=, <= ,<>(不等于,!=不是所有数据库都支持)
将年龄大于30岁的人改为年龄29;
UPDATE person SET age=29 WHERE age>30;
将一个计算表达式的结果作为修改的值使用
将person表中每个人的年龄都涨一岁;
UPDATE person SET age=age+1;
同时修改多个字段
将‘李四’的名字改为‘老李四’并且把年龄改为55;
UPDATE person SET name=‘老李四’,age=55 WHERE name=‘李四’;
SQL语句中的每个子句之间可以有任意个空格或换行。且SQL语句关键字是不区分大小写的。
字符串的内容是严格区分空格,大小写的。
删除表中数据
语法
DELETE [FROM] 表名【WHERE 过滤条件】
WHERE子句不写,则是清空表操作!
删除‘李老四’这条记录
DELETE FROM person WHERE name=‘李老四’;
删除表中年龄在38岁以上的(含30)
DELETE FROM person WHERE age>=30;
清空表操作
DELETE FROM person;
总结
- DML:数据操作语言,对表中数据进行操作的语言。
- INSERT语句用于向表中插入数据
- INSERT时指定的字段顺序可以不与表中一致,但是VALUES中的值必须与指定的字段一致
- 不指定的字段插入默认值,字段没有指定默认值时,默认值为NULL
- 当完全不指定字段时,则为全列插入,此时VALUES中指定的值顺序,类型,个数必须与表完全一致
- UPDATE语句用于修改表中数据
- DELETE语句用于删除表中数据
- UPDATE语句和DELETE语句实际应用中要添加WHERE子句,否则都是对表中全部记录进行操作
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)