保存一组数据的仓库就称为数据库
例如
编写一个用户管理系统,我们将用户输入的信息以User对象形式表示,并序列化后保存到某个.obj的文件中,用一个目录来保存所有的用户文件,这个目录也可以称为是一个"数据库".
只是对于文件的维护工作(新建文件,修改现有文件数据,删除文件数据)通过编码来实现.
一套可独立运行的软件,用于维护磁盘上的数据.维护性高,性能好,可扩展性强.
常见的数据库
MySQL
MariaDB
ORACLE
DB2
SQLServer
库
是表的集合,将来不同的项目都可以创建一个库,用来保存该项目中所有的表
表
是数据的集合,一组具有相同数据的数据保存在一张表上
行:一条记录,具有表中所有字段的一条实际数据
列:字段,一条记录应当具有的相应属性
不同的数据要保存在不同的表中,一个项目中所有的表应当存在一个数据库中.而DBMS可以同时管理多个库
DBMS安装后是以服务端的角色运行的,因此我们向操作数据库是以客户端的身份与数据库进行连接,并进行相关操作
Structured Query Language
SQL语言的特点:
关键字不缺分大小写
好的书写习惯:
关键字全大写,非关键字全小写
字符串内容是区分大小写的
在数据库中设计一张表时,要为表中每个字段(列)单独指定数据类型以确保可以保存正确的数据
整数类型
定长字符串
变长字符串
用于进行数据库对象的操作.数据库对象指:库,表,视图,索引,序列等
对数据库对象进行操作的语言:CREATE,ALTER,DROP
CREATE DATABASE 数据库名 [CHARSET=字符集]
新建一个数据库
指定字符集常用:UTF8,GBK
SHOW DATABASES
查看已经创建的数据库
SHOW CREATE DATABASE 数据库名
查看某个数据库创建时的信息
DROP DATABASE 数据库名
删除数据库
USE 数据库名
切换数据库
注意:
在DBMS下会为不同的项目创建不同的数据库,只有切换到某个数据库上,进行的相关操作才是针对该库的操作
CREATE TABLE 表名(
字段1名字 类型[(长度)] [DEFAULT 默认值] [约束],
字段2名字 类型[(长度)] [DEFAULT 默认值] [约束],
…
)
创建表
DESC 表名
查看表结构
SHOW CREATE TABLE 表名
查看表时创建的信息
SHOW TABLES
查看当前数据库所有的表
RENAME TABLE 原表名 TO 新表名
修改表名
DROP TABLE 表名
删除表
ALTER TABLE 表名 ADD 字段名 类型[(长度)] [DEFAULT默认值] [约束]
在一张表的末尾追加一个新的字段
ALTER TABLE 表名 ADD 字段名 类型 FIRST
在表最开始处插入字段
ALTER TABLE 表名 ADD 字段名 类型 AFTER 表中某字段
将新字段添加到表中指定字段的后面
ALTER TABLE 表名 DROP 字段名
删除表中字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型[长度 默认值 约束]
修改表中字段
修改表结构最好是在表中没有数据的前提下进行
如果表中已经存在数据
对表中数据进行操作的语言.包含:增(INSERT)删(DELETE)改(UPDATE)
INSERT INTO 表名 (字段1,字段2,字段3,…) VALUES(值1,值2,值3,…)
指定的值要与指定的字段一一对应,用于将值插入到表中作为一条记录
INSERT语句中没有被指明的字段都是插入默认值。如果该字段没有明确指定默认值时,默认值为NULL
注意事项:
数据库中字符串的字面量使用单引号
INSERT语句中VALUE子句中指定的值的顺序,个数,类型必须与前面指定的字段完全一致
INSERT语句指定的字段的顺序,个数可以与该表不完全一样
全列插入
INSERT语句中不指定任何字段时,则为全列插入,此时要求VALUES子句中指定的值的顺序,个数,类型必须与表结构定义完全一致
INSERT INTO 表名 VALUES(值1,值2,…)
全列插入
INSERT INTO 表名[(字段1,字段2,字段3…)] VALUES(值1,值2,值3),(第二组值),(第三组值),…
批量插入
SELECT * FROM 表名
查看指定表中的所有记录
UPDATE 表名 SET 字段1=新值1,字段2=新值2,… [WHERE 过滤条件]
修改表数据
WHERE子句的基础条件
WHERE子句中可以使用的基础条件判断:>, >=, <, <=, =, <>(判断不等于使用"<>“,有些数据库支持”!=")
DELETE FROM 表名 [WHERE 过滤条件]
删除表中数据
DELETE FROM 表名
清空表
用于检索表中数据的语言
子句 | 顺序 |
---|---|
SELECT | 6 |
FROM | 1 |
WHERE | 2 |
JOIN … ON … | 3 |
GROUP BY | 4 |
HAVING | 5 |
ORDER BY | 7 |
LIMIT | 8 |
SELECT
SELECT 字段1,字段2,… FROM 表1,表2…
SELECT * FROM 表1,表2… [WHERE 条件] [AND 条件] [OR 或/并列条件]
连接多个条件
AND:“与”,都为真时才为真
OR: “或”,都为假时才为假, 在SQL中有并列含义不是并且
AND的优先级高于OR
为了提高OR的优先级,可以使用"()"括起来
IN
NOT IN
BETWEEN n AND m
DISTINCT
LIKE
_
下划线表示一个字符(1个字符)
%
百分号表示任意个字符(0-任意次)
SELECT 字段 FROM 表 WHERE 字段 LIKE ‘_%’
常见格式
LIKE ‘%X%’
表示字符串中含有X(X之前或之后可以有任意个字符)
LIKE ‘_X%’
表示字符串第二个字符是X
LIKE ‘X%’
表示字符串是以X开头的
LIKE ‘%X’
表示字符串是以X结尾的
LIKE ‘%X_Y’
表示字符串倒数第三个字符是X并且最后一个字符是Y
NULL
ORDER BY [DESC]
是对数据库进行管理的,通常比如创建用户,分配权限等.(DBA重点学习)
包含:COMMIT(提交),ROLLBACK(回滚)
我们可以对表施加约束条件,这样一来只有满足约束要求的操作才可以进行,否则会被数据库拒绝
主键是用来唯一表示表中每一条记录的一个值
可以作为主键的值要同时满足的要求:
当表中某个字段添加了主键约束后,数据库会检查向该字段插入数据时是否非空且唯一,
一张表中只有能一个字段,添加主键约束作为主键的字段通常字段名命名为"id",一般也是表中的第一个字段
非空约束可以要求表中字段的值不允许为NULL。插入数据时必须指定该字段的值,修改数据时也不可以将NULL值修改到该字段上
唯一性约束要求对应字段的值在整张表中不能有重复的值,NULL除外
检查约束允许我们为指定字段设定约束条件,只有满足条件的操作才被允许
小编得知实际开发中几乎不会使用