SQL不区分大小写,本文是邹兆年老师的课件和课堂的部分内容总结,部分比较细的内容请看课件

Db笔记(1).pdf

SQL的数据定义

数据

数值型:

  • 整型:INT/SMALLINT/BIGINT        4个字节/两个字节/八个字节
  • 浮点型:NUMERIC/DECIMAL(p,s):定点数,p位有效数字,小数点后s位                                比如numberic(3,1)可以精确储存44.5,但是不可以储存444.5或者33.2这样的数字
  • FLOAT(n):浮点数,精度至少为n位数字
  • REAL同FLOAT但是精度由DBMS决定
  • DOUBLE PERCISION  

布尔类型

  • BOOLEAN 真值是TRUE/FALSE

字符串类型

  • CHAR(n):定长字符串,长度为n,比如身份证号,一块一块存储比较方便
  • VARCHAR(n)变长字符串:最大长度为n,省内存
  • CLOB:超长字符串

枚举型和集合型

sql server 浮点转整型 sql语句浮点型_数据库

用户完整性 

sql server 浮点转整型 sql语句浮点型_数据库_02

 创建关系模式

创建表就得先创建数据库

下载postgre:不同的电脑操作不同可能会不好使

sudo apt-get update
sudo apt-get install postgresql postgresql-client

创建完毕后系统会创建一个postgre用户,感觉是服务器的用户所以本地找不到服务器的文件夹

sudo -i -u postgres 
psql

这样就进入到了posgre中

create database 卑鄙的我;

退出postgres

\q 注意没有分号

包括:关系名、属性名、属性类型、主键、外键、完整性约束等:

CREATE TABLE Student{
#####关系名和属性#######
    Sno CHAR(6);        *Sno CHAR PRIMARY KEY;//这种方法只能定义含有一种属性关系
    Sname VARCHAR(10);
    Ssex CHAR;
    Sage INT;
    Sdept VARCHAR(20);
#####声明主键和外键#######
    PRAMARY KEY (Sno)  ///如果是双关系就PRMARY KEY(Sno,Sname);
    PRAMARY KEY (Sno,Cno);
    FORERGN KEY (Sno) REFERENCES Student(Sno)
};

sql server 浮点转整型 sql语句浮点型_学习_03

{Sno,Cno}是SC的主键,Sno是SC的外键,参照Student关系的主键Sno,回忆外键

sql server 浮点转整型 sql语句浮点型_学习_04

F的取值必须来源于R 

 操作演示1

查看所有的数据库

\l 查看所有的数据库

sql server 浮点转整型 sql语句浮点型_学习_05

 查看创建的表

查看属性

select * from student;

sql server 浮点转整型 sql语句浮点型_学习_06

select Ssex from student;
select sno, sname from student where sdept = 'CS';

 

sql server 浮点转整型 sql语句浮点型_学习_07

select sno, sname from student where sdept in ('CS', 'Math');

sql server 浮点转整型 sql语句浮点型_sql_08

去重

select distinct Ssex from student;

sql server 浮点转整型 sql语句浮点型_学习_09

 返回大写的值/怎么不改变属性返回大写的值

select sno, upper(sname) from student;

 

sql server 浮点转整型 sql语句浮点型_数据库_10

select sno, upper(sname) as SNAME from student;

sql server 浮点转整型 sql语句浮点型_主键_11

 模糊查询

查询E开头的人物;

select sno, sname from student where sname like 'E%';

查询E开头,占两个字节的人物

select sno, sname from student where sname like 'E_';

sql server 浮点转整型 sql语句浮点型_sql server 浮点转整型_12

select sno, sname from student where sname like 'E___';

sql server 浮点转整型 sql语句浮点型_sql_13

操作演示 -------常见的错误提示

ERROR:  duplicate key value violates unique constraint "student_pkey"
DETAIL:  Key (sno)=(CS-001) already exists.
违反主键中元素的唯一性原则

sql server 浮点转整型 sql语句浮点型_sql server 浮点转整型_14

ERROR:  null value in column "sno" of relation "student" violates not-null constraint
DETAIL:  Failing row contains (null, ABC, null, null, null).
违反主键不能为空的原则

sql server 浮点转整型 sql语句浮点型_学习_15

ERROR:  new row for relation "student" violates check constraint "student_sage_check"
DETAIL:  Failing row contains (CS-005, ABC, null, -1, null).
找不到参考的值

sql server 浮点转整型 sql语句浮点型_学习_16

 操作演示2:

区分is & =

空是一个不确定的值不等用=只能用is

sql server 浮点转整型 sql语句浮点型_学习_17

 

sql server 浮点转整型 sql语句浮点型_主键_18

上课

sql server 浮点转整型 sql语句浮点型_学习_19

sql server 浮点转整型 sql语句浮点型_sql_20

 *窗口函数

窗口函数并不是分组,具体查询DBMS手册

sql server 浮点转整型 sql语句浮点型_sql_21

 多关系查询

笛卡尔积

SELECT Student.Sno, Sname, Cno, Grade
FROM Student, SC
WHERE Student.Sno = SC.Sno;


explain加等于执行过程

sql server 浮点转整型 sql语句浮点型_主键_22