数据库概念与SQL基本操作

数据库概念

什么是数据库

数据库就是用来存储和管理数据的仓库!

数据库存储数据的优点:

  • 可存储大量数据;

  • 方便检索;

  • 保持数据的一致性、完整性;

  • 安全,可共享;

  • 通过组合分析,可产生新数据。

理解数据库

  • RDBMS(关系型数据库管理系统;) = 管理员(manager)+仓库(database)

  • database = N个table

  • table:

    • 表结构:定义表的列名和列类型!

    • 表记录:一行一行的记录!

数据库服务器端, 存储数据

java程序/命令行/ 图形化界面 都是数据库服务器客户端

客户端通过jdbc协议(底层是TCP通信), 连接数据库服务器, 客户端发送sql语句给数据库服务器

数据库服务器, 解析并执行sql(调用数据库服务器的方法), 得到结果, 通过网络把结果响应给客户端

 

什么是SQL

QL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server等。SQ标准(ANSI/ISO)有:

  • SQL-92:1992年发布的SQL语言标准;

  • SQL:1999:1999年发布的SQL语言标签;

  • SQL:2003:2003年发布的SQL语言标签;

这些标准就与JDK的版本一样,在新的版本中总要有一些语法的变化。不同时期的数据库对不同标准做了实现。

虽然SQL可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为“方言”。例如MySQL中的LIMIT语句就是MySQL独有的方言,其它数据库都不支持!当然,Oracle或SQL Server都有自己的方言。

语法要求

  • SQL语句可以单行或多行书写,以分号结尾;

  • 可以用空格和缩进来来增强语句的可读性;

  • 关键字不区别大小写,建议使用大写;

分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

基本操作

查询所有数据库 
SHOW DATABASES;

创建数据库 
#语法:
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARACTER SET 字符集 COLLATE 排序规则字符集];
#创建数据库:
CREATE DATABASE [IF NOT EXISTS]数据库名称;

创建数据库,例如:CREATE DATABASE mydb1,创建一个名为mydb1的数据库。如果这个数据已经存在,那么会报错。例如CREATE DATABASE IF NOT EXISTS mydb1,在名为mydb1的数据库不存在时创建该库,这样可以避免报错。


DEFAULT CHARACTER: 默认的字符集, 如果没有设置,默认是utf8

COLLATE: 排序规则, 如果没有设置,默认是: utf8_general_ci

排序规则字符集:

utf8mb4_bin:将字符串每个字符⽤⼆进制数据编译存储,区分⼤⼩写,⽽且可以存⼆进制的内容。推荐使用

utf8mb4_general_ci:ci即case insensitive,不区分⼤⼩写。没有实现Unicode排序规则,在遇到某些特殊语⾔或者字符集,排序结果可能不⼀致。但是,在绝⼤多数情况下,这些特殊字符的顺序并不需要那么精确。 推荐使用

CREATE DATABASE IF NOT EXISTS 数据库名称 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

 

 

修改数据库编码
ALTER DATABASE 数据库名称 CHARACTER SET utf8;
删除数据库
DROP DATABASE [IF EXISTS] 数据库名称;
使用数据库
USE 数据库名称;

 

创建表

语法

CREATE TABLE 表名(

 列名 列类型 [约束] COMMENT'备注',

 列名 列类型 [约束] COMMENT'备注',

 ......

);

如:

CREATE TABLE stu (
sid CHAR(6) DEFAULT NULL COMMENT'学号',
sname VARCHAR (20) DEFAULT NULL COMMENT'姓名',
age INT,
gender VARCHAR (10)  DEFAULT NULL COMMENT'姓名'
);

 

 

表的其他基本操作
--查看当前数据库中所有表名称:
SHOW TABLES;
--查看指定表的创建语句:  查看emp表的创建语句;
SHOW CREATE TABLE emp;

--查看表结构:
DESC emp; --查看emp表结构;

--删除表:
DROP TABLE emp; --删除emp表;

--修改表:
--1. 修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));

--2. 修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);

--3. 修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);

--4. 修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;

--5. 修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;

例如查看表结构 DESC 表名;

 

插入数据

        插入指定列语法:         

INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)
INSERT INTO stu (sid, sname, age, gender) 
VALUES
('s_1001', 'zhangSan', 23, 'male');

INSERT INTO stu (sid, sname) 
VALUES
('s_1001', 'zhangSan') ;

        插入全部列语法:

INSERT INTO 表名 VALUES(值1,值2,…)

        因为没有指定要插入的列,表示按创建表时列的顺序插入所有列的值:

INSERT INTO stu VALUES('s_1002', 'liSi', 32, 'female');

实例:

 

 

修改数据

语法

UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]

 实例:

将liSi姓名改成zhangsan

删除数据

语法

DELETE FROM 表名 [WHERE 条件]
--删除所有  慎用
DELETE FROM stu;

实例

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值