关系型数据库-sqlite3(Linux终端)

数据库(DataBase 简称DB)

简单来说 数据库可以看作电子化的文件柜。是用来存储电子文件的地方。
用户可以对文件中的数据进行增删改查等操作。

更直白一点 他就是一个存放数据(电子化表格 类似于excel)的仓库
严格意义上来说 并不是学习数据库,而是学习数据库管理系统。

数据库管理系统(DBMS:DataBase Management System )是为数据库而设计的计算机软件系统 可以通过软件去操作数据库(存储 截取 备份 安全保证…)

关系型数据库(Relational DataBase)

关系型数据库是创建在关系模型(可以理解为二维表格的形式)基础上的数据库
以行和列的形式去存储数据 为了便于用户理解 关系型数据库中的这些行和列被称之为表
那么一组表就组成了一个数据库

列:具有相同数据线的数据的集合(属性/字段)
行:一条完整的数据记录(一个完整的对象的描述)

常用的关系型数据库:

	ORACLE 甲骨文 
	Mysql  
	sqlite3 轻量级的开源关系型数据库 
	SQL Server/DB2 
	人大金仓 国产 
	Ocean Base 阿里巴巴 
	
非关系型  NoSQL指 “Not Only SQL”
	MongoDB 
 	Redis
	...

关系型数据库的语法基本一样

1.创建一个数据库

	在终端命令行输入sqlite 数据库名 : 打开或者创建一个数据库 
	
		如:sqlite3 test.db
		
	进入sqlite3的命令行 可以在命令行通过SQL语句去操作数据库 
	注意:在sqlite3命令行下 SQL语句都是以分号结束的 
		  SQL语句支持大小写 在实际使用中建立大写  因为所有的语句在执行的时候 都是先转换为大写的模型

2.新建表格

	CREATE TABLE 用于新建一个表格 
	
	语法: 
		CREATE TABLE 表名 
		(
			字段名1 数据类型 “约束” ,
			字段名2 数据类型 “约束” ,
			字段名3 数据类型 “约束” ,
			...			
		);
		
		表名: 数据库中关系表的名字 
		
		字段名: 关系表中的列名 
		
		数据类型: 用来说明字段中的数据的类型 
				   int(size) 此字段必须为整数 size规定数字最大的位数 
				   或者integer(size)或者smallint(size)都可以
				   float double real类似 
				   
				   char(size) 固定长度的字符串 size就是固定的长度
				   varchar(size) 可变长度的字符串  size指定字符串的最大长度 
				   date 日期 
				   null 空类型 
				   blob 二进制类型
				   ...

		约束: 
					NOT NULL  不为空约束 即存储数据时该列不可为空 
					UNIQUE 唯一(不能重复) 存储数据的时候 这一列不允许出现相同的数据 
					PRIMARY KEY : 主键  主键必须是NOT NULL和UNIQUE  
								  主键可以是组合键。 
					FOREIGN KEY : 外键  这一列在其他表中是主键 但是在自己表中不是主键 
					
					CHECK : 限制列中的值的范围 
						
					CHECK SCORE >= 0 AND SCORE <= 100 
  1. 删除和修改表格

     DROP TABLE 删除一个表格 
     
     语法: 
     	DROP TABLE 表名 
     	
     	例子: DROP TABLE CLASS1
     
     
     修改表格的结构: 
     
     a.修改表名 
     
     	ALTER TABLE 表名 RENAME TO 新表名 
     	
     	例子:ALTER TABLE CLASS2 RENAME TO CLASS1
     
     b.增加字段 
     
     	ALTER TABLE 表名 ADD 字段名 字段类型 约束 
     	
     	如:ALTER TABLE CLASS1 ADD TEL INT;
    

4.插入用户数据

	INSERT INTO 用于向表格中插入新的行 
	
	语法1:INSERT INTO 表名 VALUES(值1,值2, 值3...);
	
		例子: INSERT INTO CLASS1 VALUES(1,"ZHANGSAN",99.9,10086);
	
	
	语法2:INSERT INTO 表名(字段1,字段2,..) VALUES(值1,值2...)
		
		例子: INSERT INTO CLASS1 (NUM,NAME,SCORE)VALUES(2,"LISI",88.1);

5.在执行的表中(可以是多个)查询数据

	SELECT 
	
	语法: SELECT 列名1,列名2... FROM 表名 WHERE 列 运算符 值;
	
		    SELECT * FROM 表名;//查询表中所有的列的信息
		    
	排序: 
				SELECT * FROM 表名 ORDER BY  字段  ASC/DESC 
				
				ASC : 升序   DESC : 降序 	 
				 
	查看模糊值(like)
				例子:我要查询一个叫姓zhang的学生的信息
				SELECT * FROM CLASS1 WHERE NAME LIKE 'ZHANG%';
				
	排序+条件 
				我要把学号大于2的学生的信息 按照分数降序的方式 把前2项记录输出 
				SELECT * FROM CLASS1 WHRER NUM > 2 ORDER BY SCORE DESC LIMIT 2;
				
	多表联查: 
				SELECT 表名.字段名1,表名.字段名2...form 表名1,表名2... WHERE 列 运算符 值;

	其他查询方式: 
				SELECT MAX(列名) FROM 表名; //查询表中列的最大值
			    SELECT MIN(列名) FROM 表名; //查询表中列的最小值  
				SELECT AVG(列名) FROM 表名;  //平均值 
				SELECT SUM(列名) FROM 表名;  //总和  
				SELECT COUNT() FORM 表名; //表中的数据的行数(有多少条记录)

	NOTE: 
				设置显示表头  .header on 
				按照列对齐的方式显示  .mode column

6.修改表中的数据 UPDATE

	语法: UPDATE 表名 SET 列名1 = 新值 ,列名2 = 新值... WHERE 列名 运算符 值; 
	
		例子: UPDATE CLASS1 SET SCORE = 91.4 WHERE NUM = 2;
		
		       UPDATE CLASS1 SET SCORE = 91.4如果不加条件则所有行的score都会被设置为91.4 

7.删除表格中的行 DELETE

	语法: DELETE FROM 表名 WHERE 列名 运算符 值; 
	
	例子: DELETE FROM CLASS1 WHERE NUM = 1; //把学号为1的这一行(一个记录)删除

猜你喜欢

转载自blog.csdn.net/weixin_46836491/article/details/127140887
今日推荐