下面记录一些常用的数据库命令。其中,加下划线是需要根据实际情况变更的,加[]的是可选参数。
一、基础命令与基础知识:
1、查看有哪些数据库:
show databases;
此时会返回已存在的数据库名。
2、选择数据库:
use 数据库名;
3、查看某个数据库中的表(需要先use):
show tables;
4、查询该数据库中某个表的所有数据
select * from [数据表名];
5、退出数据库
exit;
6、几个基本概念
元组:数据表中,一行为一个元组。例如:学生信息表中,一个学生的所有信息即为一个元组。
字段:也称属性,表中,一列即为一个属性,用于描述所在列的语义。例如:学生的学号、姓名等。
主键:用于标识元组。例如每名同学的学号都不同,可以将学号作为主键,通过学号即可索引到每位学生。因为主键是该元组的标识,因此必须唯一。
数据类型:用于定义属性的数据类型。列出几个常用的:
关键词 | INT | REAL | DOUBLE PRECISION | FLOAT(n) | NUMERIC(p,d) | CHAR(n) | VARCHAR(n) | DATA | TIME |
含义 | 长整数 | 单精度浮点数 | 双精度浮点数 | 可设置精度的浮点数 | 定点数,p位数字,d位小数 | 长度为(n)的定长字符串 | 长度为n的变长字符串 | 日期 | 时间 |
例如,年龄是整数,生日是日期类型,姓名是字符串等。
约束:约束是对属性的一些限制,例如设置某个属性为主键,某个信息不能以空值填入数据表等等。
名称 | 句式 | 举例 | 备注 |
主键约束 | primary key | rno char(5) primary key | 给rno属性设置主键约束 |
联合主键 | primary key(属性1,属性2,...) | primary key(rno, bisbn, stdate) | 为rno, bisbn, stdate三个属性设置联合主键约束(即不能同时相同,但是可以部分相同) |
非空约束 | not null | rname char(20) not null | 设置rname属性不能为空值 |
唯一约束 | unique | sname char(20) not null unique | 设置sname属性非空且不能重复(取值唯一) |
外键约束 | foreign key (本表属性名) references 被参照表名(属性名) | foreign key (rno) references reader(rno) | 本表的rno属性取值为reader中rno的取值 |
检查约束 | check(条件表达式) | rage int check(rage between 0 and 100) | rage取值在0到100之间 |
还有其他约束,可以现用现查。
二、对数据库进行基础的读写操作
1、创建数据库:
create database 数据库名
2、创建一个数据表:
create table 数据表名 ( 字段1名 字段1类型 [字段1约束],
字段2名 字段2类型 [字段2约束], ... );
例如:创建一个学生信息表,包含:学号(sno),姓名(sname),性别(ssex),生日(sbirthday),班级(class) 这5个属性,其中sno为主键。
create table student(
sno varchar(20) primary key,
sname varchar(20) not null,
ssex varchar(10) not null,
sbirthday datetime,
class varchar(20)
);
其中,primary key 意思是主键约束,即将sno设为主键。not null 是非空约束,即sname和ssex两个属性不能为空,sbirthday和class两个属性不设置约束。
3、插入数据
insert into 表名 [属性列名1, 属性列名2, ...] values (属性1值, 属性2值, ...)
注意:属性名可以不填,若不填,则插入所有属性的值。
例如,向student表中插入:
insert into student values('107','王尼玛','男','2000-01-01','95033');
4、修改数据
update 表名 set 属性列名1 = 表达式1, 属性列名2 = 表达式2 ... [ where 条件]
例如,将名字叫“王尼玛”的性别改为女
update student set ssex = '女' where sname = '王尼玛';
改完表后,效果如下:
6、删除数据
delete from 表名 [where 条件]
如果不使用where条件,则删除表中所有数据
例如,删除学号为107的的数据
delete from student where sno = '107';
7、查询
查询的内容比较多,后续再开一博客,敬请期待。