垃圾:由于明天就有一次考试了,而我现在还没有对这方面的基础知识有一个系统性的整理,现在我十分焦虑,也正是复习的好时候。可我实在是不知道该怎么给SQL一个比较好的解构,因为刚刚入门,每项分类能写出的东西太少了,总不能从数据类型开始写起吧?
1. 常用数据
数据类型 | 简介 |
CHAR(n) | 长度固定为n的字符串 |
VARCHAR(n) | 长度可变,上限至长度n的字符串 |
INTEGER |
整数 |
DECIMAL | 带小数点的数字 |
DATE | 定规格的日期("yyy-mm-dd"),分隔符可以随意选取 |
DATETIME | 定规格的日期时间("yyy-mm-dd hh:mm:ss") |
2. NULL
Tips: 除了字符串变量以外,在默认设置下SQL对大小写完全不敏感,从变量名到指令都是如此,如CREATE和create是完全相同的指令,一般情况下我们约定俗成地将指令部分全部大写来提高可读性。
好吧,建表之前我们其实需要先创建一个数据库并选中它,有了仓库我们才能放东西
CREATE DATABASE school;
CREATE SCHEMA school;
USE school;
在MySQL中,schema和database是同义词,但在一些SQL操作系统中,二者是被区分的。
你要是不喜欢还可以删掉它
DROP DATABASE school;
另外地,如果你懒得选中某个数据库,你可以在变量名前加上“databaseName.”来调用你想要的数据库,此技巧以后有用。
1)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来说过于复杂,如果你想改名,最好创建一个新的数据库/表格并把原数据拷贝过去,然后把原来的删掉。
单独利用DROP和CREATE只是对表格本身进行创建和删除,而ALTER可以对表格本身进行大体性的调整
1) 增加字段
ALTER TABLE games ADD price DECIMAL;
2) 删除字段
ALTER TABLE games ADD price DECIMAL;
ALTER的使用应适当的减少,以免引起不必要的错误。很多时候使用ALTER只能说明我们在设计这个表格之初并没有做好规划。
学会了建表删表改表,该往表里放点东西了
原文:https://www.cnblogs.com/Makiseisawake/p/14638751.html