Database基础_SQL基本句法(MySQL)

  垃圾:由于明天就有一次考试了,而我现在还没有对这方面的基础知识有一个系统性的整理,现在我十分焦虑,也正是复习的好时候。可我实在是不知道该怎么给SQL一个比较好的解构,因为刚刚入门,每项分类能写出的东西太少了,总不能从数据类型开始写起吧?

一、MySQL数据类型

  1. 常用数据

数据类型 简介
CHAR(n) 长度固定为n的字符串
VARCHAR(n) 长度可变,至长度n的字符串

INTEGER

整数
DECIMAL 带小数点的数字
DATE 定规格的日期("yyy-mm-dd"),分隔符可以随意选取
DATETIME 定规格的日期时间("yyy-mm-dd hh:mm:ss")

  2. NULL

  • NULL意味着这个位置中没有储存数据,而不是“0”
  • 在定义属性时后接NOT NULL时,该字段下的所有数据都不能为NULL
  • 主键必定为NOT NULL,就算你建表时不加NOT NULL,MySQL也不会接受NULL值被记录到主键字段内
  • NULL就是没有数据,他并不能区分该项数据是“未知”的还是“未定义”的

二、表格-数据定义语言(Data Definition Language, DDL)

  Tips: 除了字符串变量以外,在默认设置下SQL对大小写完全不敏感,从变量名到指令都是如此,如CREATE和create是完全相同的指令,一般情况下我们约定俗成地将指令部分全部大写来提高可读性。

0. 数据库

  好吧,建表之前我们其实需要先创建一个数据库并选中它,有了仓库我们才能放东西

CREATE DATABASE school;
CREATE SCHEMA school;
USE school;

  在MySQL中,schema和database是同义词,但在一些SQL操作系统中,二者是被区分的。

  你要是不喜欢还可以删掉它

DROP DATABASE school;

  另外地,如果你懒得选中某个数据库,你可以在变量名前加上“databaseName.”来调用你想要的数据库,此技巧以后有用。

 

1. 创造与毁灭(CREATE/DROP

  1)CREATE建表

  • 利用create来创建表格格式为:

   CREATE TABLE tableName(var1 domain constrain, var2 domain constrain,...);

        其中var1,var2 为变量名,domain为数据的类型,constrain为约束条件

  • 另外地,在表格中添加外键的格式为:

      FORIEGN KEY (var1) REFERENCES otherTable(var2)

        该命令创建了一个var1的外键,他引用自另一个表格中的字段var2作为父键

CREATE TABLE games
(gameID INTEGER NOT NULL PRIMARY KEY,
 installSize DECIMAL NOT NULL,
 version VARCHAR(50),
 releaseDate DATE NOT NULL,
 FOREIGN KEY (sales) REFERENCES market(gameSales));

  记得写分号。

  2)DROP删表

  毁灭往往都是一瞬间的事情。

DROP TABLE games;

  DROP还会配合下面的ALTER使用,达到删除某个属性的目的,与DELETE不同,涉及DROP的语句往往都比较简单粗暴。

  注意:改名对于SQL来说过于复杂,如果你想改名,最好创建一个新的数据库/表格并把原数据拷贝过去,然后把原来的删掉。

 

2. 调整(ALTER

  单独利用DROP和CREATE只是对表格本身进行创建和删除,而ALTER可以对表格本身进行大体性的调整

  1) 增加字段

ALTER TABLE games ADD price DECIMAL;

   2) 删除字段

ALTER TABLE games ADD price DECIMAL;

  ALTER的使用应适当的减少,以免引起不必要的错误。很多时候使用ALTER只能说明我们在设计这个表格之初并没有做好规划。

  

三、表格-数据操作语言(Data Definition Language, DDL)

  学会了建表删表改表,该往表里放点东西了

 

Database基础_SQL基本句法(MySQL)

上一篇:python linux下dbg


下一篇:MySQL的分组查询知识