SQL基础篇——如何搭建一个数据库
特别提醒:所有的新建数据库,表,行,列都可以通过对象资源管理器操作,下面所讲的为查询操作方法
一、新建数据库
使用CREATE DATABASE语句建立数据库:
新建查询--
1 CREATE DATABASE pay 2 ON PRIMARY 3 ( 4 NAME= 支出_DATA, 5 FILENAME='E:\支出_DATA.mdf', --创建的mdf文件名称 6 SIZE=5MB, --初始大小5MB 7 MAXSIZE=10MB, --最大文件大小10MB 8 FILEGROWTH = 1MB --超过5MB之后以1MB的速度增长 9 ) 10 11 LOG ON 12 ( 13 NAME = 支出_LOG, 14 FILENAME = 'E:\支出_LOG.ldf', 15 SIZE = 2MB, 16 MAXSIZE = 10MB, 17 FILEGROWTH = 1MB 18 )
用这个方法创建数据库时,这个计算机的studio版本需要重新连接服务器或者直接刷新发现数据库在数据库列表中!
对于第2行中的语法,http://www.alixixi.com/program/a/2008020937834.shtml中说得不错:
在CREATE TABLE的语法中有这样一句可选语法项目:
[ ON { filegroup | DEFAULT } ]
用来指定存储表的文件组。
如果指定 filegroup,则表将存储在指定的文件组中。数据库中必须存在该文件组。如果指定 DEFAULT,或者根本未指定 ON 参数,则表存储在默认文件组中。
(DEFAULT 并不是关键字。DEFAULT 是默认文件组的标识符并需对其进行定界,如 ON "DEFAULT"、ON [DEFAULT]。)
ON [PRIMARY]是表示表是建立在主文件组上。PRIMARY表示主文件组。如果没有指定默认文件组,则主文件组是默认文件组,ON [PRIMARY]也可以省略掉了。
二、在数据库中新建表(顺便把列一起建了)
普通的新建:
USE pay; --使用名字为pay的数据库 CREATE TABLE my_friends --创建一个名为my_friend的表 ( last_name VARCHAR(10), --在表内新增列 last_name first_name VARCHAR(6) --在表内新增列 first_name );
如果我要创建一个在输入信息的时候不能忽略的列时,我需要:
CREATE TABLE my_friends --创建一个名为my_friend的表
(
last_name VARCHAR(10) NOT NULL, --在表内新增列 last_name
first_name VARCHAR(6) NOT NULL --在表内新增列 first_name
);
这样的话,在INSERT 的时候就一定得输入last_name和first_name的信息,否则会报错!
如果我要创建一个列,那一列的默认值不是NULL,而是自己设定的备用值(在给表插入行之后才会出现single哦!而且要把single改成其他的值,按照一般的赋值即可!)
CREATE TABLE my_friends --创建一个名为my_friend的表 ( last_name VARCHAR(10) NOT NULL, --在表内新增列 last_name first_name VARCHAR(6) NOT NULL, --在表内新增列 first_name status CHAR(30) DEFAULT single );
一旦建立my_friend的表,再次建立my_myfriend的表时会显示错误,所以表是不会覆盖的!那么问题来了,如果我要在表中增加新的列应该怎么办呢?
当然,可以删除掉已经建好的表,重新建立一个新的表,在新建的时候把你想加入的列写到()里面就好了,删除表的语句怎么写呢?
DROP TABLE my_friends;
请注意:一旦删除里面的数据就随风而逝了!人死不能复生啊......
三、向表增加行(往表中插入数据)
INSERT INTO my_friend (last_name,phone) VALUES ('cake',366413454);
也可以省略所有的列名。这样做时一定要添上所有的数据值,而且输入的数据也要和表中的列顺序完全相同
INSERT INTO my_friends VALUES ('cake','zhishi',366413454);
没有赋值的信息,以NULL的形式存在。
NULL的理解:NULL不等于0,也不等于空字符串(''在两个单引号内,什么都没有的值)。也不等与另一个NULL。两个NULL不可以放在一起比较,因为NULL代表着未定义的值!可以这样去理解:每个NULL代表着一个未打开的盒子,盒子里面装着什么东西都不知道,自然就无法比较啦!
我想看看我输入的信息,怎么看呢?命令如下:
SELECT * FROM my_friend;
* 号代表选择所有的内容