数据库
数据库概念
数据库
(DataBase,DB
):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合
。
数据库管理系统
(DataBase Management System,DBMS
):指一种操作和管理数据库的大型软件
,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
SQL语言
DDL
(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;DML
(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据-增删改);DQL
(Data Query Language):数据查询语言,用来查询记录(数据)。DCL
(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
DDL:数据定义语言
DDL主要是针对数据库,表,列的操作
。这里的操作是指创建,查询,修改,删除。
数据库操作:
查询数据库
show databases;
创建数据库
creat database 库名;
修改数据库
修改数据库只能修改数据库的字符集,而不能修改数据库的名字
。
alter database ...
删除数据库
drop database 库名;
表操作:
操作表的前提是需要进入到某个数据库中
,才可以对数据库内部的表进行操作。
选择/进入数据库
use 库名;
查询当前数据库
select database();
查询当前库下的所有表
show tables;
创建表
create table 表名(
字段名1 数据类型(长度),
字段名2 数据类型(长度),
...
字段名n 数据类型(长度)
);
注意:
每个字段之间用
逗号
隔开,最后一个字段则不需要逗号隔开。
常用的数据类型
数据类型 | 解释 | 长度 |
---|---|---|
int | 整型 | 默认长度11,可以不写 |
varchar | 字符串 | 0-255 |
char | 字符串 | 0-255 |
double | 浮点型 | (x,y)总长x位,其中包含y位小数 |
date | 日期型 | 没有长度 |
datetime | 日期时间 | 没有长度 |
timestamp | 时间戳 | 没有长度 |
注意:
在数据库中,字符串部分单字符或字符串,
所有的字符串都是单引号
。varchar和char的区别
varchar
:是长度可变的字符串
, 例如: name varchar(10),存入’张三’,那么varchar的实际长度为2,而不是规定的10。
char
:定长
。 例如:name char(10),存入’张三’,那么它的长度就是10,而不够的地方使用空格补充。
案例:
CREATE TABLE student (
id INT,
sname VARCHAR ( 20 ),
age INT,
sex CHAR ( 1 )
);
结果:
修改表名
rename table 旧名 to 新名;
修改列名
alter table 表名 change 旧名 新名 数据类型(长度);
查看表结构
desc 表名;
表中加列
alter table 表名 add 新列名 数据类型(长度);
表中删列
alter table 表名 drop 列名;
删除表
drop 表名;
DML:数据操作语言
DML:数据操作语言,主要针对表中数据进行操作,操作包括了增、删、改
。
增(insert):
语法
insert into 表名(字段1,字段2,...) values (值1,值2,...);
用法
1、标准语法
insert into person(id,name,age,sex) values (1,'张三',19,'男');
2、省略。当要插入全部列时,表名后的列名可以省略,但是值的顺序要和表中列的顺序保持一致
。
insert into pserson values(2,'李四',20,'男')
3、插入部分数据。列和值的顺序、个数、数据类型都要保持一致
。
insert into person(name,sex) values('王武','男')
4、插入多条数据
insert into person values
(4,'赵柳',22,'女'),
(5,'李白',700,'男'),
(6,'辛弃疾',600,'男'),
(7,'白居易',500,'男');
删(delete):
语法
delete from 表名 [where 限制条件];
删除时,我们一般都会加上限制条件,否则会删除表中全部数据。
delete和truncate的区别
delete | truncate | |
---|---|---|
语言 | DML | DDL |
范围 | 删除指定数据 | 只能删除全表数据 |
性能 | 删除数据时会产生碎片 | 不会产生碎片,清空表时效率高 |
关于自增 | 删除数据时,不影响自增顺序 | 自增会从1开始 |
原理 | DELETE语句是逐条删除数据表中保存的数据 | truncate是先执行删除(drop)数据表的操作,然后在根据有效的表结构文件(.frm)重新创建数据表 |
改(update):
语法
update 表名 set 字段1 = 值1 [, 字段2 = 值2, ...] [where 限制条件];
对于修改,我们同样采用添加限制条件的因素。