SQL基础篇——如何搭建一个数据库
2016-08-10 23:06
316 查看
特别提醒:所有的新建数据库,表,行,列都可以通过对象资源管理器操作,下面所讲的为查询操作方法
一、新建数据库
使用CREATE DATABASE语句建立数据库:
新建查询--
用这个方法创建数据库时,这个计算机的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]也可以省略掉了。
二、在数据库中新建表(顺便把列一起建了)
普通的新建:
如果我要创建一个在输入信息的时候不能忽略的列时,我需要:
这样的话,在INSERT 的时候就一定得输入last_name和first_name的信息,否则会报错!
如果我要创建一个列,那一列的默认值不是NULL,而是自己设定的备用值(在给表插入行之后才会出现single哦!而且要把single改成其他的值,按照一般的赋值即可!)
一旦建立my_friend的表,再次建立my_myfriend的表时会显示错误,所以表是不会覆盖的!那么问题来了,如果我要在表中增加新的列应该怎么办呢?
当然,可以删除掉已经建好的表,重新建立一个新的表,在新建的时候把你想加入的列写到()里面就好了,删除表的语句怎么写呢?
请注意:一旦删除里面的数据就随风而逝了!人死不能复生啊......
三、向表增加行(往表中插入数据)
也可以省略所有的列名。这样做时一定要添上所有的数据值,而且输入的数据也要和表中的列顺序完全相同
没有赋值的信息,以NULL的形式存在。
NULL的理解:NULL不等于0,也不等于空字符串(''在两个单引号内,什么都没有的值)。也不等与另一个NULL。两个NULL不可以放在一起比较,因为NULL代表着未定义的值!可以这样去理解:每个NULL代表着一个未打开的盒子,盒子里面装着什么东西都不知道,自然就无法比较啦!
我想看看我输入的信息,怎么看呢?命令如下:
* 号代表选择所有的内容
一、新建数据库
使用CREATE DATABASE语句建立数据库:
新建查询--
CREATE DATABASE pay ON PRIMARY ( NAME= 支出_DATA, FILENAME='E:\支出_DATA.mdf', --创建的mdf文件名称 SIZE=5MB, --初始大小5MB MAXSIZE=10MB, --最大文件大小10MB FILEGROWTH = 1MB --超过5MB之后以1MB的速度增长 ) LOG ON ( NAME = 支出_LOG, FILENAME = 'E:\支出_LOG.ldf', SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 1MB )
用这个方法创建数据库时,这个计算机的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;
* 号代表选择所有的内容
相关文章推荐
- 如何批量将一个文件夹下所有的SQL文件执行,更新到数据库
- SQL : 如何完全复制一个服务器上的数据库A到另一个服务器上的数据库B(包括库A的所有表、试图、存储过程等等)
- 如何用MYsql-Front工具抒写sql语句,创建出一个自己想要的数据库
- 如何用T—SQL命令查询一个数据库中有哪些表?
- SQL 数据库 学习 006 如何设置一个用户名和密码
- sql优化:从设计表结构开始(SQL Server中如何让数据库中某一个字段随时间自动更新?)
- SQLServer如何用T—SQL命令查询一个数据库中有哪些表
- ubuntu下如何使用mysql/python中如何调用sql新建一个数据库
- SQLServer如何用T—SQL命令查询一个数据库中有哪些表
- SQLServer语法:如何处理查找一个数据库表的n 到 m条记录?
- 如何将一个.sql文件导入到mysql数据库中的一个数据库里
- 如何使用DataGrip导出整个数据库到一个.sql文件
- SQL如何在一个数据库中查询已知列名的所在表
- SQL如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
- SQL如何查询一个数据库中的所有表?
- pl/sql 如何配置连接远程一个或多个数据库(1.同一个ip不同用户名,2.不同ip不同用户名)以及记住密码
- SQL 数据库 学习 006 如何设置一个用户名和密码
- 写一个能直接执行的.sql文件,如何在这里连接数据库?
- 如何用T―SQL命令查询一个数据库中有哪些表?
- 一个小把戏:如何上传一个.sql文件到一个主机并执行这个文件来配置数据库